Xcode11 Application Loader altool上传ipa
做iOS开发的,都知道发布应用到商店,需要经过代码编译、打包、签名、上传、testflight、审核等好几个步骤。
在这篇文章已经对打包、签名做了详细介绍,在后续的工作中,我们使用了自己开发的工具,结合fastlane来走自动化流程。
如何你是xcode10版本或者更低,请来这里看。
这里主要讲一下,xcode升级到11版本后,如何上传ipa文件。
起因
升级xcode11后,你会发现找不到Application loader这个工具了。
看了我关于xcode10打包的文章,都知道Application loader是对altool的封装。
去查看xcdoe11的更新说明,有这样一段话:
Xcode supports uploading apps from the Organizer window or from the command line with
xcodebuild
orxcrun altool
. Application Loader is no longer included with Xcode. (29008875)
不知道是出于什么原因,不支持Application loader,后续应该了解到。
突然想到了一些原因:
Application loader中集成的低版本altool,在终端里,帮助文档有描述,是上传ipa、pkg文件的。
xcrun altool的改进
上面提到,xcrun altool 是新的上传打包文件方式之一。
终端运行,xcrun altool
刚看到帮助信息时,没仔细看,觉得和旧版本以前一样,使用开发者账号和密码就可以了。
不能再直接使用开发者账号、密码直接上传
但我运行时,遇到了一个认证问题:
xcrun altool --list-apps -u <开发者账号> -p <密码> --output-format xml
2019-09-26 13:01:51.896 altool[60451:1402637] *** Error: Failed to retrieve all applications:
(
"Error Domain=ITunesSoftwareServiceErrorDomain Code=-22011 \"We are unable to create an authentication session.\" UserInfo={NSLocalizedDescription=We are unable to create an authentication session., NSLocalizedFailureReason=Unable to validate your application.}"
)
回想一下认证相关的经验,应该是双重认证导致的,需要动态验证码,我当时也考虑查看fastlane相关插件的源码,看他们是如何认证的,虽然目前实现了,但可能和fastlane的实现还有很多不足。
去查找双重认证的信息,提到了一段有用信息:
If you are signed in to iCloud for Windows, you don't need an app-specific password when using your Apple ID with third-party Microsoft apps.
To generate and use app-specific passwords, your Apple ID must be protected with two-factor authentication.
You also need an app-specific password for your devices that use Mac OS X Lion 10.7.5 and earlier or iOS 5 and earlier. If you don’t have devices that can be updated to iOS 9 or later or OS X El Capitan or later, you can set up two-step verification and generate app-specific passwords.
再去查看xcrun altool的帮助信息,多了两个参数--apiKey 、--apiIssuer,在apple的开发者网站,搜不到这两个关键词的。
又去查找上传ipa包的文档,找到一个有用的文档,有两个有用信息,
Because you can't upload the
.app
bundle directly to the notary service, you’ll need to create a compressed archive containing the app省略一些demo命令
Alternatively, you can put apps, kernel extensions, and other software in a container, like a disk image, and notarize the container. The notary service accepts disk images (UDIF format), signed flat installer packages, and ZIP archives. It processes nested containers as well, like packages inside a disk image.
为何新版本的xcode11不支持ApplicationLoader
结合旧版本的altool,我有一些明白为何xcode11不支持Application Loader了,xcode11最出色的点,是支持了swfitUI,一统mac、ipad、iphone,如上面官方帮助描述一样,新版本的额altool支持了各种文件压缩包的上传,应该就是mac、ipad、iphone应用和其他相关打包产物的集合包,而旧版本的altool只支持ipa、pkg的上传。
如何使用xcrun altool验证、上传ipa包
xcrun altool有很多功能,我只结合以前的流程,验证、上传,来实现本期开发任务。
有双重认证限制后,不能直接使用账号密码了,只能使用新的-apiKey 、--apiIssuer。
仔细查看它们的介绍:
--apiKey <api_key> apiKey. Required for JWT authentication while using validation, upload, and notarization.
This option will search the following directories in sequence for a private key file
with the name of 'AuthKey_<api_key>.p8': './private_keys', '~/private_keys', '~/.private_keys',
and '~/.appstoreconnect/private_keys'.
--apiIssuer <issuer_id> Issuer ID. Required if --apiKey is specified.
对 JWT authentication我不熟悉,又去官网搜索帮助信息,最终找到了一篇介绍,
简单讲就是登录iTunesConnect --->用户与访问--->密钥,至此,生成相应身份的密钥,再将私钥下载下来。
至此,你可以明白什么是apiKey、issuser了。
开始使用又把我坑了一把,这个apiKey的值,就是图中的密钥ID,我们将其对应私钥下载下来后,需要放到一个固定目录下,
'./private_keys'或者'~/private_keys' 或者'~/.private_keys' 或者'~/.appstoreconnect/private_keys'.
也怪我不仔细看介绍:
--apiKey <api_key> apiKey. Required for JWT authentication while using validation, upload, and notarization.
This option will search the following directories in sequence for a private key file
with the name of 'AuthKey_<api_key>.p8': './private_keys', '~/private_keys', '~/.private_keys',
and '~/.appstoreconnect/private_keys'.
最终的验证、上传的两个命令:
xcrun altool --validate-app -f xxx/xxx/xxx.ipa -t ios --apiKey xxxxxxxx --apiIssuer xxxxxx --verbose
xcrun altool --upload-app -f xxx/xxx/xxx.ipa -t ios --apiKey xxxxxxxx --apiIssuer xxxxxx --verbose
总结
有问题,多看官方文档!
Xcode11 Application Loader altool上传ipa相关推荐
- 上传IPA包到App Store
我们都经历过上传IPA包到App Store时的痛苦!!! 第一步:通过Xcode-> Archive,Validate App,成功! 第二步:通过Xcode-> Archive,D ...
- 上传IPA包到App Store
我们都经历过上传IPA包到App Store时的痛苦!!! 第一步:通过Xcode-> Archive,Validate App,成功! 第二步:通过Xcode-> Archive,Dis ...
- 使用xcode上传ipa到app store
打开Xcode,点击左上角Xcode,选择open developer tool下的application loader. 登录application loader,密码为app专用密码,如果登录密码 ...
- 2022最全windows 上传ipa到苹果方法
比初雪云更快捷方便的平台-appuploader,appuploader是一个非常快捷的应用上传工具,介绍下我们的平台:怎么上传iPA到AppStore?在线上传IPA包无需Mac电脑,windows ...
- iOS 13上传ipa报错
Xcode 11 用Transporter上传ipa包报错 INFO: Invalid checksum on resource download for: https://contentdelive ...
- iOS-AppStore上传应用更新之——Xcode上传ipa
iOS-AppStore上传应用更新之--Xcode上传ipa 一.App Store Connect添加新版本配置 二.Xcode验证IPA有效性 三.生成IPA包,通过xcode直接上传至AppS ...
- iOS 关于iTMSTransporter上传IPA报错问题
前言 因为疫情,然后就半个月才上班,今天上APP新版本的时候发现iTMSTransporter无法使用了. 一.报错 Cannot obtain the content provider public ...
- IOS 上传IPA到AppStore
IOS 使用Xcode上传IPA到AppStore,如果正常使用工程打包上传时上传速度慢也可以使用ApplicationLoader这种方法试一下 xcode11之后上传IPA到appstore 1. ...
- mac 使用altool上传iOSApp到App Store Connect
通过 altool 上传 App 的二进制文件 https://help.apple.com/itc/apploader/#/apdATD1E53-D1E1A1303-D1E53A1126 如何生成 ...
最新文章
- 让Exchange 2010 (2007适用)可以收发外部邮件
- iOS开发资源(持续更新)
- 艾伟:重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
- 语音识别1: 音频信号采集、并存入 wav文件
- Docker的安装和Redis容器
- Java 8 Optional类深度解析
- 三星Note2 行货 水货 型号版本
- weblogic问题: Unable to resolve 'jdbc.mydb'. Resolved 'jdbc'; remaining name '
- 计算机比特块的输出概念,第1讲-比特的概念及计算机的组成原理.ppt
- ESXi日志分析网站第五版v5.4
- java万年历的实现
- 借助百度api通过经纬度查询位置信息
- python excel表格的导入和excel中插入折线图
- python读取.ttf字体文件
- sql server中binary怎么得到char类型
- 2022年暑假ACM热身练习3
- asp.net mvc 网站生成二维码
- 清华操作系统课程(向勇、陈渝)笔记——第三章(一)(计算机体系结构/内存分层体系)
- python 主力资金_真正的主力进场加仓指标源码
- 【Matlab风电功率预测】粒子群算法优化LSTM风电功率预测【含源码 941期】