为了适配ios13,特意更新了xcode11.3 。更新完后发现 application loader没有了,然后蒙了。

然后网上一顿搜索,归纳出了三种上传方式:

一、altool

  使用xcode中的命令方式上传

$ xcrun altool --validate-app -f file -t platform -u username [-p password] [--output-format xml]
$ xcrun altool --upload-app -f file -t platform -u username [-p password] [—output-format xml]

  这种方式需要在https://appstoreconnect.apple.com/  ->用户和访问->密钥->创建密钥信息

  1、记录issuer ID

  2、创建密钥

  3、记录密钥ID

  4、下载密钥文件(文件只能下载一次,要保存好)

  5、将下载的密匙文件(***.p8)复制到 ~/.private_keys/

  6、使用命令上传

xcrun altool --upload-app -f *ipa文件路径* -t *要发布的平台:osx、ios 或 appletvos* --apiKey *密钥ID* --apiIssuer *issuer ID*

  7、正常的情况下在10分钟内命令会有操作结果(不管成功还是失败),如果长时间没有返回结果,那就是有问题。

  8、常见问题

    a、密匙文件没有复制到~/.private_keys/,提示文件找不到,altool有默认查询密匙文件的路径

    b、ipa文件找不到,需要确定当前执行命令的路径和ipa文件路径是否能匹配

    c、如果长时间没有返回结果,则本地~/.itmstransporter/ 的文件版本不匹配,解决方案:

      • 执行命令
      • cd ~
        mv .itmstransporter/ .old_itmstransporter/
        "/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter"
      • 如果本地找不到 Application Loader.app,需要先安装 Application Loader.app。网盘地址如下:
      • 链接: https://pan.baidu.com/s/1aGhl8M05lqehbj84XrDBIA 提取码: rsn6
      • 安装后,在应用程序中找到Application Loader,右键显示包内容,找到 Contents/itms/bin/iTMSTransporter ,打开运行。
      • 运行结束后,在 ~/.itmstransporter/ 会有新下载的文件
      • 成功后,重启电脑,再次执行
      • xcrun altool --upload-app -f *ipa文件路径* -t *要发布的平台:osx、ios 或 appletvos* --apiKey *密钥ID* --apiIssuer *issuer ID*

二、Transporter app(未测试成功)

  1. 通过 macOS 版 Transporter App,您可以便捷地将 App 上传至 App Store Connect 以便在 App Store 上分发。除了上传构建版本,您还可以查看交付进度(包括警告、错误和交付日志)以及交付历史。
  2. 您可以在 Mac App Store 中下载 Transporter App
  3. 有关更多信息,请参见“macOS 版 Transporter 帮助”。

  遇到的问题:

  1. 提交ipa后,一直卡在验证环节,长时间没有响应
  2. 没有任何错误提示

三、xcode上传(适合通过xcode直接打包上传)

  1. Xcode 是 Apple 的集成开发环境(IDE)。Xcode 可用于为 Apple 产品(包括 iPad、iPhone、Apple Watch、Apple TV 和 Mac)构建 App。Xcode 提供诸多工具,能帮助您管理整个开发工作流程——包括创建、测试、优化 App 并将其提交至 App Store。
  2. 若要了解如何通过 Xcode 上传您 App 的二进制文件,请前往“Upload an app to App Store Connect(上传 App 至 App Store Connect)”,或者在 Xcode 中选择“Help(帮助)”>“Xcode Help(Xcode 帮助)”并搜索“Upload an app(上传 App)”。
  3. 请在 Mac App Store 中下载 Xcode
   

