iOS Archive打包ipa以及上架Apple Store

1 Archive打包ipa

  • 打包ipa准备
    首先,工程scheme必须选择iOS Device(真机)或者Build(Any iOS Device(arm64, armv7)),而不能选择iOS Simulators(模拟器),否则Archive按钮一直为灰色不可点击。

  • 启动打包发布流程
    菜单栏Xcode--Product--Archive,然后等编译完成会弹出如下框:


    image.png

提示:如果之前有启动过该流程,则通过菜单栏Xcode--Window-- Organizer,也会弹出上面的框。

  • 点击“Distribute App”,进入打包发布流程


    image.png

说明:
(1)App Store Connect:发布到Apple Store(具体见下面2)
(2)在账号添加的设备上使用(可以托管到第三方平台,比如蒲公英)
(3)企业账号分发
(4)在账号添加的设备上使用(一般本地使用时用这个)

  • “在账号添加的设备上使用”:
    这个需要登录苹果开发者账号,然后在设备下注册设备的UUID(UDID)。
    注册UUID流程:
    (1)通过真机调试时使用Xcode来register device,这个过程是自动的(工程运行时Xcode会自动弹出注册弹框)。
    (2)在开发者账号下进入Certificates, Identifiers & Profiles devices,然后找到设备列表再添加新的设备,需要提供手机的名称以及设备号(Device ID, UDID)。

  • 获取iPhone手机UUID(UDID)
    (1)可以通过手机浏览器打开蒲公英来获取。
    1)在Safari浏览器打开如下网址:
    https://jingyan.baidu.com/article/a3a3f81127f0e18da2eb8a14.html
    2)然后点击绿色的“获取UDID”按钮,会提示下载一个配置描述文件,点“允许”,然后会跳转到设置-描述文件与设备管理,选择 “蒲公英(PGYER)”,点击进入该选项,然后点击右上角“安装”,输入开机密码,在弹出选项对话框中点击“安装”,安装成功会跳转回浏览器
    3)这个时候会在上面浏览器输入的网址里显示:设备信息UDID,如图所示:

    image.png

    4)如果上面网址不好复制,可以通过扫描如下二维码:
    image.png

(2)可以通过iTools的iPhone的更多信息里找到设备标识,即UDID。
注意:如果未注册设备,一定要先注册再打包版本来安装。不然会报错:

无法安装“xxx应用”
无法安装此App,因为无法验证其完整性。
  • 打包ipa包
    上面“启动打包发布流程”选择第4个“Development”,然后一路Next,最后一步Export导出到文件夹,就生成ipa了。

2 Archive上架Apple Store

  • 上架准备
    上面“启动打包发布流程”选择第1个“App Store Connect”,然后一路Next,最后一步选择“Upload”上传到App Store Connect。

  • 上架App Store Store
    浏览器进入App Store Connect:


    image.png

    点击“iOS App“右侧的”+“号按钮,进入信息填写页面:


    image.png

注意:新上传的APP版本,首先会在TestFlight下做准备,等TestFlight下准备好了之后,iOS APP审核页面,就可以选择“构建版本”,选择TestFlight里准备好的APP版本了。

填好APP和版本信息之后,再存储,最后点击审核按钮,等审核完就成功上架了。

3 Archive上架Apple Store遇到的问题

  • Archive上传问题
App Store Connect Operation Error
could not find the service with interface (com.apple.transporter.osgi.TransporterService)

App Store Connect Operation Error
Resolver: Install error - org.apache.tika.parsers Exception's name: org.osgi.framework.BundleException, Exception's message: An error occurred trying to read the bundle

说明:本地Archive上传APP版本时遇到该问题,在查找资料(见后面参考)会看到有其他的原因。但本地是磁盘容量不足导致的(上面日志显示下载失败),原因是在上传文件时会下载一些文件在如下缓存目录中:
/Users/hh/Library/Caches/com.apple.amp.itmstransporter

  • 如上,清理完磁盘,然后上传成功,但警告提示:
