无法使用GoogleMaps SDK添加Facebook SDK Xcode 8(不兼容)

时间:2017-09-27 14:42:05

标签: ios facebook google-maps cocoapods xcode8

我正在尝试在我的应用上添加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 / uninstall / Desktop / test /Pods / GoogleMaps / Email / Frameworks / GoogleMaps.framework和/ Users / devews /桌面/测试/荚/谷歌地图/地图/框架/ GoogleMapsCore.framework)

这是我的podfile:

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

它显示“没有这样的模块'FBSDKCoreKit'”,所以Facebook SDK没有真正安装,但我可以在项目中看到它如下图所示。

error no such module

似乎是因为我删除了“use_frameworks!”这一行。在podfile上,所以它无法工作。

第三,我在podfile中删除了GoogleMaps并尝试手动添加它,但它显示了很多错误,可能是因为丢失文件但我不知道,因为我遵循了GoogleMaps文档: https://developers.google.com/maps/documentation/ios-sdk/start?hl=fr

最后,我决定在podfile中重新安装GoogleMaps并从podfile中删除Facebook SDK,然后手动添加Facebook SDK,如Facebook文档中所示,它试图在“框架搜索路径”中添加〜/ Documents / FacebookSDK “但似乎并没有改变任何事情,也没有想要工作。我想我这次不需要导入FBSDKCoreKit但是当我在AppDelegate中添加以下行时:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    GMSServices.provideAPIKey("AIzaSyCnSxY__6RFFzp2pJbQoLj8vAQrkWb2byA")
    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}

然后出现两个非常奇怪的错误:

error FB SDK

如果我点击这两个错误就没有任何反应。 所以我创建一个新的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,这似乎是不可能的。我在互联网上搜索了很多东西,但没有什么不能工作

1 个答案:

答案 0 :(得分:0)

Google地图处于静态状态,Facebook处于动态状态,因此您可以通过Cocoapods安装它,这是正常的。 如果您使用Cocoapods安装GoogleMaps并手动添加FacebookSDK,那么这是更好的方法。 为了解决您的上一期:

首先需要在Project Navigator中单击项目名称,它似乎适合您&#34; test&#34;使用Xcode左上角的蓝色图标然后进入&#34; Build settings&#34;部分,在搜索字段中搜索&#34;框架搜索路径&#34;然后在这里双击它并在你的Mac上添加Facebook SDK的正确路径(在开发者网站的Facebook上,他们要求我们将FacebookSDK放在我们的Documents文件夹中),所以你只需写下以下路径:

/Users/$(USER)/Documents/FacebookSDK

第二件事,就在&#34; Build Settings&#34;的右边。你可以看到&#34; Build Phases&#34;,你点击它,然后点击&#34; Link Binary With Libraries&#34;在这里,您只需要通过拖放项目添加已添加的相同框架。所以点击+按钮并添加Bolts.framework,FBSDKCoreKit.framework,FBSDKLoginKit.framework和FBSDKShareKit.framework。

第三,您可以保留您创建的Bridging-Header.h文件并导入:

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>

没关系。 希望它可以帮到你。