Xcode 12,针对iOS模拟器而构建,但链接到针对iOS所构建的目标文件中,用于体系结构arm64


307

尝试在Xcode 12(测试版5)中构建大型项目(并在Xcode 11上工作),以便为iOS 14做好准备。代码库以前是Obj-C,但现在同时包含Obj-C和Swift,并且使用的pod是Obj-C和/或Swift也是如此。

我已经在Xcode 12支持下(目前为1.10.0.beta 2)拉出了新的cocoapods beta。

吊舱安装成功。进行构建时,在pod框架上收到以下错误:

“针对iOS Simulator构建,但是链接针对iOS,针对体系结构arm64构建的目标文件”

当我在框架上运行lipo -info时,它具有:armv7s armv7 i386 x86_64 arm64。

以前,该项目的有效架构设置为:armv7,armv7s和arm64。

根据Apple的文档,在Xcode 12中,该设置消失了。体系结构设置为$(ARCHS_STANDARD)。我没有在排除的体系结构中设置任何东西。

任何人都知道这里可能会发生什么?我还不能用一个更简单的项目来重现这一点。




我有一个Apple Silicon M1,但仍然遇到此arm64错误。为什么会这样呢?
阿斯彭

Answers:


477

基本上,您必须arm64从项目和Pod项目中排除模拟器体系结构,

  • 要做到这一点,导航到构建设置你的项目,并添加Any iOS Simulator SDK与值arm64Excluded Architecture

    在此处输入图片说明

要么

  • 如果使用自定义XCConfig文件,则只需添加此行即可排除模拟器体系结构。
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64

然后

您必须对Pod项目执行相同的操作,直到所有可可荚供应商都在其Podspec中添加了以下内容

s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

您可以Excluded Architechure在Pod项目的Build Settings中手动添加,但使用时它将被覆盖pod install

代替此,您可以在中添加此代码段Podfile。每次运行时,它将写入必要的构建设置pod install

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

4
这里关于CocoaPods的额外细节很好。请注意,如果没有[sdk=iphonesimulator*]after EXCLUDED_ARCHS,则XCode在为实际设备构建时将找不到您的Pod,因为不会为arm64构建任何Pod。
mwu

6
为我工作!请注意,post_install do |installer|由于翻转器,大多数Podfile中已经有一个部分。将内部部分粘贴到installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" endflipper_post_install(installer)行后面。
拉蒙·韦尔梅伦

5
我越来越building for iOS Simulator, but linking in object file built for macOS, for architecture x86_64。如何解决?
Sazzad Hissain Khan

3
此解决方案非常好,我要补充一点,如果您要构建自己的吊舱,请特别注意作者在“ ...直到所有可可吊舱供应商完成将其Podspec添加到其中”之后建议的两行内容,因为没有这些在我自己的框架中,当我尝试将其推送到我的私人仓库时,Podspec导致了掉毛失败。谢谢!
丹尼