xcode 11.3 发布ipa采坑记录的更多相关文章

  1. Charles 抓包工具安装和采坑记录

    Charles 抓包工具安装和采坑记录 网络抓包是解决网络问题的第一步,也是网络分析的基础.网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常.做网络爬虫,第一步就是通过抓包工具对目 ...

  2. Antd前端开发采坑记录

    背景 基于页面友好,界面整洁美观:基于Antd框架开发虾能平台 选型 基于Antd-admin工程架构,进行开发:基于Antd+React+Umj 采坑记录 按照Html方式天机onClick方法,每 ...

  3. HUE Oozie : error=2, No such file or directory采坑记录

    HUE Oozie : error=2, No such file or directory采坑记录 1.错误详情 一直都是同一种方式在hue上定义workflow,不知为啥 今天定义的就是不行... ...

  4. uni-app采坑记录

    1. uni-app采坑记录 1.1. 前言 这里记录下uni-app实践中踩的坑 1.2. 坑点 1.2.1. 触发事件@longTap和@longpress 这两个都表示长按触发事件,那么这两个有 ...

  5. v8环境搭建采坑记录

    项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8:   查看ce ...

  6. angular采坑记录

    在angular中会遇到一些莫名的问题,导致不能完成想要的功能,可能是某项用法使用错误,或许是angular相对应不支持,或者是我们功力根本就没有达到.为了在每次采坑之后能有所收获,再遇到时能理解其根 ...

  7. golang采坑记录

    安装golang,引入第三方库,采坑 1.获取安装包 go语言中文网:https://studygolang.com/dl 官网地址:https://studygolang.com/dl 2.下载 选 ...

  8. Win7 node多版本管理gnvm采坑记录

    采坑描述:下载新node版本及切换node失败 解决:1.要用管理员权限启动cmd:2.确保node是空闲的 Gnvm下载地址: 32-bit | 64-bit Github 1.下载之后为 得到一个 ...

  9. Android Studio采坑记录

    折腾了几个月的Android Studio,终于在今天被我搞定了 ( ̄▽ ̄)~* 开贴记录下,免得下次再次采坑 先说下我之前电脑的环境配置吧,sdk是几年前在网上下载别人整理出来的包,一直没有更新过 ...

随机推荐

  1. MYGUI3.2改造——与HGE结合,实现资源打包

    其实这个有点标题党的意思.MYGUI本身有资源打包的接口,可以实现从内存读取文件. 而HGE也提供了资源打包的功能(不过HGE的资源文件管理比较弱).把MYGUI的接口接到HGE上就可以实现MYGUI ...

  2. 前端基础JavaScript

    JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...

  3. gerrit merge后不能提交问题

    需求:git 分支合并 问题:使用 git merge 在本地执行分支合并操作,然后想 push 到 gerrit 上评审入库,可是在提交时,提示:  ! [remote rejected] HEAD ...

  4. laravel路由与控制器(资源路由restful)

    目前我们大致了解了laravel下,在开始一个Http程序需要先定义路由.之前的例子中,我们的业务逻辑都是在路由里实现,这对于简单的网站或web应用没什么问题,当我们需要扩大规模,程序变得复杂,分层的 ...

  5. try catch finally的理解

    定义以及用法: try/catch/finally 语句用于处理代码中可能出现的错误信息. 错误可能是语法错误,通常是程序员造成的编码错误或错别字.也可能是拼写错误或语言中缺少的功能(可能由于浏览器差 ...

  6. C语言创建文件夹

    问题需求:在程序中需要使用文件夹时,一般可以先在程序目录或某一路径下创建一个文件夹,然后使用该文件夹. 这种方法比较麻烦,需提前创建文件夹. 使用C语言创建文件夹的代码可以如下: #include & ...

  7. Linux防火墙之iptables常用扩展匹配条件(一)

    上一篇博文讲了iptables的基本匹配条件和隐式匹配条件,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12269717.html:今天在来说说iptabel ...

  8. 码云(gitee)配置ssh密钥

    创建公钥的目的: 使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址) git中粘贴右击鼠标选择Paste 步骤: 打开终端(git)进入.ssh目录 ...

  9. nginx的进程结构实例演示

    nginx父子进程之间是使用信号进行管理的. nginx -s reload 会使之前的nginx子进程退出,生成新的nginx子进程 或者kill -SIGHUP 9170 kill -SIGTER ...

  10. LinearLayout中组件右对齐

    在LinearLayout中,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个布局中的控件将自左向右排列. 但有时会有这样的 ...