Xcode 8发布App Crash?

时间:2016-09-17 22:02:56

标签: ios xcode swift3

将内容上传到App Store时出错:

  

“无效的捆绑包。如果应用程序的目标是早于iOS 9.3的iOS版本,则'$ path'的资产目录不能包含16位或P3资产”

我曾经将它上传到Beta测试之前就好了,我的部署目标是8.3。

1 个答案:

答案 0 :(得分:3)

这个答案正是您问题的解决方案

https://stackoverflow.com/a/39453818/1271424

您需要找到所有P3资源,然后将它们转换为sRGB颜色空间(使用任何图像编辑器)。这是最初的答案:

  

使用Xcode 8 GM时,如果包含16位或P3,则会发生此错误   应用提交中的资源,其目标是早于iOS的iOS版本   9.3。如果您的应用需要广泛的颜色功能,则必须将部署目标更改为iOS 9.3或更高版本。如果您的应用没有   需要广泛的颜色功能,并希望将其部署到旧版本   iOS版本然后你应该替换所有16位或P3资产   8位sRGB资产。您可以通过运行找到16位或P3资产   来自错误消息中指定的资产目录上的“assetutil”   iTunes Connect。以下步骤概述了该过程:

     
      
  1. 创建一个Inspectable .ipa文件。在Xcode Organizer(Xcode-> Window-> Organizer)中,选择要检查的存档,单击   “导出...”,然后选择“导出企业版或特别部署版”。   这将为您的应用创建.ipa文件的本地副本。

  2.   
  3. 找到.ipa文件并将其扩展名更改为.zip。

  4.   
  5. 展开.zip文件。这将生成一个包含.app包的Payload文件夹。

  6.   
  7. 打开终端并将工作目录更改为.app软件包的最高级别cd path / to / Payload / your.app

  8.   
  9. 使用find工具查找.app包中的Assets.car文件,如下所示:find。 -name'Assets.car'

  10.   
  11. 使用assetutil工具在您的应用程序具有的每个Assets.car中查找任何16位或P3资产,如下所示。 :sudo xcrun --sdk   iphoneos assetutil --info /path/to/a/Assets.car> /tmp/Assets.json

  12.   
  13. 检查生成的/tmp/Assets.json并查找包含“DisplayGamut”的任何内容:“P3”及其关联的“名称”。这将   是包含一个或多个16位或P3的图像集的名称   资产。

  14.   
  15. 用8位/ sRGB资产替换这些资产,然后重建您的应用。

  16.         

    更新:如果您的部署目标设置为8.3或8.4并且您有   资产目录然后您将收到相同的错误消息,即使您没有   实际上有16位或P3资产。在这种情况下,您需要降低   您的部署目标为8.2,或将其移至9.x.