Xamarin.iOS 分析规则

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 优化编译器选项。