我正在将CocoaAsyncSocket
库用于我正在编写的应用程序。当我在自己的设备上编译并运行它时,没有问题,Xcode 能够找到CocoaAsyncSocket
.
但是,当我尝试存档时,它无法编译,并且收到CocoaAsyncSocket
无法找到该模块的错误消息。
我注意到它与不同的架构有关。当我为自己的设备构建时,它只为“arm64”构建,当我为arm64
,armv7
和armv7s
. 如果我将存档的构建设置更改为仅构建arm64
我能够存档。但我当然希望能够为所有架构构建它。下图显示了其唯一构建时的设置arm64
(在我的情况下);
Build Active Architecture Only: Yes
有没有其他人遇到过这个库或其他 Cocoapod 库的类似问题?
许多开发人员已经接受了即将到来的 64 位未来,但并非所有第三方库都支持这种架构,包括那些可通过CocoaPods
.
尽管 3rd-party pods 缺乏通用的 64 位支持,CocoaPods 仍然ARCHS_STANDARD_INCLUDING_64_BIT
在其生成的目标的构建设置中包含 arm64 架构(via )。如果您的应用程序的依赖项不支持 arm64,或者您出于其他原因只想为 armv7 和 armv7s 构建,这可能会导致问题。
您可以解决此问题,只需将以下内容添加到您的底部Podfile
即可将ARCHS
构建设置恢复为ARCHS_STANDARD
:
# Remove 64-bit build architecture from Pods targets
post_install do |installer|
installer.project.targets.each do |target|
target.build_configurations.each do |configuration|
target.build_settings(configuration.name)['ARCHS'] = '$(ARCHS_STANDARD_32_BIT)'
end
end
end
笔记 :
CocoaPods 故障排除指南建议匹配 Xcode 项目中的 Debug 设置,而不是更改 Pod 的 Build Active Architecture Only。只要它们匹配,它似乎就可以解决问题。
或者
您可以尝试cocoapods
使用以下命令在终端中更新:
gem update cocoapods
如果之后它不起作用,请进入您的工作区,单击 Pod 项目,选择所有 Pod 目标并将 Architectures 设置为 ( armv7 armv7s arm64
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句