我第一次能够在Xcode 7中编译我的应用程序(在测试版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 / Frame / CoreFoundation.framework / CoreFoundation 在/private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq
这是否与链接库的顺序有关?期待一些建议。
谢谢!
答案 0 :(得分:22)
我把它放在podfile中来修复它。 平台:ios,'8.4' 无需将您的设备更新到iOS 9并且无法进行8.4测试。
答案 1 :(得分:19)
我遇到了同样的错误,我修好了。 我删除了CoreFoundation.framework并再次使用状态“可选”添加并工作。
答案 2 :(得分:6)
答案 3 :(得分:4)
我也有这个问题,我通过在构建设置中添加框架CoreFoundation.framework来修复它。
答案 4 :(得分:4)
这是使用新XCODE版本在iOS8版本上的问题,请删除CoreFoundation.framework
并再次添加状态为“Optional
”。
答案 5 :(得分:2)
我在更新Xcode for 7.0 GM版本(7A218)后编译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 / Library / Frameworks /我猜。
我在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(作为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,您可以采用相同的策略。
答案 6 :(得分:1)
我在安装了第一个iOS 9测试版的设备上遇到了运行Xcode 7.0 beta 6的严重崩溃,但是在使用模拟器时没有发生崩溃。
将我的iPhone更新到iOS 9 beta 5后,崩溃停止了。