Xamarin.iOS 分析是一组规则,用于检查项目设置,以帮助确定是否有更好的/更优化的设置可用。
尽可能频繁地运行分析规则,以尽早找到可能的改进并节省开发时间。
若要运行规则,请在 Visual Studio for Mac 的菜单中,选择“项目”>“运行代码分析”。
注意
Xamarin.iOS 分析仅在当前选定的配置上运行。 强烈建议运行该工具以调试 和 版本配置。
XIA0001: DisabledLinkerRule
- 问题:在设备上为调试模式禁用链接器。
- 修复:应尝试使用链接器运行代码以避免任何意外。 若要设置它,请转到“项目”>“iOS 版本”>“链接器行为”。
XIA0002: TestCloudAgentReleaseRule
- 问题:在提交测试云代理时,当 Apple 使用专用 API 时,初始化测试云代理的应用版本将被拒绝。
- 修复:添加或修复必要的内容 #if 并在代码中定义。
XIA0003:IPADebugBuildsRule
- 问题:使用开发人员签名的调试配置不会生成 IPA,因为它只需要分发,现在使用的是发布向导。
- 修复:在调试配置的“项目选项”中禁用 IPA 生成。
XIA0004:Missing64BitSupportRule
- 问题:“版本 | 设备”的受支持体系结构不兼容 64 位,缺少 ARM64。 这是一个问题,因为 Apple 不接受仅 32 位的 iOS 应用在 AppStore 上架。
- 修复:双击 iOS 项目,转到“生成”>“iOS 生成”并更改支持的体系结构,使其具有 ARM64。
XIA0005: Float32Rule
- 问题:不使用 float32 选项(--aot-options=-O=float32)会导致很高的性能成本,尤其是在移动方面,双精度数学速度显著变慢。 请注意,.NET 在内部使用双精度(即使是对于浮点),启用此选项会影响精度,并且可能影响兼容性。
- 修复:双击 iOS 项目,转到“生成”>“iOS 生成”并取消勾选“以 64 位浮点数的形式执行所有 32 位浮点运算”。
XIA0006: HttpClientAvoidManaged
- 问题:建议使用本机 HttpClient 处理程序而不是托管处理程序,以提高性能、实现更小的可执行文件大小,并轻松支持较新的标准。
- 修复:双击 iOS 项目,转到“生成”>“iOS 生成”并将 HttpClient 实现更改为 NSUrlSession(iOS 7+)或 CFNetwork 以支持 iOS 7 之前的版本。
XIA0007: UseLLVMRule
- 问题:对于版本|iPhone 配置,我们建议启用 LLVM 编译器,以生成以牺牲生成时间来更快地执行的代码。
- 修复:双击 iOS 项目,转到“生成”>“iOS 生成”,对于“版本|iPhone”,勾选 LLVM 优化编译器选项。