Parse API 1.6.4 - 无法构建项目

时间:2015-03-06 12:40:12

标签: ios parse-platform arm64 bolts-framework

我下载了新的iOS Parse API(1.6.4)并尝试构建我的项目。当我这样做时,我收到了这个错误:

Undefined symbols for architecture arm64" "_BFTaskMultipleExceptionsException", referenced from:
  ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o)
  ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o) 
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

截图: screenshot

11 个答案:

答案 0 :(得分:12)

Parse 1.6.4和Facebook SDK 3.23的临时解决方法:

在导入之后和实现之前添加到AppDelegate.m或其他类后面的常量:

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

@interface IPAppDelegate ()
@end

@implementation IPAppDelegate

它应该解决问题,直到它在Parse / Facebook方面解决。

- 更新:此解决方案仅适用于上面列出的Facebook和Parse SDK版本,现在这些版本已过时。

新的Parse SDK 1.7.4在新的Facebook SDK 4.0中运行正常,不应该出现这样的问题。

答案 1 :(得分:5)

我能够找出任何需要Parse iOS v1.6.3的人的URL。

https://parse.com/downloads/ios/parse-library/1.6.3

我可以确认使用1.6.3正确编译所有内容。

答案 2 :(得分:3)

放置

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";
按照Sergey Surkov在导入和实现之间建议的App Delegate中的

然后添加libstdc ++。6.dylib在构建阶段为我工作。另请查看https://stackoverflow.com/a/27628797/1036945

答案 3 :(得分:3)

使用Parse(1.7.4)和Facebook(4.2.0)的最新SDK,我遇到了完全相同的问题。问题是由Parse和Facebook SDK中包含的Bolts.framework引起的。出于某种原因,Parse中的Bolts框架总是比Facebook SDK中包含的框架更新。

经过多次尝试安装,删除和重新安装这些SDK,使用拖放方法和Cocoapods,我终于通过执行以下步骤克服了这个问题:

  1. 我从我的项目中完全删除了Parse,Facebook和Bolts框架的任何实例;
  2. 我按照Facebook开发者页面上的步骤重新添加了FBSDKCoreKit框架(以及满足我项目需求的ShareKit和LoginKit):https://developers.facebook.com/docs/ios/getting-started/ 确保不要将项目复制到项目中。
  3. 我使用拖放方法将Parse框架重新添加到项目中。我还添加了ParseFacebookUtilsV4框架,因为我需要它通过Facebook登录创建用户。

  4. 这是解决所有问题的最重要步骤:我将Parse提供的Bolts.framework添加到项目中,但确保不将其复制到项目中(就像使用FBSDKCoreKit框架一样)我取消选择"将项目复制到目标组的文件夹。"选项。如果将其复制到项目文件夹,项目将无法构建。

  5. 这些步骤终于解决了我所有的问题。

答案 4 :(得分:2)

如果您正在使用cocoapods,请尝试pod update Bolts

答案 5 :(得分:1)

EDIT2:FacebookSDK更新3.23.2解决了这个问题,包括螺栓1.1.4:https://developers.facebook.com/resources/facebook-ios-sdk-3.23.2.pkg


编辑: 从构建设置中删除-ObjC“其他链接器标记”。


如果集成了Facebook SDK,则Parse不需要Bolts.framework。
截至Facebook iOS SDK 3.14 bolt.framework包括在内。 https://developers.facebook.com/docs/ios/upgrading-3.x

尝试删除bolt.framework的手动实例。

答案 6 :(得分:0)

只是为了记录。

该问题是由于与Facebook SDK Bolts和Parse bolt框架之间的Bolts框架发生冲突而引起的。解决此问题的临时解决方案是使用Cocoapods作为您的Facebook SDK依赖项,这将有助于修复工作。

这个漏洞已被Facebook&正被分配到相应的团队进行修复。

请按https://developers.facebook.com/bugs/383331175179417/进行更新。

答案 7 :(得分:0)

确保将facebook sdk框架和bolt框架(随fb sdk附带)导入到您的项目中。

答案 8 :(得分:0)

我得到了类似的错误(" ...不是dylib"和#34;架构&#34的未定义符号;)因为我拖动了整个解析文件夹("解析库) -1.7.4-2")进入我的xcode项目,当我应该只拖动我需要的框架时(" Bolts.framework"" Parse.framework")。删除了parse文件夹,拖过两个框架,然后一切按预期工作:)

答案 9 :(得分:-1)

我遇到了完全相同的问题。将螺栓更新到1.1.4为我解决了(之前螺栓为1.1.3)。

如果您使用cocoapods,请将此行更改或添加到您的podfile

pod 'Bolts', '1.1.4'

如果没有,请在此处下载:https://github.com/BoltsFramework/Bolts-iOS/releases

答案 10 :(得分:-1)

尝试下载最新的SDK并用最新版本替换所有Parse框架。