当我使用Xcode 8 GM Seed构建我的应用程序并在iOS 9.2下面的设备或模拟器上运行时,我在应用程序启动期间或应用程序启动后几秒钟发生奇怪的EXC_BAD_ACCESS崩溃 . 崩溃总是发生在一个不同的地方(添加一个子视图, [UIImage imageNamed:]
,app delegate 's main method etc). I don' t当我在iOS 9.3或10上运行时遇到这些崩溃,当我使用Xcode 7并且在iOS 9.2上运行时我没有得到它们以下 . 还有其他人遇到类似的东西吗?这是Xcode 8的已知问题吗?
8 回答
看到接受的答案https://forums.developer.apple.com/thread/60919
您可以使用Preview.app将16位资产保存为8位资源
我希望这个bash脚本可以帮助你 . 输入参数是包含项目的所有xcassets的目录 . 此脚本将sRGB配置文件设置为所有png . 它帮助了我:)
我能够重现问题,它似乎与资产目录中的图像有关 . Filed a bug with Apple(附带示例项目)
Apple Bug Reporter:28371396
编辑脚本将png文件转换为整个项目中的正确格式并使用空格:
同样的问题 .
我不确定这是否是一个错误,但这是我的解决方案:确保你的图像资产没有Adobe RGB(1998)色彩空间
in xcode
添加其他有类似问题的人......
应用程序崩溃在iOS 9.0 - iOS 9.2上似乎随机/围绕Storyboard过渡/围绕设置UIImage(名称...)..发现此主题:(https://forums.developer.apple.com/thread/61643)
如果你的应用程序的目标是iOS 8.4,它将在Xcode 8中的iOS 9.0 - 9.2上崩溃 . 与xcassets有关 . 将部署目标设置为8.2或更低(我使用8.0)为我修复了它 . 不开玩笑 . 最糟糕的错误 .
将项目的 iOS Deployment Target 内部的 iOS Deployment Target 和所有目标设置为相同的值 .
在我的情况下,我的项目设置为 iOS 9.1 ,目标设置为 iOS 8.0 ,并在模拟器上崩溃 iOS 8.4
现在它完美无缺 .
PS . :再次运行之前清洁项目 .
虽然问题已经得到解答,但加入的解决方案对我来说并不适用,因为我没有任何16b / ch资产 .
我发现使用
lzfse
算法压缩的资产出现问题(您可以从中找到有关压缩提取信息的信息)Assets.car使用assetutil
) . 不幸的是,Xcode IDE不允许开发人员更改压缩算法,但是您可以通过手动编译资产并在actool
命令中降低部署目标来实现 .TL;博士;
档案
解压缩
ipa
编译资产 - 您可以通过检查Xcode report navigator中的存档日志找到xcode生成的项目的资产编译器命令
示例命令:
xcrun actool --output-format human-readable-text --notices --warnings --minimum-deployment-target 8.0 --output-partial-info-plist info_partial.plist --app-icon AppIcon --launch-image LaunchImage --enable-on-demand-resources YES --sticker-pack-identifier-prefix {bundle_id}.sticker-pack --target-device iphone --target-device ipad --platform iphoneos --product-type com.apple.product-type.application --compile #{path_to_directory_containing_Assets_car} Assets/Assets.xcassets
拉链吧 .
Resign