iOS点点滴滴技术 学习iOS Developer

Xcode11取消了Application Loader后用al

2019-09-30  本文已影响0人  revolution丶

Xcode11 Application Loader altool 打包提审 authentication with the app store

情景

最近打包上传提审中发现一直卡在 authentication with the app store中,各种办法试了没什么效果后试试升级最新的Xcode11,结果不升级倒好,一升级发现苹果把Application Loader给删除了,除了代码的archive打包上传,另外给出的解决方案是用altool工具上传,于是记录下如何使用altool上传ipa包.

解决问题

1 首先看看你的电脑是否支持这个工具,在终端中输入
$ xcrun altool
如果系统反馈下图这样,那么你电脑是支持的,如果没有反馈请自行搜索如何安装altool~ 图1.反馈截图
2 altool只是一个上传工具,而非打包工具,就跟Application Loader的定位是一样的,所以需要你用archive打包并导出(export)这个ipa包,放在桌面上.
3 其实检查/上传的命令在图1中可以看到
$ 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>}

但当你憨憨的在命令行里面输入

$ xcrun altool --validate-app -f 包的绝对路径 -t ios -u 你的苹果账号 -p 你账号对应的密码

并回车发现,咦报错了,错误原因如下:

"Error Domain=ITunesSoftwareServiceErrorDomain Code=-22020 \"We are unable to create an authentication session.\" UserInfo={NSLocalizedDescription=We are unable to create an authentication session., NSLocalizedFailureReason=Unable to validate your application.}"

这个的大意就是说你的我们现在采用了新的验证方式,不是你输入的密码不对,而是你需要用上面命令中的--apiKey --apiIssuer ,其实你如果用过Application Loader就能想明白为什么非要用这两者了,因为Application Loader没法做二次验证所以,Application Loader需要的密码是你自己登陆账号创建的,而你登陆账号相当于经过了二次验证,同理altool本身是没法二次验证的,所以他需要你去创建一套密钥来验证你的身份,那么这个在哪里创建呢?答案是在app store connect 里面"用户和访问"->密钥->App Store Connect API,如下图所示


图2,创建apiKey和apiIssuer的地方

其中蓝色框体框柱的是秘钥ID,对应的文件就是apiKey文件,有几点需要注意

......a private key file with the name of 'AuthKey_<api_key>.p8':  './private_keys', '~/private_keys', '~/.private_keys', and '~/.appstoreconnect/private_keys'......

这是啥意思呢,其实就是系统在根目录下找不到你的apiKey放哪了,所以这个时候就需要一件基础的linux命令,来把这个文件放到根目录下.

4 根据提示,首先在根目录下创建对应名称的文件夹
$ cd ~
$ mk dir .private_keys
#这个时候就在你的根目录下生产了一个名叫private_keys隐藏文件夹
$ ls -la
#使用这个命令你就可以看到你根目录下所有的文件,包括刚刚创建的.private_keys
$ cd .private_keys/
$ pwd
#进入这个文件夹,并用pwd打印文件夹路径,记录这个路径后面有用

接下来通过以下命令

$ cd 文件夹

来进入你存放apiKey所在的文件夹层级,

$ mv    apiKey文件全面     .private_keys文件夹的绝对路径(就是上面让你打印那个)

OK,到这一步就把你的文件放到了该放的地方

5 执行命令
$ xcrun altool --validate-app -f 包的绝对路径 -t ios -u 你的苹果账号 --apiKey 密钥的ID --apiIssuer Issuer ID
然后等待,如果返回如下图所示 图3.验证命令反馈

那就是通过了验证了,尤其是红色框体里的话.接下来执行上传命令

$ xcrun altool --upload-app -f 包的绝对路径 -t ios -u 你的苹果账号 --apiKey 密钥的ID --apiIssuer Issuer ID

执行完上传命令耐心等待后,如果没有什么error信息那就是上传成功了,这个时候去App Store Connect中完成你需要填写的信息就可以提审了.

一点小tips:

上一篇下一篇

猜你喜欢

热点阅读