我正在使用Xcode 7 Beta 4.最初我使用Cocoapods版本0.38.2,当我在终端中运行pod install –verbose时,它表示它下载了Bolts,FBSDKCoreKit,FBSDKLoginKit,FBSDKShareKit,FBSDKMessengerShareKit和iOS 8.1的Pods的依赖项.使用此设置我的应用程序编译成功.下面是我用于导入Facebook SDK的Podfile和Objective-C桥接文件(因此Swift识别其引用的方法和Objective-C类).请注意,我的Podfile中显示的特定版本也是安装的版本,即使我在撰写本文时没有明确指定它们.
Podfile
xcodeproj '/Users/<my_username>/MyApp/MyApp.xcodeproj' pod "FBSDKCoreKit","~> 4.7.0"; pod "FBSDKLoginKit","~> 4.7.0"; pod "FBSDKShareKit","~> 4.7.0"; pod "FBSDKMessengerShareKit","~> 1.3.1";
MyAppObjCBridging.h
#ifndef MyAppObjCBridging_h #define MyAppObjCBridging_h #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h> #import <FBSDKMessengerShareKit/FBSDKMessengerShareKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #endif
更新到Cocoapods v0.39.0时遇到的问题(来自v0.38.2)
控制台显示消息“CocoaPods 0.39.0可用.要更新使用:gem install cocoapods.在我们达到1.0版本之前,CocoaPods的功能可以并且将会改变.我们强烈建议您始终使用最新版本.”,所以我通过在终端执行sudo gem install cocoapods安装了最新版本的Cocoapods 0.39.0.
但是当我编译我的应用程序时,它给了我以下错误:
/Users//MyApp/MyApp/MyAppObjCBridging.h:14:9:找不到’FBSDKCoreKit / FBSDKCoreKit.h’文件
在Xcode I“Product> Clean”(CMD SHIFT K)中,但这没有任何区别.所以我在终端运行了sudo gem uninstall cocoapods(其中列出了0.38.2和0.39.0作为当前安装的版本),并从列表中选择了版本0.39.0以卸载最新版本并恢复为0.38.2.然后我运行pod install –verbose.当我尝试编译我的应用程序时,它已成功编译并再次在Simulator中运行.
问题1
当我使用Cocoapods版本0.39.0而不是旧版本0.38.2时,为什么会出现无法找到“FBSDKCoreKit / FBSDKCoreKit.h”的错误?
问题2
如果在使用Cocoapods版本0.38.2(与我的应用程序编译的版本)时,我决定将平台:ios,’9.0’添加到我的Podfile的第一行(在其现有内容之上)并在终端中运行pod install –verbose,终端消息告诉我它安装iOS 9.0的每个pod目标(而不是iOS 8.1)(即 – 安装targetFBSDKCoreKitiOS 9.0).
当我运行我的应用程序时,它成功编译并在模拟器中打开,并显示一些与iOS9相关的新警告,其中大部分都是我理解的.但是我不明白为什么出现这个.为什么会出现这个警告?:
ld:警告:找不到选项’-L / Users / Ls / code / swift / FreeWifiSearch / FreeWifiSearch / build / Debug-iphoneos’的目录
问题3
当使用Cocoapods版本0.38.2(与我的应用程序编译的版本)时,如果我决定添加use_frameworks!到我的Podfile的第一行,以及平台:ios,’9.0’到我的Podfile的第二行(在其现有内容之上),然后在终端中运行pod install –verbose,终端消息告诉我它安装每个适用于iOS 9.0的pod目标(而不是iOS 8.1).
当我运行我的应用程序时,出现以下错误:
>使用未解析的标识符’FBSDKLoginButton’
>使用未解析的标识符’FBSDKLoginManager’
>使用未解析的标识符’FBSDKLoginBehavIoUr’
为什么要添加use_frameworks!我的Podfile顶部阻止我使用Facebook SDK标识符? (注意当我没有use_frameworks!在我的Podfile顶部时,我的应用程序成功编译并在Xcode Simulator中运行,我可以成功检索Facebook SDK访问令牌并登录Facebook)
>从X Store 7 Beta 4更新到Xcode 7.1.1,从App Store下载最新版本>添加了use_frameworks!和平台:ios,’9.0’到Podfile的顶部>将部署目标更改为iOS 9.0:项目设置>目标>一般>部署信息>部署目标> 9>使用sudo gem install cocoapods将CocoaPods更新为v0.39>重新安装pod更新pod -verbose>在包含Facebook SDK方法的类上方添加了导入FBSDKLoginKit>在Xcode中执行Clean(Shift CMD K)和Run(CMD R)以在设备上进行测试