无法将 Facebook SDK Xcode 8 添加到 GoogleMaps SDK(不兼容)
Can't add Facebook SDK Xcode 8 with GoogleMaps SDK (incompatible)
我正在尝试在我的应用程序中添加 FacebookSDK 但我不能,它出现了一些错误。
我已经使用 Cocoapods 安装了 GoogleMaps。
所以首先我尝试使用 Cocoapods 来安装 Facebook,但它不能。在终端中显示此错误
[!] The 'Pods-test' target has transitive dependencies that include static binaries:
(/Users/devews/Desktop/test/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework, /Users/devews/Desktop/test/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework, and /Users/devews/Desktop/test/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework)
这是我的播客文件:
source 'https://github.com/CocoaPods/Specs.git'
target 'test' do
# Comment the next line if you're not using Swift and don't want to
use dynamic frameworks
use_frameworks!
pod 'GoogleMaps'
pod 'Google-Maps-iOS-Utils'
pod 'Bolts'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
end
其次,我也尝试使用 Cocoapods 添加 Facebook,并通过删除导致最后一个问题的 "use_frameworks!" 行,pod 安装 Facebook SDK 但是当我想在 AppDelegate 中导入以下行时:
import FBSDKCoreKit
它显示"No such module 'FBSDKCoreKit'",所以Facebook SDK并没有真正安装,但我可以在项目中看到它,如下图。
好像是因为我删除了 podfile 中的 "use_frameworks!" 行所以它不能工作。
所以第三,我删除了 podfile 中的 GoogleMaps 并尝试手动添加它,但它显示了很多错误,可能是因为缺少文件但我不知道,因为我遵循了 GoogleMaps 文档:
https://developers.google.com/maps/documentation/ios-sdk/start?hl=fr
所以最后,我决定在 podfile 中重新安装 GoogleMaps 并从 podfile 中删除 Facebook SDK,然后手动添加 Facebook SDK,如 Facebook 文档中所示,它尝试在 "Framework Search Paths" 但它似乎没有改变任何东西,也没有任何东西想要工作。我想这次我不需要导入 FBSDKCoreKit,但是当我在 AppDelegate 中添加以下行时:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
GMSServices.provideAPIKey("AIzaSyCnSxY__6RFFzp2pJbQoLj8vAQrkWb2byA")
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
然后出现两个很奇怪的错误:
如果我点击这两个错误没有任何反应。
所以我创建了一个新的 Objective-C 文件调用“test-Bridging-Header 并写入以下内容:
// Use this file to import your target's public headers that you would like to expose to Swift.
#import <Google-Maps-iOS-Utils/GMUMarkerClustering.h>
#import "GMSMapView+ClusterKit.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
但同样的问题,没有什么对我不起作用。
如果有人知道如何解决这个大问题,因为我想在我的应用程序中同时使用 FacebookSDK 和 GoogleMaps SDK,但这似乎是不可能的。我在 Internet 上搜索了很多东西,但没有一个是行不通的
Google 地图是静态的,而 Facebook 是动态的,所以不能同时使用 Cocoapods 安装它们是正常的。
如果您使用 Cocoapods 安装 GoogleMaps 并手动添加 FacebookSDK,这是更好的方法。
为了解决您最后的问题:
您需要先在项目导航器中单击您的项目名称,它似乎适合您 "test" Xcode 左上角的蓝色图标然后进入部分"Build settings",在搜索字段中搜索 "Framework Search Paths",然后双击它并在 Mac 中添加 Facebook SDK 的正确路径(在 Facebook for developers 网站上,他们要求我们将 FacebookSDK 放在我们的文档文件夹中)所以你只需在以下路径中写入:
/Users/$(USER)/Documents/FacebookSDK
第二件事,就在"Build Settings"的右边你可以看到"Build Phases",你点击它,然后点击"Link Binary With Libraries"这里你只需要添加相同的框架已经通过拖放添加到您的项目中。因此,单击 + 按钮并添加 Bolts.framework、FBSDKCoreKit.framework、FBSDKLoginKit.framework 和 FBSDKShareKit.framework。
第三件事,您可以保留您创建的 Bridging-Header.h 文件并导入:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
没关系。
希望对你有帮助。
我正在尝试在我的应用程序中添加 FacebookSDK 但我不能,它出现了一些错误。 我已经使用 Cocoapods 安装了 GoogleMaps。
所以首先我尝试使用 Cocoapods 来安装 Facebook,但它不能。在终端中显示此错误
[!] The 'Pods-test' target has transitive dependencies that include static binaries:
(/Users/devews/Desktop/test/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework, /Users/devews/Desktop/test/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework, and /Users/devews/Desktop/test/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework)
这是我的播客文件:
source 'https://github.com/CocoaPods/Specs.git'
target 'test' do
# Comment the next line if you're not using Swift and don't want to
use dynamic frameworks
use_frameworks!
pod 'GoogleMaps'
pod 'Google-Maps-iOS-Utils'
pod 'Bolts'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
end
其次,我也尝试使用 Cocoapods 添加 Facebook,并通过删除导致最后一个问题的 "use_frameworks!" 行,pod 安装 Facebook SDK 但是当我想在 AppDelegate 中导入以下行时:
import FBSDKCoreKit
它显示"No such module 'FBSDKCoreKit'",所以Facebook SDK并没有真正安装,但我可以在项目中看到它,如下图。
好像是因为我删除了 podfile 中的 "use_frameworks!" 行所以它不能工作。
所以第三,我删除了 podfile 中的 GoogleMaps 并尝试手动添加它,但它显示了很多错误,可能是因为缺少文件但我不知道,因为我遵循了 GoogleMaps 文档: https://developers.google.com/maps/documentation/ios-sdk/start?hl=fr
所以最后,我决定在 podfile 中重新安装 GoogleMaps 并从 podfile 中删除 Facebook SDK,然后手动添加 Facebook SDK,如 Facebook 文档中所示,它尝试在 "Framework Search Paths" 但它似乎没有改变任何东西,也没有任何东西想要工作。我想这次我不需要导入 FBSDKCoreKit,但是当我在 AppDelegate 中添加以下行时:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
GMSServices.provideAPIKey("AIzaSyCnSxY__6RFFzp2pJbQoLj8vAQrkWb2byA")
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
然后出现两个很奇怪的错误:
如果我点击这两个错误没有任何反应。 所以我创建了一个新的 Objective-C 文件调用“test-Bridging-Header 并写入以下内容:
// Use this file to import your target's public headers that you would like to expose to Swift.
#import <Google-Maps-iOS-Utils/GMUMarkerClustering.h>
#import "GMSMapView+ClusterKit.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
但同样的问题,没有什么对我不起作用。
如果有人知道如何解决这个大问题,因为我想在我的应用程序中同时使用 FacebookSDK 和 GoogleMaps SDK,但这似乎是不可能的。我在 Internet 上搜索了很多东西,但没有一个是行不通的
Google 地图是静态的,而 Facebook 是动态的,所以不能同时使用 Cocoapods 安装它们是正常的。 如果您使用 Cocoapods 安装 GoogleMaps 并手动添加 FacebookSDK,这是更好的方法。 为了解决您最后的问题:
您需要先在项目导航器中单击您的项目名称,它似乎适合您 "test" Xcode 左上角的蓝色图标然后进入部分"Build settings",在搜索字段中搜索 "Framework Search Paths",然后双击它并在 Mac 中添加 Facebook SDK 的正确路径(在 Facebook for developers 网站上,他们要求我们将 FacebookSDK 放在我们的文档文件夹中)所以你只需在以下路径中写入:
/Users/$(USER)/Documents/FacebookSDK
第二件事,就在"Build Settings"的右边你可以看到"Build Phases",你点击它,然后点击"Link Binary With Libraries"这里你只需要添加相同的框架已经通过拖放添加到您的项目中。因此,单击 + 按钮并添加 Bolts.framework、FBSDKCoreKit.framework、FBSDKLoginKit.framework 和 FBSDKShareKit.framework。
第三件事,您可以保留您创建的 Bridging-Header.h 文件并导入:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
没关系。 希望对你有帮助。