8

我第一次能够在 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。 /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq 中的框架/CoreFoundation

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

谢谢!

4

7 回答 7

22

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

于 2015-09-22T04:32:51.917 回答
19

我有同样的错误,我修复了。我删除了 CoreFoundation.framework 并再次添加状态为“可选”并且可以正常工作。

于 2015-11-18T19:06:50.443 回答
6

如果其他人在运行单元测试时得到这个,请执行以下操作:

  1. 选择单元测试目标
  2. 转到构建设置
  3. 搜索“部署目标”
  4. 将部署目标版本更改为项目的部署目标

而已!

在此处输入图像描述

于 2015-10-30T09:30:03.113 回答
4

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

于 2015-11-06T04:21:04.270 回答
4

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

于 2016-03-23T16:53:47.917 回答
2

在为 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 将从 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks 链接框架,但在运行时从 /System/图书馆/框架/我猜。

我在 mac 上有 OS X 10.10.5 (14F27)。要么我有我用 xcode 7 构建的静态库(你之前记得的 MacOSX10.11.sdk),然后我已经链接到我的项目。运行后我得到运行时错误

dyld:找不到符号:_NSArray0

我认为这是因为该库已使用 mac os sdk 10.11 中的 CoreFoundation.framework 进行编译,但在运行时已链接到 /System/Library/Frameworks/ 中的 CoreFoundation.framework,其中版本为 10.10(作为操作系统版本)。

我是如何解决这个问题的。我的朋友有 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,您可以应用相同的策略。

于 2015-09-16T06:43:32.723 回答
1

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

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

于 2015-08-26T03:35:11.203 回答