iOS 10.1 模拟器显示“应用可能会减慢您的iPhone”

5

当我在iOS 10.1模拟器上首次从Xamarin Studio运行一个应用程序时,我收到了以下消息:

应用程序名称 可能会减慢您的iPhone

该应用程序的开发者需要更新以提高其兼容性。

enter image description here

应用程序正常运行,并且第二次运行时不会显示此消息。如何摆脱这个消息?

4个回答

14

结果发现该应用程序仅为 i386 架构而非较新的 x86_64 架构构建。在构建设置中更改此选项(选择“i386 和 x86_64”,不过我认为仅选择“x86_64”也可以)后,问题就不再出现。

输入图像描述


7

参考: 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 Build > 支持的架构更改为x86_64(而不是默认的i386)以适用于iPhoneSimulator配置。


6

该警告为何出现

苹果在iOS 10.1中添加了此警告,本文简洁地定义了该警告:

“苹果为了推动开发者将其应用更新为64位框架,已经在iOS 10.1中引入了一条新的警告消息。这个消息的内容是:‘[应用名称]可能会拖慢您的iPhone’,而应用程序的开发人员需要更新才能改善其兼容性。”如果您正在运行32位应用程序,则会出现此消息。

这不会影响绝大多数iOS用户,因为苹果于2015年6月停止接受32位应用程序的更新。”

更新:C8SR2之前,iOS模拟器构建配置的默认构建体系结构不包括64位体系结构。

如何解决/预防此警告

对于在C8SR2之前创建的Xamarin应用程序,您可以通过手动更改iOS构建体系结构来防止此错误消息。

引起警告的构建体系结构

此iOS构建体系结构不包括64位体系结构enter image description here

解决/预防警告的构建体系结构

此iOS构建体系结构包括64位体系结构enter image description here

更新:新的Xamarin.iOS应用程序

在最新的Xamarin稳定版本,C8SR2中,新的Xamarin.iOS应用程序的默认构建体系结构为x86_64,适用于iOS模拟器构建。 即,当您创建一个新的应用程序(文件 -> 新建),默认的构建体系结构是x86_64,适用于iOS模拟器构建。


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位可执行文件 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接