英文原文:Xamarin Encourages Developers to Begin Supporting 64-Bit Architecture on iOS
Xamarin 正鼓励开发人员为其 iOS 应用添加 64 位支持。该要求距离苹果的二月份最后期限只差两个月。苹果要求,该期限之后新提交的、用 iOS 8 SDK 开发的应用支持 64 位架构。
Xamarin 的移动开发平台使得用 C# 开发原生跨平台移动应用成为可能。该公司已经使用开源的 Mono 工具链创建了兼容 iOS 和 Android 的运行时。在 iOS 上,一个 AOT(Ahead-of-Time)编译器会将 C# 应用编译成本地 ARM 汇编代码。在 Android 上,C#会被编译成一种中间语言,然后再在设备上进行 Just-in-Time(JIT)编译。因此,开发人员编写一次应用,就可以在 iOS、Android 和 Windows Phone 上运行。
作为开启 64 位 iOS 应用支持的第一步,Xamarin 在 8 月份宣布了一个新的 Unified API for iOS and Mac。Unified API 和旧 API 的主要区别是使用了特定于架构的数据类型,这些类型在 32 位平台上总是 32 位,在 64 位平台上总是 64 位。例如,Xamarin 已经替换掉了 int 数据类型,代之以新类型 System.nint,其中前缀“n”代表 native,如 native int。nint 类型匹配苹果 NSInteger 数据类型的行为,它在 32 位平台上是 32 位,在 64 位平台上是 64 位。类似地,对于无符号整数和浮点数,兼容 64 位的数据类型也已经引入,分别是 System.nuint 和 System.nfloat。
Xamarin 的 Unified API for iOS and Mac 尚处于 Beta 测试阶段,并通过公司的 Alpha 通道提供。在上周的公告中,Xamarin 指出,第一个非 Beta 版本将在 2015 年 1 月 5 日发布。他们鼓励为 Xamarin 平台开发库和插件的开发人员马上开始向新 API 迁移。同时他们建议,移动应用开发人员等待 1 月份的第一个非 Beta 版本。届时,该版本会提供他们所依赖的库和插件的 64 位兼容版本。
苹果在 10 月份宣布,自 2015 年 2 月 1 日起,开发人员向苹果商店新提交的应用需要同时支持 32 位和 64 位架构。接下来,苹果在 12 月 17 日又发布了一份公告。这份公告指出,自 2015 年 6 月 1 日起,所有对现有应用的更新都必须兼容 64 位架构。