做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 or xcrun 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相关推荐

  1. 上传IPA包到App Store​

    我们都经历过上传IPA包到App Store时的痛苦!!!​ 第一步:通过Xcode-> Archive,Validate App,成功!​ 第二步:通过Xcode-> Archive,D ...

  2. 上传IPA包到App Store

    我们都经历过上传IPA包到App Store时的痛苦!!! 第一步:通过Xcode-> Archive,Validate App,成功! 第二步:通过Xcode-> Archive,Dis ...

  3. 使用xcode上传ipa到app store

    打开Xcode,点击左上角Xcode,选择open developer tool下的application loader. 登录application loader,密码为app专用密码,如果登录密码 ...

  4. 2022最全windows 上传ipa到苹果方法

    比初雪云更快捷方便的平台-appuploader,appuploader是一个非常快捷的应用上传工具,介绍下我们的平台:怎么上传iPA到AppStore?在线上传IPA包无需Mac电脑,windows ...

  5. iOS 13上传ipa报错

    Xcode 11 用Transporter上传ipa包报错 INFO: Invalid checksum on resource download for: https://contentdelive ...

  6. iOS-AppStore上传应用更新之——Xcode上传ipa

    iOS-AppStore上传应用更新之--Xcode上传ipa 一.App Store Connect添加新版本配置 二.Xcode验证IPA有效性 三.生成IPA包,通过xcode直接上传至AppS ...

  7. iOS 关于iTMSTransporter上传IPA报错问题

    前言 因为疫情,然后就半个月才上班,今天上APP新版本的时候发现iTMSTransporter无法使用了. 一.报错 Cannot obtain the content provider public ...

  8. IOS 上传IPA到AppStore

    IOS 使用Xcode上传IPA到AppStore,如果正常使用工程打包上传时上传速度慢也可以使用ApplicationLoader这种方法试一下 xcode11之后上传IPA到appstore 1. ...

  9. mac 使用altool上传iOSApp到App Store Connect

    通过 altool 上传 App 的二进制文件 https://help.apple.com/itc/apploader/#/apdATD1E53-D1E1A1303-D1E53A1126 如何生成 ...

最新文章

  1. 让Exchange 2010 (2007适用)可以收发外部邮件
  2. iOS开发资源(持续更新)
  3. 艾伟:重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
  4. 语音识别1: 音频信号采集、并存入 wav文件
  5. Docker的安装和Redis容器
  6. Java 8 Optional类深度解析
  7. 三星Note2 行货 水货 型号版本
  8. weblogic问题: Unable to resolve 'jdbc.mydb'. Resolved 'jdbc'; remaining name '
  9. 计算机比特块的输出概念,第1讲-比特的概念及计算机的组成原理.ppt
  10. ESXi日志分析网站第五版v5.4
  11. java万年历的实现
  12. 借助百度api通过经纬度查询位置信息
  13. python excel表格的导入和excel中插入折线图
  14. python读取.ttf字体文件
  15. sql server中binary怎么得到char类型
  16. 2022年暑假ACM热身练习3
  17. asp.net mvc 网站生成二维码
  18. 清华操作系统课程(向勇、陈渝)笔记——第三章(一)(计算机体系结构/内存分层体系)
  19. python 主力资金_真正的主力进场加仓指标源码
  20. 【Matlab风电功率预测】粒子群算法优化LSTM风电功率预测【含源码 941期】

热门文章

  1. Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Mar 2023)
  2. 杭电ACM题目类型整理
  3. gdb 和 cgdb 调试工具
  4. 清除流氓软件工具大合集,欢迎补充!
  5. 卷积神经网络结合水平集方法
  6. 汇编转换c语言,汇编语言到C语言的转换
  7. IDEA(2020.3)导入Spring源码
  8. 【边拆边聊14G】Purley平台的超强演绎!
  9. 圆锥体的高度是多少?
  10. 网站301怎么开启并设置