iOS 10.1模拟器显示“应用程序可能会降低iPhone的速度”

时间:2016-11-01 09:00:41

标签: ios xamarin xamarin.ios ios-simulator

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

  

应用名称可能会降低iPhone的速度

     

此应用的开发者需要对其进行更新以提高其兼容性。

enter image description here

应用程序正常运行,第二次运行时不会显示该消息。我怎样才能摆脱这条消息?

4 个答案:

答案 0 :(得分:14)

事实证明,该应用程序仅针对i386架构而不是针对较新的x86_64架构而构建。在构建设置中更改此内容后(到“i386& x86_64”,虽然我认为“x86_64”也会有所帮助)但它不再发生了。

enter image description here

答案 1 :(得分:7)

参考:https://releases.xamarin.com/stable-release-cycle-8-service-release-0-w-xcode8-1-support/

与Xcode 8.1相关的剩余更高可见性已知问题

  

[Xamarin工作室] - 45861 - “可能会让你的iPhone慢下来......这个应用程序的开发者需要更新它以提高它的兼容性。”因为新项目的iPhoneSimulator配置默认支持“i386”架构设置

     

修复:更改项目选项> iOS Build>支持iPhone86模拟器配置的x86_64架构(而不是默认的i386)。

答案 2 :(得分:6)

为什么会出现此警告

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 Build Architecture来阻止此错误消息。

构建导致警告的架构

此iOS构建架构包含64位架构 enter image description here

构建解决/防止警告的架构

此iOS构建架构 包含64位架构 enter image description here

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

在Xamarin的最新稳定版本Cycle 8 Service Release 2中,新的Xamarin.iOS应用程序的默认构建架构是用于iOS模拟器构建的x86_64。 即,当您创建新应用程序(文件 - >新建)时,默认构建体系结构为x86_64,用于iOS模拟器构建。

答案 3 :(得分:3)

编译x86_64

无论您使用的是Xcode还是Xamarin,都需要为x86_64架构构建应用。特别是在使用xcodebuild从命令行构建时,请设置ONLY_ACTIVE_ARCH=NO并确保不要使用-arch i386约束目标体系结构,因为您还需要允许编译器为x86_64构建。 / p>

验证您的应用

要验证您的应用是否为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
相关问题