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