1
由于Pod规范作者已经找到并应用了此解决方案,因此该解决方案存在一个导致麻烦的缺陷。问题部分是的使用user_target_xcconfig。由于多个Pod规范EXCLUDED_ARCHS在冲突中定义了不同的值,并且CocoaPods发出这样的警告[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.。podspec语法参考说“不建议使用此属性” guides.cocoapods.org/syntax/podspec.html#user_target_xcconfig
leberwurstsaft

115

TL; DR;

对于您的库/应用程序,甚至对于发布模式,将“仅构建活动架构(ONLY_ACTIVE_ARCH)”设置为“” 。


在尝试找出问题的根本原因时,我意识到了一些有关Xcode 12的有趣事实。

  1. Xcode 12实际上是Apple Silicon的垫脚石,不幸的是,目前尚不可用。但是,有了该平台,我们将获得基于arm64的macOS,与目前基于Intel的x86_64架构不同,模拟器也将在arm64架构上运行。

  2. Xcode通常依靠“运行目标”来构建其库/应用程序。因此,当一个模拟器被选择为“运行目的地”,它构建可用模拟器架构的应用程序,并当设备被选择为“运行目的地”它建立了架构,该装置支撑件(arm*)。

  3. xcodebuildXcode 12+构建系统中的,被认为arm64是模拟器的有效架构。所以,当一个模拟器被选为运行目标,它可能尝试编译/链接对你的库/应用arm64基于模拟器以及(尚未公布)。因此,它发送clang(++)一些-target标志,如arm64-apple-ios13.0-simulator<architecture>-<os>-<sdk>-<platform>格式,然后clang尝试针对基于arm64的模拟器构建/链接,该模拟器最终在基于Intel的mac上失败。

  4. 但这xcodebuild仅适用于Release版本。为什么?因为“仅构建活动体系结构(ONLY_ACTIVE_ARCH)”构建设置通常仅对“发布”配置设置为“否”。这意味着xcodebuild将尝试为发布构建的选定运行目标构建libs / apps的所有体系结构变体。而对于模拟器中运行的目标,它将包括x86_64arm64现在,因为arm64在Xcode 12+也是模拟器支持的架构,以支持苹果硅。

简而言之,Xcode在尝试使用命令行xcodebuild(默认为释放构建,请参见项目设置的常规选项卡)或尝试构建运行目标支持的所有体系结构变体时,均无法构建您的应用程序。因此,解决此问题的简单方法在您的库/应用程序中将“仅构建Active Architecture(ONLY_ACTIVE_ARCH)”设置为“” ,即使对于发布模式也是如此。

在此处输入图片说明 在此处输入图片说明

如果这些库包含在Pod中,并且您有权访问,则.podspec可以简单地进行设置:

spec.pod_target_xcconfig = {'ONLY_ACTIVE_ARCH'=>'是'}

spec.user_target_xcconfig = {'ONLY_ACTIVE_ARCH'=>'是'}#不推荐

我个人不喜欢第二行,因为pod不应污染目标项目,并且它可能会在目标设置本身中被覆盖。因此,用某种方式覆盖设置应该是用户项目的责任。但是,这可能对成功吊舱规格很有必要。

但是,如果您无权访问,则.podspec可以在安装Pod时始终更新设置:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings["ONLY_ACTIVE_ARCH"] = "YES"
    end
  end
end

我担心的一件事是,当我们实际归档libs / apps时,这会产生什么影响。在归档过程中,应用程序通常采用“发布”配置,由于这将仅考虑当前运行目标的活动体系结构来创建发行版本,因此使用此方法,我们可能会丢失目标版本中的armv7,armv7s等片。但是,我注意到文档说(在附图中突出显示),当我们选择“ Generic iOS Device / Any Device”作为运行目标时,此设置将被忽略,因为它没有定义任何特定的体系结构。因此,我想如果我们将应用程序选择为运行目标来存档,那应该会很好。


1
与Apple相比,这确实是一个令人惊讶的变化,花了我半天时间才弄清楚我认为Apple应该赔偿:)。这不是文档化的更新(至少据我所知),并且肯定会影响升级到Xcode 12的每个人。我只希望每个人在了解基础知识后都能找到自己的解决方法。
阿扬·圣古塔

