今天我将Xcode愿景更新为8.0。当我向Apple商店提交app.ipa文件时,我收到错误反馈:ITMS-90682:" Invalid Bundle。资产目录位于' $ path'如果应用程序的目标是iOS早于iOS 9.3的版本,则无法包含16位或P3资产。"]。
我在互联网上搜索答案并得到类似答案,但不合适。
因为他们的问题与我的问题并不完全相同。他们的问题包含' Payload / ****。app / Assets.car' ,但我的包含' $ path'。
他们的方法如下:
第一步:修改文件' app.ipa到app.zip的名称
第二步:解压缩app.zip
第三步:撤消命令行和$ cd app.app文件
第四步:$ find。 -name' Assets.car'
第五步:$ sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car> /tmp/Assets.json
第六步:打开/tmp/Assets.json
第七步:搜索" P3"和" 16位"在名为" Assets.json"
的文件中第八步:记录"名称"
第九步:打开Xcode,找出第八步中已记录名称的图像。将图像格式更改为8和sRGB
这些不适用于我的,因为不同的是" $ path" .i无法获得在我的项目中形成为P3或16位的imaged的名称,因为我可以&# 39;获得第五步获取属性Assets.json文件的正确方法。
答案 0 :(得分:13)
更改您的IPHONEOS_DEPLOYMENT_TARGET'到' 8.2'如果您使用了' 8.3'。
答案 1 :(得分:7)
简答
我们需要将部署目标降低到8.2才能通过iTunes Connect
完整答案
@dove lark这是来自Apple Developer论坛,请查看更新段落:
使用Xcode 8 GM时,如果包含16位或P3,则会发生此错误 应用提交中的资源,其目标是早于iOS的iOS版本 9.3。如果您的应用需要广泛的颜色功能,则必须将部署目标更改为iOS 9.3或更高版本。如果您的应用没有 需要广泛的颜色功能,并希望将其部署到旧版本 iOS版本然后你应该替换所有16位或P3资产 8位sRGB资产。您可以通过运行找到16位或P3资产 来自错误消息中指定的资产目录上的“assetutil” iTunes Connect。以下步骤概述了该过程:
创建一个Inspectable .ipa文件。在Xcode Organizer(Xcode-> Window-> Organizer)中,选择要检查的存档,单击 “导出...”,然后选择“导出企业版或特别部署版”。 这将为您的应用创建.ipa文件的本地副本。
找到.ipa文件并将其扩展名更改为.zip。
展开.zip文件。这将生成一个包含.app包的Payload文件夹。
打开终端并将工作目录更改为.app软件包的最高级别cd path / to / Payload / your.app
使用find工具查找.app包中的Assets.car文件,如下所示:find。 -name'Assets.car'
使用assetutil工具在您的应用程序具有的每个Assets.car中查找任何16位或P3资产,如下所示。 :sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car> /tmp/Assets.json
检查生成的/tmp/Assets.json并查找包含“DisplayGamut”的任何内容:“P3”及其关联的“名称”。这将 是包含一个或多个16位或P3的图像集的名称 资产。
- 醇>
用8位/ sRGB资产替换这些资产,然后重建您的应用。 更新:如果您的部署目标设置为8.3或8.4 如果您有资产目录,那么您将收到同样的错误 消息,即使您实际上没有16位或P3资产。在 在这种情况下,您需要将部署目标降低到8.2, 或将其移至9.x。
更新:如果您的部署目标设置为8.3或 8.4 并且您 有一个资产目录,然后你会收到同样的错误信息, 即使您实际上没有16位或P3资产。在这种情况下 您需要将部署目标降低到8.2,或者移动 它高达9.x。
意味着我们需要将部署目标降低到8.2才能通过iTunes Connect。
可笑地解决了我的问题,希望这会帮助别人......