parsingAPI 1.6.4 – 不能build立项目
我下载了新的iOS Parse API(1.6.4)并试图构build我的项目。 当我这样做,我得到这个错误:
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)
截图:
parsing1.6.4和Facebook SDK 3.23的临时解决方法:
添加到您的AppDelegate.m或其他类以下常量后导入和实现部分:
NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException"; @interface IPAppDelegate () @end @implementation IPAppDelegate
它应该解决这个问题,直到它parsing/ Facebook的一面。
– 更新:此解决scheme仅适用于上面列出的Facebook和Parse SDK版本,现在这些版本已过时。
新的分析SDK 1.7.4与新的Facebook SDK 4.0正常工作,应该不会有这样的问题。
我能够找出任何需要parsingiOS v1.6.3的url。
https://parse.com/downloads/ios/parse-library/1.6.3
我可以确认使用1.6.3编译正确。
配售
NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";
在Sergey Surkovbuild议的App Delegate中,在导入和实现之间,然后添加libstdc ++。6.dylib在构build阶段为我工作。 请同时查看https://stackoverflow.com/a/27628797/1036945
我使用了Parse(1.7.4)和Facebook(4.2.0)的最新SDK,也遇到了同样的问题。 这个问题是由Parse和Facebook SDK中包含的Bolts.framework引起的。 出于某种原因,Parse中的Bolts框架总是比包含在Facebook SDK中的框架更新。
经过多次尝试安装,删除和重新安装这些SDK,使用拖放方法和通过Cocoapods,我终于设法通过执行以下步骤来解决这个问题:
- 我从我的项目中完全删除了Parse,Facebook和Bolts框架的任何实例;
- 我按照Facebook开发者页面上的步骤重新添加了FBSDKCoreKit框架(和我的项目需要的ShareKit和LoginKit): https : //developers.facebook.com/docs/ios/getting-started/确保不是将项目复制到您的项目。
-
我使用拖放方法将Parse框架重新添加到项目中。 我还添加了ParseFacebookUtilsV4框架,因为我需要它通过Facebooklogin创build用户。
-
这是解决所有问题的最重要的步骤:我将Parse提供的Bolts.framework拖放到项目中,但确保不将其复制到项目中(就像使用FBSDKCoreKit框架一样,我取消了“Copy items到目的地组的文件夹中“选项,如果你把它复制到项目文件夹中,项目将不会build立。
这些步骤终于解决了我所有的问题。
如果你正在使用cocoapods尝试pod update Bolts
编辑2:FacebookSDK更新3.23.2解决此问题,并包括螺栓1.1.4: https : //developers.facebook.com/resources/facebook-ios-sdk-3.23.2.pkg
编辑:从您的生成设置中删除-ObjC“其他链接器标志”。
如果Facebook SDK集成,则Bolts.framework对于Parse不是必需的。
包括Facebook iOS SDK 3.14的bolt.framework。 https://developers.facebook.com/docs/ios/upgrading-3.x
尝试删除您的手动实例的bolt.framework。
只是要logging下来。
这个问题是由于Facebook SDK Bolts和Parse螺栓框架之间的Bolts框架冲突造成的。 解决此问题的一个临时解决scheme是使用Cocoapods为您的Facebook SDK依赖项,这将有助于修复工作。
该错误已被Facebook确认并被分配给相应的团队进行修复。
请按照https://developers.facebook.com/bugs/383331175179417/获取更新。
确保facebook sdk框架和螺栓框架(自带fb sdk)被导入到您的项目中。
我得到了类似的错误(“…不是一个dylib”和“未定义的架构符号”),因为我拖动整个parsing文件夹(“parsing库-1.7.4-2”)到我的Xcode项目,当我应该只拖动我需要的框架(“Bolts.framework”和“Parse.framework”)。 删除parsing文件夹,拖动两个框架,然后一切按预期工作:)
我有同样的问题。 更新螺栓到1.1.4为我解决(螺栓1.1.3之前)。
如果您使用cocoapods,请将此行更改或添加到您的pod文件中
pod 'Bolts', '1.1.4'
如果没有,只需在这里下载: https : //github.com/BoltsFramework/Bolts-iOS/releases
尝试下载最新的SDK,并用最新版本replace所有的Parse框架。