App Store Connect Operation Warning

WARNING ITMS-90901: "Missing full-screen support for the latest iPad mini display. The “ios-demo-app.app” bundle includes UIRequiresFullScreen=YES in the Info.plist or supports only a subset of UISupportedInterfaceOrientations, and is built with the 14.2 SDK. To take advantage of the full screen size, recompile with Xcode 13 and the SDK for iPadOS 15 or later."

说明:需要升级xocde,比如从12.x到13.x。

  • 升级xocde(从12.x到13.x)后,重新发布APP,报错:
App Store Connect Operation Error
The bundle version, 40132, must be a higher than the previously uploaded version.

说明:原因是前面有版本上传成功,但该版本不符合发布要求,不可发布。但它占用了一个版本号,所以下一次上传时版本号(即versionName和versionCode)需要增大才可以。

Redundant Binary Upload. You've already uploaded a build with build number '40132' for version number '4.1.32'. Make sure you increment the build string before you upload your app to App Store Connect. Learn more in Xcode Help (http://help.apple.com/xcode/mac/current/#/devba7f53ad4).

说明:原因同上。

  • 切图icon问题
App Store Connect Operation Error
ERROR ITMS-90717 Invalid App Store Icon. The App Store Icon in the asset catalog in 'app-demo-ios.app' can't be transparent nor contain an alpha channel.

Invalid App Store Icon. The App Store Icon in the asset catalog in 'app-demo-ios.app' can't be transparent nor contain an alpha channel. With error code STATE_ERROR.VALIDATION_ERROR.90717 for id 63645428-e97d-4005-bb75-e68c5948d5cc

原因:图片(即切图icon,包括启动图标和应用商店展示图标)需要去掉透明度

  • iPad选项问题:
App Store Connect Operation Error
ERROR ITMS-90101: "This bundle does not support one or more of the devices supported by the previous app version. Your app update must continue to support all devices previously supported. You declare supported devices in Xcode with the Targeted Device Family build setting. Refer to QA1623 for additional information: https://developer.apple.com/library/ios/#qa/qa1623/_index.html"

原因:去掉iPad选项导致的问题。同时修改如下配置(去掉iPad)
"@platforms":["android","iPhone","iPad"]

  • 针对文件类型问题:
App Store Connect Operation Error

This bundle is invalid. The value of the CFBundleDocumentTypes key in the Info.plist must be an array of dictionaries, with each dictionary containing at least the CFBundleTypeName key. With error code STATE_ERROR.VALIDATION_ERROR.90149 for id cb33160b-cf26-4475-b7f2-92034c067567

App Store Connect Operation Warning

WARNING ITMS-90737: "Missing Document Configuration. By declaring the CFBundleDocumentTypes key in your app, you've indicated that your app is able to open documents. Please set the UISupportsDocumentBrowser key to "YES" if your app uses a UIDocumentBrowserViewController. Otherwise, set the LSSupportsOpeningDocumentsInPlace key in the Info.plist to "YES" (recommended) or "NO" to specify whether the app can open files in place. All document-based apps must include one of these configurations. For more information, visit https://developer.apple.com/document-based-apps/."
"

处理:工程Info.plist文件配置Document Types节点。


image.png
  • MackBook M2电脑兼容问题
    (1)uploading时遇到authenticating with the app store:
uploading authenticating with the app store

这里直接在终端输入命令:
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/bin/iTMSTransporter
需要等待一会(参考网上资料会下载大概60M-80M的文件)。

(2)uploading package to the app store

uploading package to the app store

遇到这种情况,还是需要等待。并不需要做什么,大概是网络慢点缘故,导致上传时间长了点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,030评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,198评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,995评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,973评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,869评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,766评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,967评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,599评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,886评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,901评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,728评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,504评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,967评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,128评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,445评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,018评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,224评论 2 339

推荐阅读更多精彩内容