1
如果使用user_target_xcconfig了多个Pod规范并且值不完全匹配,则CocoaPods将发出这样的警告[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.。podspec语法参考说“不推荐”使用此属性guides.cocoapods.org/syntax/podspec.html#user_target_xcconfig。因此,请不要使用user_target_xcconfig它来节省许多开发人员的麻烦。
leberwurstsaft

2
对!我想我已经在回答中提到了这一点。
Ayan Sengupta

1
我认为这是最好的解决方案,因为它不会破坏使用Xcode 11进行构建的过程。我在整个项目中都应用了此设置,因此不必为Pods或目标单独设置它。然后它可以同时在Xcode 11.7和Xcode 12上工作。不包括archarm64映射到Xcode 11.7,x86_64因此它不包括模拟器的主要体系结构。
Wojciech Kulik

2
最后,我设法通过'EXCLUDED_ARCHS [sdk = iphonesimulator *]'=>'arm64'使其全部正常工作,但仅在pod_target_xcconfig中,并且仅在问题窗格(包括预构建库)和依赖于问题豆荚。其他一切都保持干净。我决定对主动拱形解决方案更喜欢。
Airsource Ltd

72

找到了解决方案! https://developer.apple.com/forums/thread/657913

如果将模拟器的排除体系结构设置为arm64,它将进行编译。

排除模拟器的体系结构


公平地说,我遇到的问题是与手动链接的库有关,但这并没有对我们使用的Pod造成任何问题。
SlashDevSlashGnoll

5
我正在测试发布模式,因此我也必须将其添加到发布
MujtabaFR

我认为发布此帖子后,我们又回到了行业。谢谢你的帮助。
JBarros35年

@btxios创建档案时遇到了“ ARCHS [@]:未绑定变量”问题。您能够解决此问题吗?
ArdenDev

49

“有效体系结构”构建设置已在Xcode 12中删除。如果此构建设置中包含值,则它们会引起问题,需要将其删除。

通过将其重新添加为用户定义的构建设置(无值),运行项目(失败),然后删除VALID_ARCHS构建设置,可以“清除” VALID_ARCHS构建设置。之后,我可以在模拟器上运行。

我的体系结构构建设置为标准体系结构。

您可以从“构建设置”中的加号按钮添加用户定义的设置:

用户定义的设置


9
这应该是公认的答案。确保选择了应用项目而不是目标。否则,您将无法从构建设置中删除VALID_ARCHS。:)
Bionicle

2
@trishcode即使执行此操作后,我仍然遇到相同的错误(xcode12 beta4),所有解决方法
Sivakrishna Perla

3
@SivakrishnaPerla如果您可以在Xcode 11中打开项目,则可以确切看到使用了哪些有效架构的目标。您甚至可以清除Xcode 11中的设置,然后在Xcode 12中再次尝试该项目。如果仍然需要解决方法,并且在嵌入式框架上遇到错误,则SlashDevSlashGnoll的答案应该起作用。如果需要解决方法,并且在Cocoapod上遇到错误,请在安装后的Podfile中排除arm64体系结构。
trishcode

1
@trishcode谢谢,在排除的体系结构中设置arm64并删除了VALID_ARCHS是可行的。
西瓦克里希纳·佩拉

1
如果删除VALID_ARCHS并将arm64添加到排除的体系结构中,则会出现此错误-检查依赖项没有要编译的体系结构(ARCHS = arm64 x86_64,VALID_ARCHS =,EXCLUDED_ARCHS =(arm64))。
nOOb iOS

14

Xcode 12.3

我通过将Validate Workspace设置为Yes解决了这个问题

在此处输入图片说明


解决了我的问题,谢谢!
Declan Land

1
没有解决我的问题
Aspen

解决了我的问题。最简单的修复!我很高兴此问题得以解决,但是有人可以解释一下如何解决此问题吗?
njdeveloper

11

如果您在使用模拟器而不是真实设备的Xcode 12中遇到问题,是的,您必须删除VALID_ARCHS设置,因为它不再受支持。转到“构建设置”,搜索“ VALID_ARCHS ”并删除用户定义的属性。在您拥有的每个目标中做到这一点。

尽管如此,您可能仍需要在podfile的底部添加一个脚本,以使pod编译具有正确的体系结构和部署目标:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
     end
  end
end

VALID_ARCHS从我的项目中删除效果很好。我没有更改podfile或pods项目。
安赫尔·特列斯

8

升级到Xcode 12之后,我仍然能够为真实的设备而构建,但不能为模拟器构建。Podfile构建仅适用于实际设备。

