osx-yosemite – 使用xcode6.4在El Capitan上构建的应用程序中,Yosemite上的图像资源(xcassets)无法正确显示

前端之家收集整理的这篇文章主要介绍了osx-yosemite – 使用xcode6.4在El Capitan上构建的应用程序中,Yosemite上的图像资源(xcassets)无法正确显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我使用 Xcode6.4在El Capitan上构建应用程序时(Xcode7现在没有选项),所有图像/图标(AppIcon除外)都没有显示,或者看起来像是乱码.

看看资产编译器的输出看起来很好,但我怀疑有两个输出可能是相关的,但我很不确定:

2015-10-02 12:26:53.569 ibtoold[28899:273288] NSFileCoordinator is doing nothing.

2015-10-02 12:26:54.906 ibtoold[28899:276436] CoreUI(DEBUG): CSIGenerator using ‘LZFSE’ Compression coreui version (362.000000)

可能是LZFSE压缩混乱使Yosemite无法正确解压缩,如果是这样,有没有办法覆盖它?

在El Capitan上运行应用程序时没有问题.

任何建议都非常欢迎.

更新:
当应用程序在Yosemite上运行时,这些消息将输出到控制台:

02.10.15 22.31.59,914 AppName[452]: -[CUIThemeRendition newImageFromCSIDataSlice:ofBitmap: usingColorspace:] Unsupported pixel format in CSI got 36864

02.10.15 22.31.59,914 AppName[452]: Unable to create unsliced image from csi bitmap data.

看来他们在Xcode beta 3 here中对iOS7有这个问题

但现在突然再次出现似乎很奇怪,我的目标是OS X.

更新:
所以我升级到了Xcode7,整个问题都消失了.所有图像和图标现在都可以在El Capitan和Yosemite中正确显示.

解决方法

背景资料:

每个版本的Xcode都内置了一个模拟器. Xcode 6.4有iOS模拟器8.4. Xcode 7.1有iOS模拟器9.1等.这些模拟器的配置文件存储在Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/CoreSimulator/Profiles/Runtimes

当您安装其他模拟器时,这些模拟器将在Xcode版本之间共享,其配置文件存储在/ Library / Developer / CoreSimulator / Profiles / Runtimes中

因此,当您从Xcode 7.1安装iOS模拟器9.0时,9.0模拟器配置文件将被放入共享位置.如果您从Xcode 7.1安装iOS模拟器8.4,它也会放在这里,因为Xcode 7.1不知道有一个隐藏在Xcode 6.4内的iOS模拟器8.4的副本.

所以似乎正在发生的事情是(对于Xcode 6.4):

>当您调用actool创建资产目录时,它会启动ibtoold
> ibtoold通过XPC服务(com.apple.coresimulator)调用并在模拟器服务之上运行IBCocoaTouchImageCatalogTool的实例
> IBCocoaTouchImageCatalogTool遍历/ Library / Developer / CoreSimulator / Profiles / Runtimes中的所有模拟器运行时,显然使用了它能找到的最新版本.为什么这样做对我来说并不是很清楚,但没有多少旋钮摆弄它导致它做任何其他事情.

因此,如果您安装了Xcode 7.1.1并下载了9.0模拟器,那么您将破坏Xcode 6.4安装,因为9.0模拟器在共享模拟器运行时区域中安装其运行时,并且Xcode 6.4在某些情况下将其拾取并使用它.这显然会导致actool破坏它导入的任何png.在我的实验中,导入jpgs很好.其他有趣的副作用包括尝试在Xcode 6.4中编辑Storyboard导致Xcode 6.4崩溃.

因此,如果您需要同时拥有Xcode 7.x和Xcode 6.4,请不要在Xcode 7安装中安装任何iOS 9.x模拟器.

猜你在找的iOS相关文章