iOS 10.1 模拟器显示“应用程序可能会减慢您的 iPhone”
Posted
技术标签:
【中文标题】iOS 10.1 模拟器显示“应用程序可能会减慢您的 iPhone”【英文标题】:iOS 10.1 Simulator shows "Application May Slow Down Your iPhone" 【发布时间】:2017-03-14 09:39:28 【问题描述】:在 ios 10.1 模拟器上首次从 Xamarin Studio 运行应用程序时,我收到以下消息:
应用名称可能会降低您的 iPhone 速度
此应用的开发者需要对其进行更新以提高其兼容性。
应用程序运行正常,第二次运行时没有出现提示。我怎样才能摆脱这条消息?
【问题讨论】:
【参考方案1】:事实证明,该应用程序仅适用于 i386 架构,而不适用于较新的 x86_64 架构。在构建设置中更改此设置后(改为“i386 & x86_64”,虽然我认为“x86_64”也会有所帮助)它不再发生。
【讨论】:
【参考方案2】:参考:https://releases.xamarin.com/stable-release-cycle-8-service-release-0-w-xcode8-1-support/
保持更高可见度的与 Xcode 8.1 相关的已知问题
[Xamarin Studio] – 45861 – “可能会降低您的 iPhone 速度……此应用程序的开发人员需要对其进行更新以提高其兼容性。”因为新项目的 iPhoneSimulator 配置中默认的“i386”支持架构设置
修复:更改项目选项 > iOS 构建 > iPhoneSimulator 配置支持的架构为 x86_64(而不是默认的 i386)。
【讨论】:
【参考方案3】:为 x86_64 编译
无论您使用的是 Xcode 还是 Xamarin,您都需要为 x86_64 架构构建应用。特别是在使用xcodebuild
从命令行构建时,设置ONLY_ACTIVE_ARCH=NO
并确保不要使用-arch i386
约束目标体系结构,因为您还需要允许编译器为x86_64 构建。
验证您的应用
要验证您的应用是为 x86_64 构建的,请解压缩您的 IPA 文件并找到二进制文件。 <filename>
和 <app>
分别是您的 IPA 和应用程序的名称:
unzip <filename>.ipa -d $TMPDIR/app
file $TMPDIR/app/Payload/<app>.app/<app>
如果您看到 Mach-O 64-bit executable x86_64
,则您的应用是为 x86_64 构建的。您可能还会看到您的应用是通用二进制文件,只要它包含 x86_64 切片也可以:
Mach-O universal binary with 2 architectures
(for architecture x86_64): Mach-O 64-bit executable x86_64
(for architecture i386): Mach-O executable i386
【讨论】:
【参考方案4】:为什么会出现此警告
Apple 在 iOS 10.1 中添加了此警告。 This article succinctly defines the warning:
“为了推动开发人员将他们的应用程序更新到 64 位框架,Apple 在 iOS 10.1 中引入了一条新的警告消息。消息内容为:“[App Name] 可能会降低你的 iPhone 速度”,并带有 slug , “这个应用程序的开发者需要更新它以提高它的兼容性。”仅当您运行 32 位应用程序时才会显示此消息。
这不会影响绝大多数 iOS 用户,因为 Apple 在 2015 年 6 月停止接受对 32 位应用程序的更新。”
更新:在Cycle 8 Service Release 2 之前,iOS 模拟器构建配置的默认构建架构不包括 64 位架构。
如何解决/防止此警告
对于在 C8SR2 之前创建的 Xamarin 应用,您可以通过手动更改 iOS 构建架构来防止出现此错误消息。
构建架构导致警告
此 iOS 构建架构不包含 64 位架构
构建架构解决/预防警告
此 iOS 构建架构确实包含 64 位架构
更新:新的 Xamarin.iOS 应用
在 Xamarin 的最新稳定版 Cycle 8 Service Release 2 中,新 Xamarin.iOS 应用的默认构建体系结构是 x86_64 for iOS Simulator 构建。 即当您创建一个新应用程序(文件 -> 新建)时,iOS 模拟器构建的默认构建架构是 x86_64。
【讨论】:
以上是关于iOS 10.1 模拟器显示“应用程序可能会减慢您的 iPhone”的主要内容,如果未能解决你的问题,请参考以下文章