当我用Xcode8GM种子构建我的应用程序,并在设备或模拟器下面的iOS 9.2上运行它时,在应用程序启动期间或应用程序启动几秒钟后,我得到奇怪的exc_BAD_ACCESS崩溃.崩溃总是发生在不同的地方(添加一个子视图、[UIImage imageNamed:]、app委托的main方法等).当我在iOS9.3+或iOS10上运行它时,我不会遇到这些崩溃,当我在iOS9.2及更低版本上运行Xcode7的build时,我也不会得到这些崩溃.还有谁有过类似的经历吗?这是Xcode8的已知问题吗?

推荐答案

参见公认答案https://forums.developer.apple.com/thread/60919

通过预览,您可以将16位assets资源 保存为8位assets资源 .应用程序

如何解决"错误ITMS-90682:无效Bundle 包-assets资源 目录"

对于Xcode 8 GM,如果包含16位或P3,则会发生此错误

  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. 找到该.ipa文件并将其扩展名更改为.zip.

  3. 展开.zip文件.这将产生一个包含.app包的Payload文件夹.

  4. 打开终端并将工作目录更改为.appBundle 包CD路径/to/payload/your.app的顶层

  5. 使用Find工具查找.app包中的Assets.car文件,如下所示:Find.-名称‘Assets.car’

  6. 使用assetutil工具查找应用程序拥有的每个Assets.car中的任何16位或P3assets资源 ,如下所示.:sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json

  7. 判断生成的/tmp/Assets.json并查找包含"DisplayGamut":"P3"及其关联的"name"的任何内容.这将是 是包含一个或多个16位或P3的图像集的名称 assets资源 .

  8. 将这些资源替换为8位/sRGB资源,然后重新构建您的应用程序.

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

Ios相关问答推荐

Flutter WebRTC:GetUserMedia()不适用于Safari和IOS设备

在某些情况下,UIHostingController在自动调整时不能调整大小

从后台线程调用DispatchObject的方法安全吗?

如何解释在SwiftUI视图中观察到持续的数据更改

SwiftUI Divider过大了其父视图

Xcode -Google Mobile Ads SDK在没有AppMeasurement的情况下初始化

为什么iOS委派在KMM中不能正常工作?

使用 WebKit 加载 YouTube 视频时控制台中打印警告

WatchConnectivity - 从手表配套应用程序在 iOS 设备上启动 AVPlayer

由于缺少 libarclite_iphonesimulator.a 文件,将 XCode 升级到 14.3 后无法在模拟器上运行 Flutter 应用程序

为什么这个 SwiftUI 状态在作为非绑定参数传递时没有更新?

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

如何在Collection 后更改并保留按钮 colored颜色 ,然后在 SwiftUI 中切换回来?

.onAppear() 函数不适用于 NavigationLink

在 tableview 中下载图像缩略图时如何提高滚动性能

如何在 Swift 中旋转 UIButton 和 UILabel 的文本?

通过按钮打开 AppStore

用 NavigationViewController 快速呈现 ViewController

使用 swift 3 在 UIView 上添加阴影

UIGestureRecognizer 阻止子视图处理touch 事件