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”的主要内容,如果未能解决你的问题,请参考以下文章

IONIC 4:“ionic cordova build ios”不显示使用 Xcode 10.1 构建失败或成功

微信公众号ios10.1 版本白屏问题

iOS 模拟器在麦克风权限请求时崩溃

模拟器中没有 Touch ID / Face ID 提示

Visual Studio Android 模拟器显示键盘

10.1 模拟赛