iOS,ld:未找到架构 arm64 的 GoogleMaps 框架
Posted
技术标签:
【中文标题】iOS,ld:未找到架构 arm64 的 GoogleMaps 框架【英文标题】:iOS , ld: framework not found GoogleMaps for architecture arm64 【发布时间】:2015-12-06 00:47:27 【问题描述】:我正在使用谷歌地图开发一个应用程序。我会解释我用谷歌地图做了什么,也许你可以帮助我。
我在没有 POD 的情况下使用谷歌地图框架,但在谷歌地图密钥出现一些错误后,我删除了谷歌地图框架参考,并使用 POD 安装了它。一切正常,但是当我点击
产品 -> 测试
现在我收到此错误:
ld: framework not found GoogleMaps for architecture arm64
知道如何解决这个问题吗?
谢谢!
Podfile 看起来像这样 Cocoapods v1.0 beta 6):
platform :ios, '8.0'
use_frameworks!
target 'Project' do
pod 'GoogleMaps'
target 'ProjectTests' do
inherit! :search_paths
pod 'Mockingjay'
end
end
【问题讨论】:
使用 Cocoapod 可能会更好,将库/框架添加到项目中非常简单,而且这种方法不易出错。 嗯,谢谢你,就像我说的......我现在正在使用可可豆荚 @Asinox 你能更新你的 podfile 吗? 【参考方案1】:更新请检查您是否在目标的Architectures
和Build active Architectures only
键中具有相同的构建设置
你的 podfile 应该是这样的
platform :ios, '8.0'
use_frameworks!
target 'Project' do
pod 'GoogleMaps'
end
target 'ProjectTests' do
//inherit! :search_paths
pod 'Mockingjay'
end
在开始ProjectTest
目标之前结束project
目标,为什么还要添加inherit! :search_paths
?除非您有特殊要求,否则通常不需要它
旧答案
如果你想在测试目标中添加 pod,那么在测试中添加的方式也与在项目的主目标中添加的方式相同
所以如果“SwiftCocoaPods”是你的主要目标名称,你的可可豆荚就是这样
//other top level imports
target “SwiftCocoaPods” do
pod "GoogleMaps"
end
target “SwiftCocoaPodsTests” do
pod "GoogleMaps"
end
然后你应该为测试添加 pod,比如“SwiftCocoaPodsTests”。您可以将名称替换为您的测试目标名称
否则,如果您想在多个目标中添加相同的 pod,您可以使用 def
并在所有看起来像这样的目标中使用它
def project_pods
pod "GoogleMaps"
//add other pods which you want in all the targets
end
target “SwiftCocoaPods” do
project_pods
end
//only add project_pods instead of pods individually
target “SwiftCocoaPodsTests” do
project_pods
end
【讨论】:
没有。问题是我们不想在测试目标中包含 GoogleMaps。因此使用 Cocoapods 是为了仅将其包含在主要目标中。但是由于某种原因,Test 目标仍然认为它需要加载 GoogleMaps。 @GnarlyDog ,所以你不想要 googlemaps 但它也需要它作为测试目标?你能更新你的 podfile 吗? @GnarlyDog 在否决之前你们必须提到你不希望 cocoapods 在测试目标中仍然显示/在目标中使用 cocoapods 你当前的问题没有说这个,它只是说构建失败 很公平。但我认为从原始问题中很清楚。尽管如此,我将使用示例 Podfile 更新问题。 @GnarlyDog ,更新的答案可能会有所帮助【参考方案2】:这对我有用:
platform :ios, '9.0'
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
def all_pods
pod 'GoogleMaps'
end
abstract_target 'Map Base' do
all_pods
target 'Map' do
end
target 'Unit Tests' do
end
target 'Device Tests' do
end
end
【讨论】:
以上是关于iOS,ld:未找到架构 arm64 的 GoogleMaps 框架的主要内容,如果未能解决你的问题,请参考以下文章
错误:未找到架构 x86_64 的符号,collect2:ld 返回 1 退出状态