随着Xcode功能的不断升级,逐渐开始出现体积臃肿,启动缓慢的问题,所以在增加新功能的同时Xcode开始优化删减掉一些不太常用或者不太有必要的功能.在最新的Xcode(11.x)中,Application Loader就被不幸中招,从Xcode中被删除掉.
Xcode supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool. Application Loader is no longer included with Xcode. (29008875)
但是有时还是会避免不掉的需要上传ipa文件包到appstore中,怎么办呢?
-
手动为Xcode增加Application Loader功能
由于Application Loader是以应用的形式集成到Xcode中去的,所以可以直接下载Application Loader,然后放置在指定的路径中即可.
- 下载找到Application Loader(可以在Xcode之前的版本中获取或者在下载网友的分享);
- 放置在Xcode路径/Applications/Xcode.app/Contents/Applications/中;
- 重启Xcode,就可以在Xcode--Open Develop Tool中找到熟悉的它了.
注意:
按照上述步骤操作,你会发现使用账号密码登陆每次都提示错误,但是检查之后发现输入无误.只是因为Application Loader已经不再是一个被重视的应用了,所以通过账号密码这种简洁方式登陆的待遇已经被取缔了,这时候需要在appleid管理网站登陆对应账号,然后在 安全--App专用密码中输入密钥标记选择"创建"就会生成app的专用密码,然后就可以使用新生成的密码进行登录了.
-
使用altool工具
除了Application loader之外,Xcode还集成了另一种上传ipa文件的工具---altool.
在终端中输入
xcrun altool -h
可以查看到常用的命令:
Usage: altool --validate-app -f <file> -t <platform> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}
altool --upload-app -f <file> -t <platform> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}
altool --notarize-app -f <file> --primary-bundle-id <bundle_id> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>} [--asc-provider <provider_shortname>]
altool --notarization-info <uuid> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}
altool --notarization-history <page> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>} [--asc-provider <provider_shortname>]
altool --list-apps -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}
altool --store-password-in-keychain-item <name_for_keychain_item> -u <username> -p <password>
其中:
- -f: ipa文件路径;
- -t: 平台,osx | ios | appletvos;
- -u: 用户名,即开发账号;
- -p: 账号密码,这里的账号密码也需要使用appleid管理网站中生成的 App专用密钥;
- --apiKey,--apiIssuer:使用JWT方式进行验证,不是很熟悉,不做介绍.
一般上传时,会先验证一下app是否可用:
//ipa文件路径
ipaPath="/xxx/xxx.ipa"
//开发账号
account=""
//从appleid管理网站或渠道的app专用密钥
password=""
xcrun altool --validate-app -f $ipaPath -t ios -u $account -p $password
验证成功之后进行上传:
altool --upload-app -f $ipaPath -t ios -u $account -p $password
-
使用新的上传工具--transporter
在废弃Application Loader时候,apple除了一款新的应用来上传ipa文件,只不过这款应用不再集成在Xcode中,而是放在appstore中免费下载,它就是---transpoter.打开Mac上的appstore,输入transporter,就可以看到这款新的上传工具.
使用起来也很简单:
- 在appstore中下载transporter;
- 登陆账号密码(transporter可以直接使用开发账号和密码登陆);
- 登陆成功之后,添加app(可以是.ipa或者.pkg),然后上传.
在使用上transporter可视化,也更加简洁,是用来替代被抛弃的Application Loader,同时将该功能从日益臃肿的Xcode的分离出来,作为单独的功能进行使用.