iOS,ld:framework找不到架构arm64的GoogleMaps



我正在使用谷歌地图开发一个应用程序。我会解释我用谷歌地图做了什么,也许你可以帮我。

我使用的谷歌地图框架没有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

更新请检查目标的ArchitecturesBuild 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的

+请按照此操作在Xcode 14.3+中使用罗塞塔打开

要在罗塞塔模拟器上运行应用程序,您需要执行以下操作。

  1. 转到";产品";菜单栏中的菜单,然后选择Destination(目的地)>目标体系结构>显示罗塞塔目的地
  2. 您将在模拟器旁边的括号中看到体系结构。在这种情况下,它是罗塞塔

您将在模拟器名称旁边的括号中看到一个Rosetta架构。如果你想在两种体系结构上运行;显示两者";选项

  • 转到";产品";菜单栏中的菜单,然后选择Destination(目的地)>目标体系结构>显示两者

参考:https://sarunw.com/posts/open-using-rosetta-in-xcode-14-3/

最新更新