1

XCode 4.3 在Release配置中使用错误链接的 dylib 构建 iOS 应用程序(请参阅底部的错误)。

该应用程序在设备上启动后立即崩溃。

在 cli 上使用 xcodebuild 或使用 Xcode 4.2.1 构建应用程序是可行的。

该应用程序再次链接 CoreLocation(并在目标中),并且在 iOS 5.x 上使用 CLGeocoder。在 iOS 4.x 上使用 MKReverseGeoCoder。(NSClassFromString() 即使类不可用也会返回一个类

仅当您构建存档并将应用程序共享为 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

我怎样才能摆脱这个错误?

4

2 回答 2

4

即使在尝试了 bllubbor 在您在问题中链接到的线程上发布的解决方案之后,我也收到了同样的错误:

if (NSClassFromString(@"CLGeocoder") && 
    [NSClassFromString(@"CLGeocoder") instancesRespondToSelector:
@selector(reverseGeocodeLocation:completionHandler:) ]) {

                        //iOS 5 or later    
  }

我还可以通过确保CoreLocation 框架在目标的构建设置中的弱链接(即设置为Optional 而不是Required)来解决它。

于 2012-07-24T16:05:52.810 回答
3

CoreLocation框架添加到您的项目包中。

于 2012-03-21T22:35:08.777 回答