【问题标题】:(Swift) Linker error when trying to use parse 1.7.1 and FacebookSDK 4.0.1(Swift) 尝试使用 parse 1.7.1 和 FacebookSDK 4.0.1 时出现链接器错误
【发布时间】:2015-04-17 16:45:29
【问题描述】:

我正在将我的 iOS 项目升级到新版本的 parse 和 Facebook SDK,因为 Swift 1.2 不支持旧版本。

现在我已经升级了,我无法摆脱链接器错误。我添加了 parse 1.7.1 并从我的桥接头中删除了 import 语句。 只需解析编译器就不会抱怨。

但由于我使用 facebook 登录,我还需要包含 FacebookSDK。我添加了 facebookSDK 4.0.1,这就是问题所在。

我知道有 1 个警告和 9 个错误。以下是错误

Undefined symbols for architecture x86_64: "_FBTokenInformationExpirationDateKey", referenced from: -[PFFacebookTokenCachingStrategy cacheTokenInformation:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) -[PFFacebookTokenCachingStrategy expirationDate] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) -[PFFacebookTokenCachingStrategy setExpirationDate:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) "_FBTokenInformationTokenKey", referenced from: -[PFFacebookTokenCachingStrategy accessToken] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) -[PFFacebookTokenCachingStrategy setAccessToken:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) "_FBTokenInformationUserFBIDKey", referenced from: -[PFFacebookTokenCachingStrategy facebookId] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) -[PFFacebookTokenCachingStrategy setFacebookId:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) "_OBJC_CLASS_$_FBAppCall", referenced from: objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o) "_OBJC_CLASS_$_FBRequest", referenced from: objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o) "_OBJC_CLASS_$_FBSession", referenced from: objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o) "_OBJC_CLASS_$_FBSessionTokenCachingStrategy", referenced from: _OBJC_CLASS_$_PFFacebookTokenCachingStrategy in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) "_OBJC_METACLASS_$_FBSessionTokenCachingStrategy", referenced from: _OBJC_METACLASS_$_PFFacebookTokenCachingStrategy in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试过添加-ObjC 链接器标志、删除和读取SDK 等操作。想不出别的了。

不知道怎么办

【问题讨论】:

    标签: ios swift parse-platform linker facebook-ios-sdk


    【解决方案1】:

    我也有同样的问题。我升级到 Xcode 6.3 和 Swift 1.2。我是第一次使用 Parse 导入 Facebook 4.0.1 SDK。这是我到目前为止所尝试的。

    1. 我添加了 SDK 库 FBSDKCoreKit.Framework, FBSDKLoginKit.Framework, FBSDKShareKit.Framework 到您的 XCode Projects Framework 文件夹中。取消选中“复制到目标组文件夹”并按照 Facebook 和 Parse 的设置步骤操作。

    并添加了 PFFacebookUtilsV4 库

    然后我将导入添加到我的桥接头

    导入 FBSDKCoreKit/FBSDKCoreKit.h

    导入 ParseFacebookUtilsV4/PFFacebookUtils.h

    我从你的问题中得到了同样的错误。

    1. 我遇到了一个解决方案并删除了 FB SDK 中的所有模块文件夹,这是为导入 Swift 项目带来解决方案的配偶,现在这是我的错误

    我更新了 Parse SDK,但仍然找不到解决方案。试图在 AppDelegate.swift 中导入库,但仍然无法做到。尝试访问 PFFacebookUtils 但添加 FBSDK 后,Xcode 找不到该文件。

    感谢您的帮助..

    【讨论】:

    • 是的,我也删除了 FacebookSDK 中的模块文件夹。没有让我通过构建
    • 很遗憾没有。我认为新的 FB/Parse SDK 都存在错误,因为我尝试的任何方法似乎都不起作用。等待新版本,希望它会被修复。
    • 我面临的问题最终是在将 sdk 添加到我的 xcodeproj 时重新创建了 Modules。添加后,您需要 rm -rf FacebookSDK 内部的所有模块文件夹,以使项目停止出现链接器错误。我希望 Facebook 能尽快解决的相当严重的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    相关资源
    最近更新 更多