在iOS 10.1模拟器上首次从Xamarin Studio运行应用程序时,我收到以下消息:
应用名称可能会降低iPhone的速度
此应用的开发者需要对其进行更新以提高其兼容性。
应用程序正常运行,第二次运行时不会显示该消息。我怎样才能摆脱这条消息?
答案 0 :(得分:14)
事实证明,该应用程序仅针对i386架构而不是针对较新的x86_64架构而构建。在构建设置中更改此内容后(到“i386& x86_64”,虽然我认为“x86_64”也会有所帮助)但它不再发生了。
答案 1 :(得分:7)
参考:https://releases.xamarin.com/stable-release-cycle-8-service-release-0-w-xcode8-1-support/
[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来阻止此错误消息。
在Xamarin的最新稳定版本Cycle 8 Service Release 2中,新的Xamarin.iOS应用程序的默认构建架构是用于iOS模拟器构建的x86_64。 即,当您创建新应用程序(文件 - >新建)时,默认构建体系结构为x86_64,用于iOS模拟器构建。
答案 3 :(得分:3)
无论您使用的是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