1

AirWatch SDK 允许您在 iOS 应用程序中包含 MDM 功能。我按照这里的 VMWare 网站的说明进行操作。

不幸的是,在我的iOS项目中添加NuGet包后,项目编译失败,抛出300多个类型的编译错误

MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: AWWebsiteFilteringPayload. 

在与您的应用程序链接的任何库或框架中都找不到符号“_OBJC_CLASS_$_AWWebsiteFilteringPayload”。

4

1 回答 1

3

编译错误的原因是构建项目的平台(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 选项。

于 2019-01-08T16:46:03.657 回答