XCode 4.3 使用错误链接的 dylib 构建 iOS 应用程序(未找到符号:_OBJC_CLASS_$_CLGeocoder)
Posted
技术标签:
【中文标题】XCode 4.3 使用错误链接的 dylib 构建 iOS 应用程序(未找到符号:_OBJC_CLASS_$_CLGeocoder)【英文标题】:XCode 4.3 builds iOS Apps with wrong linked dylibs (Symbol not found: _OBJC_CLASS_$_CLGeocoder) 【发布时间】:2012-03-06 15:03:04 【问题描述】:XCode 4.3 在 Release
配置中使用错误链接的 dylib 构建 ios 应用程序(请参阅底部的错误)。
应用在设备上启动后立即崩溃。
在 cli 上使用 xcodebuild 或使用 Xcode 4.2.1 构建应用程序有效。
应用再次链接 CoreLocation(并在目标中)并在 iOS 5.x 上使用 CLGeocoder。在 iOS 4.x 上使用 MKReverseGeoCoder。 (NSClassFromString() returns a class even when class should not be available)
只有在您构建档案并将应用程序作为 IPA 文件共享时才会发生这种情况。在 iOS 设备 (4.x) 上启动应用程序后立即。
Dyld Error Message: Symbol not found: _OBJC_CLASS_$_CLGeocoder
Referenced from: /var/mobile/Applications/*********/AppName.app/AppName
Expected in: /System/Library/Frameworks/CoreLocation.framework/CoreLocation
in /var/mobile/Applications/*********/AppName.app/AppName
Dyld Version: 179.7
我怎样才能摆脱这个错误?
【问题讨论】:
你找到解决这个错误的方法了吗?? 不,我没有找到解决方案。向 Apple 报告的错误也是“开放的”。 我遇到了同样的错误!也许我们应该为此开始赏金,或者您找到解决方案了吗? 【参考方案1】:即使在尝试了 bllubbor 在您在问题中链接到的线程上发布的解决方案之后,我也收到了同样的错误:
if (NSClassFromString(@"CLGeocoder") &&
[NSClassFromString(@"CLGeocoder") instancesRespondToSelector:
@selector(reverseGeocodeLocation:completionHandler:) ])
//iOS 5 or later
我还可以通过确保 CoreLocation 框架在目标的构建设置中的弱链接(即设置为可选而不是必需)来解决它。
【讨论】:
【参考方案2】:将CoreLocation
框架添加到您的项目包中。
【讨论】:
CoreLocation 已经在目标和项目包中!以上是关于XCode 4.3 使用错误链接的 dylib 构建 iOS 应用程序(未找到符号:_OBJC_CLASS_$_CLGeocoder)的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 查找错误的 OpenCV 库名称:2.4.dylib 而不是 2.4.5.dylib