我在使用 pod 将 Google Maps IOS 实用程序(用于标记聚类)添加到我的 swift xcode 项目中时遇到问题。
当我跑步时pod install
它失败并出现以下错误:
“Pods-App”目标具有传递依赖关系,其中包括静态
二进制文件:
(/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)
谷歌地图工作正常,但一旦我添加实用程序,它就会崩溃。
此错误消息是什么意思?我该如何解决它?
这是我的 Podfile:
# 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
由于 Cocoapods 的限制,这个问题没有现成的解决方案。当应用程序是用 Swift 构建时,就会出现限制,您包括use_frameworks!
在你的 podfile 中,并且正在使用作为静态库提供的传递依赖项(例如Google Maps
).
由于 Google 不会提供动态框架(直到支持 iOS 7),目前的解决方法是集成Google Maps IOS Utilities
手动进入您的项目。
集成步骤如下所述:https://github.com/googlemaps/google-maps-ios-utils/blob/b721e95a500d0c9a4fd93738e83fc86c2a57ac89/Swift.md https://github.com/googlemaps/google-maps-ios-utils/blob/b721e95a500d0c9a4fd93738e83fc86c2a57ac89/Swift.md
- 从 Podfile 中删除 Google-Maps-iOS-Utils(如果存在)。
在您的项目中创建一个名为
'Google-Maps-iOS-Utils'
.
- 将存储库下载到本地计算机中。
- 通过右键单击将 src 目录中的文件夹添加到您的项目中
'Google-Maps-iOS-Utils'
组并选择“将文件添加到...”(确保选择目标作为应用程序目标以避免未定义的符号问题)。
- 确保在 XCode 设置中您的应用程序目标的“使用标头映射”处于打开状态(XCode 中默认处于打开状态)。
- 添加桥接头文件
#import "GMUMarkerClustering.h"
(注意相对路径)。
- 打开总标题 GMUMarkerClustering.h(在 Google-Maps-iOS-Utils/Cluster 组下)并将所有导入路径更改为相对路径。例如,改变
#import <Google-Maps-iOS-Utils/GMUCluster.h>
to #import "GMUCluster.h"
。 (“使用标头映射”设置将正确解析相对路径)。
- 构建您的项目。
- 就是这样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)