Léo*_*ier 18 build ios xamarin
我注意到Xamarin有可能将Visual Studio连接到iOS构建主机.
什么是这个构建主机,是否有关于其架构的文档?Xamarin.iOS向此构建主机发送了什么代码?
[编辑]
作为个人项目,我希望在Windows中构建iOS构建主机.我知道这可以实现,而且我确信从技术上讲,我拥有重新创建一个所需的工具.我关心的是原始iOS构建主机的架构.我想知道Xamarin和iOS构建主机之间的通信是什么,以及构建流程是什么.这没有记录.
Gui*_*tro 22
这里有一个很好的解释.
Xamarin.iOS针对单声道框架的特殊子集编译c#源代码.单声道框架的这个简化版本包括允许访问iOS平台特定功能的附加库.Xamarin.iOS编译器smsc获取源代码并将其编译为中间语言ECMA CIL(通用中间语言),但它不会生成ECMA ABI兼容的二进制文件,这与普通的单编译器,gmcs或dmsc不同.这意味着您希望包含在应用程序中的任何第三方.Net库都需要使用smsc针对单声道框架的Xamarin.iOS子集进行重新编译.
将Xamarin.iOS应用程序编译成CIL后,需要将其再次编译为可在iOS设备上运行的本机机器代码.此过程由SDK工具"mtouch"执行,其结果是可以部署到iOS模拟器或实际iOS设备(如iPhone或iPad)的应用程序包.
由于Apple的限制,iOS内核不允许程序在运行时生成代码.此限制对使用即时编译在虚拟机内运行的软件系统具有严重影响.即时编译采用中间代码,例如单声道CIL,并在运行时将其编译为机器代码.此机器代码与执行时运行的设备兼容.
要解决此限制,mtouch工具会提前编译CIL.单声道团队描述为AOT的过程,提前编译.

来自Xamarin文档的一些引用:
Xamarin iOS for Visual Studio实现了惊人的壮举:它允许您使用Visual Studio IDE在Windows计算机上创建,构建和调试iOS应用程序.然而,它不能单独执行此操作 - 如果没有Apple的编译器,则无法创建iOS应用程序,并且如果没有Apple的证书和代码签名工具,则无法部署它们.这意味着您的Xamarin iOS for Visual Studio安装需要连接到联网的Mac OS-X计算机才能为您执行这些任务.配置完成后,Xamarin的工具将使流程尽可能无缝.
从Xamarin.iOS 4.0开始,Xamarin.iOS有两个代码生成后端.常规的Mono代码生成引擎和基于LLVM优化编译器的引擎.每个引擎都有其优缺点.
通常,在开发过程中,您可能会使用Mono代码生成引擎,因为它可以让您快速迭代.对于发布版本和AppStore部署,您需要切换到LLVM代码生成引擎.
结论
因此,正如你所说,没有办法在Windows中构建iOS构建主机.
我猜Xamarin向构建主机发送.Net程序集文件(图片中的橙色部分),使用Apple llvm编译成本机ARM代码,以及xcode-build等其他工具来签名,链接和构建应用程序.
| 归档时间: | 
 | 
| 查看次数: | 5742 次 | 
| 最近记录: |