Xcode12:FIRAnalyticsConnector 构建错误
Xcode 12: build Error on FIRAnalyticsConnector
升级到 Xcode 12 后,我的项目不再为模拟器构建。
我得到的错误是:
ld: in ... /Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(
FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o),
building for iOS Simulator, but linking in object file built for iOS, file
'.../Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector'
for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决方法是将 arm64
添加到我的项目 > 构建设置 > 排除的架构,但它不会为我的真实设备构建。
我已经尝试清理构建文件夹、更新 pod 文件、重新启动等
我正在使用:
- Firebase/Analytics (6.33.0)
- Xcode12.0.1 (12A7300)
- CocoaPods:1.9.3
有什么想法吗?
好的,我终于找到了解决问题的方法。
对于“发布”也将“仅构建活动架构”更改为“是”。
可以通过选择您的项目>“构建设置”>“目标”(您的目标)>“架构”找到设置
来源和更详细的解释可以在这里找到:
请注意,该问题与 Firebase 无关。我仍然会保留它,因为它可能会导致其他人遇到这个问题并帮助他们解决这个问题。
苹果M1
如果您 运行 使用 M1 芯片,请考虑下面@Aspen 的回答:
在为主项目和 Pods 项目将 arm64
添加到 Excluded Architectures
之后,我能够在 Apple M1 运行 中解决这个问题.
我还必须清除 DerivedData
文件夹并重新启动 Xcode。
我在 Rosetta (Apple M1) 下 运行 xcode12 解决了这个问题。
打开 Finder -> 应用程序 -> 找到 Xcode -> 右键单击 -> 获取信息 -> 检查使用 rosetta 打开。
然后重新打开 xcode。
我的情况有点不同。根据this Firebase engineer,
FIRAnalyticsConnector
is now part of the xcframework version of
FirebaseAnalytics and isn't needed to link.
进入目标 Build Settings
(不是项目),搜索 Other Linker Flags
,然后从列表中删除 FIRAnalyticsConnector
为我解决了这个问题。
有趣的是,当我 运行 pod deintegrate
和 pod install
它没有解决这个问题。
Xcode v12.4
在 运行 pod install
之后遇到了同样的问题。
在我的项目中进行一些搜索后,我终于在 Link Binary With Libraries
部分的目标 Build Phases
下找到了对它的引用。从列表中删除 FIRAnalyticsConnector.framework
解决了我的问题。
从目标列表中删除 -fraemwork“FIRAnalyticsConnector”->“构建设置”->OTHER_LDFLAGS
在我这边,按照 link https://github.com/firebase/firebase-ios-sdk/blob/CocoaPods-7.2.0/AppleSilicon.md 的说明解决了它。
如果你 运行 使用配备新 Macbook Pro M1 处理器的 Apple Silicone。这是一个已知问题。
升级到 Xcode 12 后,我的项目不再为模拟器构建。
我得到的错误是:
ld: in ... /Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(
FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o),
building for iOS Simulator, but linking in object file built for iOS, file
'.../Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector'
for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决方法是将 arm64
添加到我的项目 > 构建设置 > 排除的架构,但它不会为我的真实设备构建。
我已经尝试清理构建文件夹、更新 pod 文件、重新启动等
我正在使用:
- Firebase/Analytics (6.33.0)
- Xcode12.0.1 (12A7300)
- CocoaPods:1.9.3
有什么想法吗?
好的,我终于找到了解决问题的方法。
对于“发布”也将“仅构建活动架构”更改为“是”。
可以通过选择您的项目>“构建设置”>“目标”(您的目标)>“架构”找到设置
来源和更详细的解释可以在这里找到:
请注意,该问题与 Firebase 无关。我仍然会保留它,因为它可能会导致其他人遇到这个问题并帮助他们解决这个问题。
苹果M1
如果您 运行 使用 M1 芯片,请考虑下面@Aspen 的回答:
在为主项目和 Pods 项目将 arm64
添加到 Excluded Architectures
之后,我能够在 Apple M1 运行 中解决这个问题.
我还必须清除 DerivedData
文件夹并重新启动 Xcode。
我在 Rosetta (Apple M1) 下 运行 xcode12 解决了这个问题。
打开 Finder -> 应用程序 -> 找到 Xcode -> 右键单击 -> 获取信息 -> 检查使用 rosetta 打开。
然后重新打开 xcode。
我的情况有点不同。根据this Firebase engineer,
FIRAnalyticsConnector
is now part of the xcframework version of FirebaseAnalytics and isn't needed to link.
进入目标 Build Settings
(不是项目),搜索 Other Linker Flags
,然后从列表中删除 FIRAnalyticsConnector
为我解决了这个问题。
有趣的是,当我 运行 pod deintegrate
和 pod install
它没有解决这个问题。
Xcode v12.4
在 运行 pod install
之后遇到了同样的问题。
在我的项目中进行一些搜索后,我终于在 Link Binary With Libraries
部分的目标 Build Phases
下找到了对它的引用。从列表中删除 FIRAnalyticsConnector.framework
解决了我的问题。
从目标列表中删除 -fraemwork“FIRAnalyticsConnector”->“构建设置”->OTHER_LDFLAGS
在我这边,按照 link https://github.com/firebase/firebase-ios-sdk/blob/CocoaPods-7.2.0/AppleSilicon.md 的说明解决了它。
如果你 运行 使用配备新 Macbook Pro M1 处理器的 Apple Silicone。这是一个已知问题。