Parse.com SDK v1.2.20无法编译ARM64位架构。

3

我按照快速入门教程操作,并解决了Facebook SDK被要求的问题(尽管我没有使用Facebook),但是出现错误,指出即使我使用了应该兼容64位架构的Parse SDK版本,也无法为我的iPhone 5S的64位架构编译...

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_PFAnalytics", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_Parse", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

代码崩溃的位置是在我刚刚设置Parse对象和分析时:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [Parse setApplicationId:@"MyAppID"
                  clientKey:@"MyClientID"];
    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
    return YES;
}

我的其他链接标志中包括-ObjC,我的标准架构有效架构都包括arm64armv7sarmv7


肯定还有其他配置错误...你能试一下不带 -ObjC 和不带 Facebook 的空项目吗? - Fosco
如果没有使用-ObjC和Facebook SDK,它可以在空项目中完美运行... 如果我从我的应用程序中删除-ObjC标志,则可以编译,但是当调用CorePlot框架时会崩溃,因为它需要-ObjC标志。 - Ponyboy47
1
尝试使用“-force_load”标志加载CorePlot/deps,无需要求“-ObjC”。 - Fosco
谢谢@Fosco。那个完美地解决了问题。再也没有错误,一切似乎都正常工作! - Ponyboy47
3个回答

1
您没有导入使用Parse SDK所需的全部框架。

**AudioToolbox.framework

CFNetwork.framework

CoreGraphics.framework

CoreLocation.framework

libz.dylib

MobileCoreServices.framework

QuartzCore.framework

Security.framework

StoreKit.framework

SystemConfiguration.framework**

你需要确保在将PARSE SDK移入你的框架时,营销COPY选项。


2
我已经导入了所有这些框架,因为这是快速入门教程中的步骤之一,我刚刚删除并重新导入了Parse SDK,并确保选择了COPY,但仍然没有任何不同的情况发生。 - Ponyboy47
我昨天开始使用PARSE,同时也使用了FACEBOOK SDK,一切正常运作。我的应用程序中唯一不同的是,在APPDelegate的didFinishLaunching方法中加入了[FBLoginView Class]和[FBProfilePictureView Class],因此我不需要标记“-objc”。 - Gabriel Araujo
添加 MobileCoreServices.framework 解决了我的问题。 - Brian Whipp

0
添加Parse框架附带的Bolts.framework到项目中解决了我的问题。希望这对你有所帮助。

0
解决方案是删除-ObjC链接器标志和Facebook SDK。这导致我使用的另一个第三方框架出现错误,该框架需要-ObjC链接器标志,但@Fosco建议我使用-force_load path/to/framework标志强制加载所需的框架,解决了我的所有问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接