我在“构建设置”>“用户定义”下删除了VALID_ARCHS,它起作用了!在找到这个之前,我会先猛击一段时间。


8

对我来说,以下设置有效:

构建设置>>排除的体系结构

为“任何iOS模拟器SDK”选项添加了“ arm64”到发布和调试模式。

在此处输入图片说明


6

我相信我找到了答案。根据Xcode 12 beta 6发行说明:

“构建设置”编辑器不再包含“有效体系结构”构建设置(VALID_ARCHS),不鼓励使用。相反,存在新的“排除体系结构”构建设置(EXCLUDED_ARCHS)。如果项目包含VALID_ARCHS,则该设置将显示在用户中-“构建设置”编辑器的定义部分。(15145028)

我能够通过手动编辑项目文件(我不知道如何使用Xcode从项目文件中删除项目)并删除所有引用VALID_ARCHS的行来解决此问题。在那之后,我能够为模拟器构建良好的模型。


1
使用Xcode,VALID_ARCHS在“项目”(不是“目标”)中,然后在“构建设置->用户定义”中选择并删除
。– Akshay

这个解决方案对我有用。其他人建议的解决方案不起作用,因为只是将值“ arm64”添加到“排除体系结构”字段开始为生成的.app文件提供了一些“文件权限”错误。
archeopetrix

6

我通过在“排除的体系结构”中为项目目标和pod目标添加“ arm64”来解决问题。

Xcode->目标项目->构建设置->排除的体系结构>“ arm64”

Xcode-> Pod目标->构建设置->排除的体系结构>“ arm64”



5

在您的xxx.framework podspec文件中,添加以下配置,以避免pod包中包含arm64模拟弓

s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

有效!但这意味着Pod不能在基于Apple Silicon的Mac中使用吗?
tomacco

是否已确认@tomacco?
费尔南多·雷诺索

2
@FernandoReynoso我刚刚收到一个开发人员转换套件,(ARM MacMini)将在今天晚些时候进行测试并报告
tomacco '20

@tomacco您能够测试它吗?
侯曼

