ios - Xcode 8 发布应用程序崩溃?

标签 ios xcode swift3

我在将构建上传到应用商店时遇到错误:

"Invalid Bundle. The asset catalog at '$path' can't contain 16-bit or P3 assets if the app is targeting iOS releases earlier than iOS 9.3"

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

最佳答案

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

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

您需要找到所有 P3 资源,然后将它们转换为 sRGB 色彩空间(使用任何图像编辑器)。原答案如下:

With Xcode 8 GM, this error will occur if you include 16-bit or P3 assets in an app submission targeting iOS releases earlier then iOS 9.3. If your app requires wide color functionality you must change your Deployment Target to iOS 9.3 or later. If your app does not require wide color functionality and you wish to deploy it to older iOS versions then you should replace all 16-bit or P3 assets with 8-bit sRGB assets. You can find 16-bit or P3 assets by running “assetutil” on the asset catalog named in the error message from iTunes Connect. The following steps outline the process:

  1. Create an Inspectable .ipa file. In the Xcode Organizer (Xcode->Window->Organizer), select an archive to inspect, click “Export...", and choose "Export for Enterprise or Ad-Hoc Deployment". This will create a local copy of the .ipa file for your app.

  2. Locate that .ipa file and change its the extension to .zip.

  3. Expand the .zip file. This will produce a Payload folder containing your .app bundle.

  4. Open a terminal and change the working directory to the top level of your .app bundle cd path/to/Payload/your.app

  5. Use the find tool to locate Assets.car files in your .app bundle as shown below: find . -name 'Assets.car'

  6. Use the assetutil tool to find any 16-bit or P3 assets, in each Assets.car your application has as shown below. : sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json

  7. Examine the resulting /tmp/Assets.json and look for any contents containing “DisplayGamut": “P3” and its associated “Name". This will be the name of your imageset containing one or more 16-bit or P3 assets.

  8. Replace those assets with 8-bit / sRGB assets, then rebuild your app.

Update: If your Deployment Target is set to either 8.3 or 8.4 and you have an asset catalog then you will receive this same error message, even if you do not actually have 16-bit or P3 assets. In this case you will either need to lower your Deployment Target to 8.2, or move it up to 9.x.

关于ios - Xcode 8 发布应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552134/

相关文章:

objective-c - 无法更改 UISearchbar 文本字段的大小

iphone - iOS - 异步缓存和加载图像

ios - 从其他View Controller访问开关值

ios - Swift - 使用 tableView 的大标题过渡

ios - 当在 iOS Swift 3 中以编程方式添加 Web View 以查看时,如何在 UIWebView 中获取响应状态代码?

ios - 如何从 UIButton 中删除左填充?

ios - 为具有闭包默认值的属性设置委托(delegate)

xcode - 在 Xcode 中点击 "Replace All"按钮的 key ?

xcode - 未找到调试 iphonesimulator/YogaKit/YogaKit.modulemap'

arrays - 如何使用 sorted 对元组数组进行排序? (无法使用类型参数列表调用 'sorted')