我正在使用CocoaAsyncSocket
库来处理我正在编写的应用程序。
当我在自己的设备上编译并运行它时没有问题,Xcode能够找到CocoaAsyncSocket
。
但是,当我尝试归档时,它不会编译,我收到错误消息,即无法找到模块CocoaAsyncSocket
。
我注意到它与不同的架构有关。当我为自己的设备构建时,它是#34; arm64"当我为arm64
,armv7
和armv7s
归档其建筑物时。如果我将归档的构建设置更改为仅arm64
的构建,我可以归档。但是我当然希望能够为所有架构构建它。
下面的图片显示了arm64
的唯一建筑物(在我的情况下)的设置;
Build Active Architecture Only: Yes
是否有其他人遇到过与此库或其他Cocoapod库类似的问题?
答案 0 :(得分:1)
许多开发人员已经接受即将到来的64位未来,但并非所有第三方库都支持此架构,包括可通过CocoaPods
安装的那些。
尽管第三方pod中缺乏通用的64位支持,但CocoaPods仍然在其生成的目标的构建设置中包含arm64架构(通过ARCHS_STANDARD_INCLUDING_64_BIT
)。如果你的应用程序的依赖项不支持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 Troubleshooting Guide建议在Xcode项目中匹配Debug设置,而不是仅更改Pod的Build Active Architecture。只要它们匹配,它似乎可以解决问题。
或
您可以尝试使用以下命令更新终端中的cocoapods
:
gem update cocoapods
如果之后没有工作,请进入工作区,单击Pod项目,选择所有Pod目标并将架构设置为(armv7 armv7s arm64
)。
答案 1 :(得分:0)
请确保Podfile中的版本很好
# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'