如果使用user_target_xcconfig了多个Pod规范并且值不完全匹配,则CocoaPods将发出这样的警告[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.。podspec语法参考说“不推荐”使用此属性guides.cocoapods.org/syntax/podspec.html#user_target_xcconfig。因此,请不要使用user_target_xcconfig它来节省许多开发人员的麻烦。
leberwurstsaft

4

我在从命令行构建框架时遇到了问题。我的框架依赖于其他缺少对基于ARM的模拟器的支持的框架。我最终不支持基于ARM的模拟器,直到升级依赖项为止。

EXCLUDED_ARCHS=arm64从CLI构建模拟器框架时,需要标记。

xcodebuild archive -project [project] -scheme [scheme] -destination "generic/platform=iOS Simulator" -archivePath "archives/[scheme]-iOS-Simulator" SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES EXCLUDED_ARCHS=arm64

1
同样在这里。这种情况下的关键“问题”实际上是通过建立通用目的地的-destination "generic/platform=iOS Simulator"。这将导致构建所有可用的体系结构,包括自Xcode 12起的arm64。–
Sascha

4

在尝试了该线程上的几乎所有帖子并阅读了苹果开发人员论坛之后,我发现只有一种解决方案对我有用。

我正在建立一个在快速应用程序中使用的通用框架。没有架构错误,我无法构建到模拟器。

如果您是这种情况,那么在我的Framework项目中,在构建阶段中有一个Universal Framework任务

  • xcodebuild在构建阶段将以下内容添加到您的任务中: EXCLUDED_ARCHS="arm64"

接下来,您必须更改以下项目Build Settings

  • 删除VALID_ARCHS用户定义的设置
  • 设置ONLY_ACTIVE_ARCHYES***

***如果您正在开发框架并具有演示应用程序,则必须在两个项目中都启用此设置。


4

更新:2020年10月

arm64只能Debug > Simulator - iOS 14.O SDK在“排除的体系结构”下简单地设置。

在此处输入图片说明


3

对于Pod开发人员在Podspec中添加:

s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

然后在您的示例项目中 示例项目文件设置

看到它在这个项目中工作


如果使用user_target_xcconfig了多个Pod规范并且值不完全匹配,则CocoaPods将发出这样的警告[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.。podspec语法参考说“不推荐”使用此属性guides.cocoapods.org/syntax/podspec.html#user_target_xcconfig。因此,请不要使用user_target_xcconfig它来节省许多开发人员的麻烦。
leberwurstsaft

2

我也遇到了通过迦太基安装的特定库的相同问题。对于那些正在使用Carthage的用户,由于Carthage在Xcode 12中无法立即使用,因此本文档将指导您一种适用于大多数情况的变通方法。好吧,不久,迦太基建立了胖的框架,这意味着该框架包含所有受支持的体系结构的二进制文件。在引入Apple Sillicon之前,所有功能都可以正常工作,但是由于存在重复的架构(用于设备的arm64和用于模拟器的arm64),现在存在冲突。这意味着迦太基无法将特定于架构的框架链接到单个胖框架。

您可以按照此处的说明进行操作。迦太基XCODE 12

然后在配置迦太基之后。将arm64放在构建设置的“排除的体系结构”中。 在此处输入图片说明

尝试使用模拟器运行项目。模拟器应运行无任何错误。


1

这里的问题是Xcode 11中的有效架构,在Xcode 11中打开项目,并将项目,目标和Pod的有效架构值更改为$(ARCHS_STANDARD),然后在Xcode 12中重新打开项目并进行构建


1

"Build Active Architecture Only"(ONLY_ACTIVE_ARCH)构建设置设置为yes,xcode因为Silicon MAC体系结构是arm64 ,所以要求arm64。

在Xcode12中添加了arm64作为模拟器拱门,以支持Silicon MAC。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/SDKSettings.json


如果它不是在硅Mac上运行,那么肯定应该知道不使用arm64吗?
乔纳森。

@乔纳森 是的,应该这样做,但目前还没有。
Aravind

1

就我而言:Xcode 12

我设置了空值EXCLUDED_ARCHS并设置ONLY_ACTIVE_ARCHDebug = YESRelease = NO Project的Build Setting

我将其包含在我的Podfile中:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
        end
    end
end

它可以在我的模拟器iPhone 8(iOS 12)和iPhone 11 Pro Max(iOS 14)以及我的设备iPhone 7 Plus(iOS 13.4)上运行


1

Build Settings搜索中,VALID_ARCH然后按delete。这应该适用于Xcode 12.0.1

构建设置为VALID_ARCH


2
我找不到VALID_ARCH,这是什么?
侯曼

1

只添加Any iOS Simulator SDK -> x86_64Project's Build Settings -> VALID_ARCHS我的作品。

Xcode版本:12.1(12A7403)

在此处输入图片说明

如果您的项目包括一些不支持x86_64的框架。

  • 您可以将这些框架名称(xxx.framework)添加到中Target -> Build Settings -> Excluded Source File Names -> Debug -> Any iOS Simulator SDK
  • 然后修改Framework Search Paths以删除这些框架的路径Debug -> Any iOS Simulator SDK

这两个设置可以避免Xcode在模拟器模式下构建和链接这些框架。

在此处输入图片说明

在此处输入图片说明


1

我了解arm64和Xcode 12的问题,并且可以通过排除iPhone Simulator的arm64体系结构或为Release scheme设置ONLY_ACTIVE_ARCH来解决构建问题。但是,在使用pod repo push推送我的框架时,我仍然遇到问题。

我发现在我的podspec中设置s.pod_target_xcconfig不会将此设置应用于同一podspec中定义的依赖项。我可以在验证期间Cocoapods生成的虚拟App项目中看到它。Cocoapods验证正在运行模拟器的发布方案,并且当一个或多个依赖项不排除arm64或未设置为仅构建活动体系结构时,此操作将失败。

解决方案可能是强制Cocoapods在验证项目时添加安装后脚本,或者让其构建Debug方案,因为Debug方案仅在构建活动体系结构。

我最终使用Xcode 11释放了Pod以通过验证。您可以从developer.apple.com下载Xcode 11,将其作为Xcode11.app复制到Applications文件夹,然后使用进行切换sudo xcode-select --switch /Applications/Xcode11.app/Contents/Developer。完成后不要忘记切换回去。


1

在尝试并搜索了不同的解决方案之后,我认为最安全的方法是在Podfile的末尾添加以下代码

post_install do |pi|
   pi.pods_project.targets.each do |t|
       t.build_configurations.each do |bc|
          bc.build_settings['ARCHS[sdk=iphonesimulator*]'] =  `uname -m`
       end
   end
end

这样,您仅将iOS模拟器的编译器体系结构作为当前cpu的体系结构覆盖。相比其他解决方案,该解决方案也可以在装有Apple Silicon的计算机上使用。


很高兴看到有人至少了解此问题,而不是建议不要删除对iOS Simulator的Apple Silicon支持。
Camsoft

0

就我而言:

我有4种配置(+ DebugQa和ReleaseQa)Cocoapods用作依赖项管理器

对于Debug,我聚集在设备和模拟器上,并且仅在设备上的qa上聚集。

它有助于在PodsProject中将BuildActiveArchitecture设置为yes


0

就我而言,我试图以Relese模式在watchOS 7模拟器上运行,但iOS 14模拟器处于Debug模式。

因此,只需将两个模拟都置于Debug / Release模式即可为我解决问题!


0

将“构建配置”切换回“调试”模式,或者仅针对“调试”和“发布”模式打开“构建活动体系结构”。原因是您的库/框架不支持新的模拟器架构ARM64(在具有Apple Silicon处理器的Mac上运行)


0

在路径中添加“ arm64”行(不带引号):Xcode-> Project-> Build settings-> Architectures-> Excluded Architectures同样,对Pods也是如此。在这两种情况下,调试和发布字段均适用。

或详细...

使用Xcode 12部署到模拟器时,这里提到的错误也是影响我的事情之一。只需右键单击每个项目并在finder中显示,在Atom中打开.xcodeproj,然后遍历.pbxproj并删除所有VALIDARCHS设置。这就是它为我工作的原因。尝试了其他一些建议(不包括arm64,仅构建活动架构),这似乎使我的构建更进一步,但最终使我陷入另一个错误。首先检查VALIDARCH设置可能是最好的检查方法。


0

分享对我有用的解决方案,这可能会对某人有所帮助

针对模拟器进行编译时的问题:

为iOS Simulator构建,但链接到为体系结构arm64为iOS构建的目标文件

XCODE 12.1, POD 1.9.1

我的项目结构

  • 主要目标
  • 分享扩展
  • 通知服务扩展
  • 子模块,自定义框架
  • 播客文件
  1. 在所有目标中,添加arm64到构建设置-> Exclude Architecture

在此处输入图片说明

  1. arm64已从所有目标中删除VALID_ARCHS并添加x86_64到所有目标中。

在此处输入图片说明

  1. 在以下代码中添加 podfile

    post_install do |installer|
        installer.pods_project.build_configurations.each do |config|
        config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
     end
    end
    
  2. 做到了pod update,删除了podfile.lock,做了pod install

  3. 做干净的建设。


0

在网上尝试了很多无用的答案之后。这对我有用。

首先,为Pod项目生成x86_64!

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ARCHS'] = "arm64 x86_64"
        end
    end
end

其次,为VALID_ARCHS添加“ x86_64”

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.