Google Maps Utilities IOS Pod错误

时间:2016-12-12 04:44:48

标签: ios swift google-maps google-maps-api-3

我无法将Google Maps IOS Utilities(用于标记群集)添加到我的带有pod的swift xcode项目中。 当我运行# Uncomment the next line to define a global platform for your project # platform :ios, '9.0' workspace '../app' target 'App' 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' # Firebase - used for notifications pod 'Firebase/Core' pod 'Firebase/Messaging' target 'AppTests' do inherit! :search_paths # Pods for testing end end 时,它失败并出现以下错误:

  

' Pods-App' target具有包含静态的传递依赖性   二进制文件:   (/Users/warrick/Projects/orix/App/Pods/GoogleMaps/Subspecs/Base/Frameworks/GoogleMapsBase.framework,   /Users/warrick/Projects/orix/App/Pods/GoogleMaps/Subspecs/Maps/Frameworks/GoogleMapsCore.framework,   和   /Users/warrick/Projects/orix/App/Pods/GoogleMaps/Subspecs/Maps/Frameworks/GoogleMaps.framework)

Google地图工作正常,但只要我添加实用工具就会中断。

此错误消息的含义是什么,以及如何解决它?

这是我的Podfile:

url = "https://docs.google.com/gview?embedded=true&url="+YOUR_PDF_LINK;
var documentLink = cordova.InAppBrowser.open(url, '_blank', 'location=no,hardwareback=yes');

documentLink.addEventListener('loadstart', function(event) {

});

documentLink.addEventListener('exit', function(event) {
    documentLink.removeEventListener("loadstart", function(e){});
});

2 个答案:

答案 0 :(得分:12)

由于Cocoapods限制,这是一个没有开箱即用解决方案的问题。当在Swift中构建应用程序时,您将在您的podfile中包含use_frameworks!,并使用作为静态库提供的传递依赖(例如Google Maps)。

因为Google不会提供动态框架(直到它支持iOS 7),目前的解决方法是手动将Google Maps IOS Utilities集成到您的项目中。

此处介绍了集成步骤:https://github.com/googlemaps/google-maps-ios-utils/blob/master/Swift.md

  
      
  • 从Podfile中删除Google-Maps-iOS-Utils(如果有)。   在您的项目中,创建一个名为'Google-Maps-iOS-Utils'
  • 的组   
  • 将repo下载到本地计算机。
  •   
  • 右键单击'Google-Maps-iOS-Utils'组并选择"将文件添加到..."将src目录中的文件夹添加到项目中。 (确保选择目标作为应用目标,以避免出现未定义的符号问题。)
  •   
  • 确保"使用标题地图"在XCode设置中为您的应用目标设置为ON(默认情况下在XCode中为ON)。
  •   
  • 使用#import "GMUMarkerClustering.h"添加桥接头文件(请注意相对路径)。
  •   
  • 打开伞标题GMUMarkerClustering.h(在Google-Maps-iOS-Utils / Cluster组下)并将所有导入路径更改为relative。例如,将#import <Google-Maps-iOS-Utils/GMUCluster.h>更改为#import "GMUCluster.h"。 (&#39;使用标题地图&#39;设置将正确解析相对路径)。
  •   
  • 构建您的项目。
  •   
  • 那就是它。
  •   

答案 1 :(得分:0)

我能够安装pod,删除use_frameworks后错误消失了!从pod文件中删除,因为我们的项目进展迅速,并在podfile中添加了以下几行 pod'GoogleMaps'#Objective-C pod pod'Google-Maps-iOS-Utils',:git =>'https://github.com/googlemaps/google-maps-ios-utils'