Xcode 7 Beta 6,dyld ___NSArray0__ 崩溃

Xcode 7 Beta 6, dyld ___NSArray0__ crash

我第一次能够在 Xcode 7 中编译我的应用程序(在 beta 4 和 5 中失败)。所以,我想这是一个很好的进步。

但是,当我在 iPhone 6、iOS 8.4.1 上加载我的应用程序时,它在调试器中崩溃并显示以下消息:

dyld:找不到符号:_NSArray0 引用自:/private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq 预计在:/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 在 /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq

这与链接库的顺序有关吗?期待一些建议。

谢谢!

我在安装了第一个 iOS 9 beta 的设备上遇到了同样的崩溃 运行 Xcode 7.0 beta 6,但是在使用模拟器时没有发生崩溃。

将我的 iPhone 更新到 iOS 9 beta 5 后,崩溃停止了。

在为 7.0 GM 版本 (7A218) 更新 Xcode 后,我在编译 mac os 项目时遇到过同样的错误。 Xcode 7 仅包含 10.11 sdk(您可以在 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs 中检查它,其中它是 MacOSX10.11.sdk).

在编译时 xcode 将 link 来自 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11 的框架.sdk/System/Library/Frameworks,但在运行时从 /System/Library/Frameworks/ 我猜。

我在 mac 上有 OS X 10.10.5 (14F27)。要么我有我由 xcode 7 构建的静态库(MacOSX10.11.sdk 正如你之前记得的那样),我已经 link 编辑到我的项目之后。在 运行 之后我得到运行时错误

dyld: Symbol not found: _NSArray0

我认为这是因为该库是使用 mac os sdk 10.11 中的 CoreFoundation.framework 编译的,但在运行时被 link 编辑为 CoreFoundation.framework来自 /System/Library/Frameworks/ 其中版本为 10.10(作为 OS 版本)。

我是如何解决这个问题的。我的朋友还有 xcode 6,我从那里拿了 mac os sdk 10.10(你记得在 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs , 名称是 MacOSX10.10.sdk) 并将其添加到我的 Xcode 中。然后我用 10.10 sdk 重建了我的静态库(你可以用'-sdk macosx10.10'参数从cli编译或者在Build Settings => Base SDK中设置build sdk)。问题解决后

我假设对于 iOS 你可以应用相同的策略。

我通过将其放入 podfile 来修复它。 平台:ios,'8.4' 无需将您的设备更新到 iOS 9 并在 8.4 测试中失败。

如果其他人在 运行 单元测试时遇到此问题,请执行以下操作:

  1. Select 单元测试目标
  2. 转到构建设置
  3. 搜索 'Deployment Target'
  4. 将部署目标版本更改为项目的部署目标

就是这样!

我也遇到了这个问题,我通过将框架 CoreFoundation.framework 添加到构建设置来修复它。

我有同样的错误,我已修复。 我删除了 CoreFoundation.framework 并使用 Status "Optional" 再次添加并且有效。

这是 iOS8 使用新 XCODE 版本构建的问题,请删除 CoreFoundation.framework 并重新添加,状态为“Optional”。