编译错误的原因是构建项目的平台(iPhone Simulator vs Device)和支持的架构。
将构建选项更改为针对真实设备可以克服编译错误。
如果您滚动浏览构建输出,您将看到类似这样的内容
ld : warning : ignoring file /Path/To/Your/Project/MyApp.iOS/obj/iPhoneSimulator/Debug/device-builds/iphone10.4-12.1/mtouch-cache/AWSDK.a, missing required architecture x86_64 in file /Path/To/Your/Project/MyApp.iOS/obj/iPhoneSimulator/Debug/device-builds/iphone10.4-12.1/mtouch-cache/AWSDK.a (2 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_AWWebsiteFilteringPayload", referenced from:
-u command line option
这个Stackoverflow 答案有助于发现 .a 文件中的目标架构
在终端窗口中输入
lipo -info /Path/To/AWSDK.a
返回
Architectures in the fat file: AWSDK.a are: armv7 arm64
现在右键单击 iOS 项目并打开选项窗口。导航到“iOS 构建”部分。平台下拉菜单显示“iPhone 模拟器”。检查支持的架构下拉菜单。您将看到 AWSDK.a 文件中不支持的 i386、x86_64、i386+x86_64。
将平台更改为 iPhone,您将看到 Armxx 选项。