我正在使用谷歌地图开发一个应用程序。我会解释我用谷歌地图做了什么,也许你可以帮我。
我使用的谷歌地图框架没有POD,但在谷歌地图键出现一些错误后,我删除了谷歌地图框架参考,并使用POD安装了它。一切都很好,但当我点击时
产品->测试
现在我得到这个错误:
ld: framework not found GoogleMaps for architecture arm64
知道怎么解决这个问题吗?
谢谢!
Podfile看起来像这个Cocoapods v1.0测试版6):
platform :ios, '8.0'
use_frameworks!
target 'Project' do
pod 'GoogleMaps'
target 'ProjectTests' do
inherit! :search_paths
pod 'Mockingjay'
end
end
更新请检查目标的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,就像"SwiftCocoaPodsTest"一样。您可以将名称替换为测试目标名称
否则,如果你想在多个目标中添加相同的吊舱,你可以使用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
这对我有效:
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
您可以按照中的建议,通过使用Rosetta打开Xcode来尝试此解决方法https://github.com/googlemaps/google-maps-ios-utils/issues/355#issuecomment-800912985
它会影响你的表现,但有效。
1 - With Xcode closed (Important) Go to finder -> Applications
2 - Right Click on Xcode and select "Get Info"
3 - On the info panel check "Open using Rosetta"
4 - Double Click in the large bottom preview of the info panel.
请参阅以下评论:https://github.com/googlemaps/google-maps-ios-utils/issues/355#issuecomment-1060959728
+请按照此操作在Xcode 14.3+中使用罗塞塔打开
要在罗塞塔模拟器上运行应用程序,您需要执行以下操作。
- 转到";产品";菜单栏中的菜单,然后选择Destination(目的地)>目标体系结构>显示罗塞塔目的地
- 您将在模拟器旁边的括号中看到体系结构。在这种情况下,它是罗塞塔
您将在模拟器名称旁边的括号中看到一个Rosetta架构。如果你想在两种体系结构上运行;显示两者";选项
- 转到";产品";菜单栏中的菜单,然后选择Destination(目的地)>目标体系结构>显示两者
参考:https://sarunw.com/posts/open-using-rosetta-in-xcode-14-3/