最近我得到了一个基于Mac的Xamarin上的项目。现在,当我尝试在Visual Studio for MAC上打开这个项目时(你们都知道Xamarin现在是MAC的视觉工作室)它显示了一些关于Monotouch的错误。
问题是:我真的需要将应用转换为统一API吗?我知道官方Xamarin doc上有教程可以将应用程序更改为统一API,但是如果有其他方法可以打开应用程序而无需迁移到统一API。移植的优点和缺点是什么?
答案 0 :(得分:1)
您可能会考虑更新的原因有很多,但我会重点介绍一些更重要的原因。首先要考虑到Apple作为硬件和软件的制造商一直都在努力使他们的设备保持最新状态,因为iOS应用程序开发人员可以绝对影响您对应用程序的需求。
首先它已经成为推动或跳跃的情况,因为Xamarin停止更新或支持他们的经典api' (截至撰写时,我们在iOS 10.3上)。
明年秋季将完全取消经典支持 随着Xamarin.iOS 10.0的发布。
其次,统一API需要满足苹果对支持64位架构的需求:
新的Unified API需要支持64位设备 来自Xamarin.iOS移动应用程序的架构。截至2月 2015年1月,Apple要求向iTunes提交所有新的应用程序 App Store支持64位架构。
至于你对缺点的关注,我只想说迁移要么顺利,要么不顺利。值得注意的是,统一的api'使用不同的本机数据类型,这可能需要一些解决方法,具体取决于原始代码的当前结构。
最重要的一点是我之前提到的,在Apples App Store中,如果你在保持应用程序与最新的SDK,API或Apple决定升级的任何其他东西方面徘徊,那么它就类似于给予该应用程序。
我在下面列出了一些可能有助于您完成迁移过程的链接:
Native Types - 描述您需要在Unified API应用中使用的新原生数据类型。
32/64 bit Platform Considerations - 为您的应用选择32位和64位模式时的注意事项。
Updating Existing iOS Apps - 按照以下步骤更新现有的Xamarin.iOS应用以使用Unified API。
Binding Objective-C Libraries - 本文档描述了用于创建Objective-C API的C#绑定的过程,以及Objective-C中的习语如何映射到.NET中使用的习语。如果您只绑定C API,你应该使用标准的.NET机制,即P / Invoke框架。
Binding Definition Reference Guide - 这是参考指南,描述了绑定作者可用于驱动绑定生成过程的所有属性。
Updating UI Components - 这是将UI组件更新到统一API中的最新版本的过程的指南。