我正在使用非官方的Open SDK为iDevice市场编写一些应用程序,但是在Windows上安装开放式工具链有困难,而不是Linux(我会使用Linux,但我不能在我的工作计算机上),所以我是在GNU Assembler(GAS)中编程。
GAS是否可以将iDevice作为输出文件的格式?如果没有,是否有可以组装到iPod touch的基于Windows或Linux的汇编程序(最好是开源)?
答案 0 :(得分:2)
请注意,gcc或gas不是制作iOS应用包的最后一步。在官方Xcode构建序列中,有以下链接,UniversalBinary合并,打包和协同签名。因此,您可能需要至少在所选开发平台上运行的一些步骤的工具。
答案 1 :(得分:1)
即使技术上可行,我也不愿意开始这样的企业。您可能面临大量问题,不仅涉及协同设计,还涉及应用商店批准。 Apple非常热衷于仅使用其官方工具的人,并禁止使用交叉编译器等。如果他们发现你的应用程序是按照你提议的方式创建的最轻微暗示,他们可能会拒绝它。
即使他们可能不会 - 这是我不会冒的风险。想象一下,开发工作流程,完成所有工作,解决所有的代码签名和其他问题,然后苹果拒绝你的应用程序。
习惯使用Mac并不是那么难。至少在抓住机会之前尝试一下。
答案 2 :(得分:1)
从技术上讲,是的,您可以使用GNU工具链制作交叉汇编程序甚至是交叉编译器来定位iPhone。神奇的是将正确的arch-string传递给binutils的“configure”。它应该是--target=arm-apple-darwin
加上一个我不记得告诉binutils默认使用哪个ARM命令集的参数。所以制作一个交叉汇编程序是可能的,甚至很难做到。
但这只是一小步。您还需要一个可以处理Mach-O文件的链接器,我不知道如何设置它。我知道有一个完整的工具链可以在Linux上使用原始的Apple SDK进行交叉编译,但是使用自定义的交叉gcc。但是,Apple明确禁止使用交叉编译器,主要是禁止Flash-to-iPhone交叉编译器。此外,您需要对应用程序进行代码签名,我不知道是否有能够执行此操作的OSS工具。
正如其他人已经说过的那样,获得一台Mac Mini,也许是来自eBay的二手Mac Mini。没有Mac你就不会走得太远,即使你仍然想要,你首先需要了解有关iPhone编译的深入知识,而你只能在Mac上获得这些知识。
此外,如果没有良好的调试器,仪器和界面生成器,您也不希望生活,以便于调试,内存泄漏查找和GUI构建。如果没有Interface Builder,您需要完全手动编写GUI代码,这将花费您批次更多时间,而且时间就是金钱。很多书籍和howtos在很大程度上对你毫无用处。总而言之,如果您尝试使用交叉编译来破解应用程序,那么您的公司将花费更多的钱,而不是花费它们来为您提供漂亮的iMac加上开发时间。