在 Linux 上开始 iPhone 应用程序开发?[关闭]

2024-10-09 09:10:00
admin
原创
84
摘要:问题描述:我听说如果你想开发 iPhone 应用程序,你需要一台 Mac。这是真的吗?是否可以使用 Linux 开发 iPhone 应用程序?如果可以,我需要什么?在哪里可以下载必要的工具?解决方案 1:为了提供不同的响应,我在 Linux 上的虚拟化 (VMware) 机器上运行 OS X 和 Xcode。...

问题描述:

我听说如果你想开发 iPhone 应用程序,你需要一台 Mac。这是真的吗?

是否可以使用 Linux 开发 iPhone 应用程序?如果可以,我需要什么?在哪里可以下载必要的工具?


解决方案 1:

为了提供不同的响应,我在 Linux 上的虚拟化 (VMware) 机器上运行 OS X 和 Xcode。CPU 是 Core2Quad (Q8800),速度非常快。我在网上找到了一个预建的 VM(我留给你去找)Xcode/iPhone 开发运行完美,通过 USB 调试手机本身也是如此。

这确实让我非常惊讶 - 但我并没有遇到任何问题。

解决方案 2:

这个问题的答案实际上取决于您是否想开发通过 iPhone 商店分发的应用程序。如果您不想,并且不介意为“越狱”的 iPhone 用户开发应用程序 - 那么可以从 Linux 进行开发。

查看此章的页面,获得全面(虽然有点复杂)的指南,了解如何操作:

http://www.saurik.com/id/4

解决方案 3:

到目前为止,这似乎是真的。Apple 提供的唯一 SDK 仅针对 macOS 环境。我对此感到不满,但现在我正在考虑购买一台 Mac,只用于进行 iPhone 开发。我真的不喜欢他们正在做的事情,我希望能够为其他环境(例如 Linux 和 Windows)推出一个好的 SDK。

与 SDK 相关的障碍:

iPhone SDK 和免费软件:不相上下

Apple 最近发布了 iPhone 软件开发工具包 (SDK),但如果你想用它来移植或开发原创开源软件,那么这可不是什么好消息。代码签名和保密条件使得免费软件无法使用。

SDK 本身是免费下载的,你可以用它编写程序并在软件模拟器上运行它们。但为了真正发布你编写的软件,你必须注册 iPhone 开发者计划——这是与下载 SDK 分开的步骤,并且需要 Apple 的批准。

我认为他们认为只有 macOS 用户才有资格为他们的手机编写程序,这种想法太过精英主义,而如果你想发布你的东西,就需要购买 100 美元的许可证,这确实让业余程序员的工作变得更加困难。不过,如果你需要这样做,我打算跳过他们的障碍;我真的很想在我的 iPhone 上开发一些东西。

解决方案 4:

曾经一个项目专门解决这个缺陷:iphone-dev

iphone-dev 项目的目标是创建一个免费、可移植、高质量的工具链,以便基于 ARM/Darwin 平台开发 Apple iPhone 和其他嵌入式设备。

解决方案 5:

关于替代工具链,Saurik 的网站很有用,但对于最新固件开发,他指出要在 iPhone 本身上进行构建,并明确表示您可能需要将必要的 iPhone 固件文件复制到 Linux 环境中。这并非不可能,只是需要额外的工作,尤其是对代码进行签名(也有开放的替代解决方案)。

另外,请查看其他指南(针对相同的工具链),以更有条理的方式进行处理。

我建议仍然在 XCode 中进行最终构建和代码签名以及打包(这可能意味着借用某人的 Mac),以防您在向 Apple 提交应用程序时遇到问题。使用替代工具链(至少在 Mac 上)可以打开使用除 XCode 之外的其他 IDE 开发应用程序的可能性,并再次使用 XCode 进行部署和使用模拟器进行测试。

当然,如果您确实从 XCode 之外的命令行获得代码签名/证书生成,那么您可以在实际的 iPhone 上安装证书并在那里进行测试(通过 iTunes 使用您的证书安装应用程序)。

解决方案 6:

据我所知,在 Linux 上开发 iPhone 的唯一方法是安装 Vmware,然后在虚拟机中运行 OS X。话虽如此,这样做还是存在一些“法律”问题。据报道,OS X Server 可以虚拟化,但就其开发情况而言,我并不清楚。

如果你真的是认真的,那就是我要调查的。

祝你好运。

解决方案 7:

您可以使用Tersus(开源),它允许您将应用程序导出为 Xcode 项目。

解决方案 8:

您可能能够在 Linux 机器上编写代码,这些代码最终会出现在 iPhone 或 iPad 上,但最终您需要一台 Mac 来测试或将代码部署到 iPhone 或提交到 App Store。因此最终您需要一台 Mac,因此您也可以在 Mac 上完成工作,使用 Apple 提供的所有工具。Xcode 和 Objective-C 还有其他替代品,例如 Monotouch - 但它们也使用 Apple 工具。

您可以在 Linux 上的 VM 中运行 OS X,但需要做一些工作。不过我要指出的是,这会破坏 OSX 许可协议,即使您购买了 OSX 副本也是如此 - 因为它仅被授权在 Apple 硬件上运行。

很遗憾地告诉你这个消息——iPhone/iPad 周围的生态系统受到非常严格的控制。

编辑:一个主要的例外是为 iPhone 编写 Web 应用程序。有一些出色的 iPhone Web 应用程序,它们的用户体验几乎与原生应用程序一样好。但是我确实将您的问题解释为有关原生应用程序开发。尽管用户可以创建图标来启动 Web 应用程序,但它们仍然是“二等”公民。

解决方案 9:

我已成功使用cjacker 的 iOS clang 工具链在 Linux 上构建 iOS 应用程序。基本上,它由 Linux 发行版中的上游 clang 和 llvm 工具、Apple 链接器的 Linux 端口以及一些额外的工具组成,以帮助简化构建过程(例如将 xcode 项目转换为 Makefile 格式)。

安装确实需要几个步骤,但如果你是一名软件开发人员,那么你应该已经习惯了。我在网上发布了最新的 Debian 7 (Wheezy) 操作指南:

https://rogerkeays.com/how-to-build-an-ios-toolchain-for-linux-debian-7

否则,您需要遵循稍旧的通用说明:

http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

祝你好运。

解决方案 10:

有一个名为Rhodes 的框架。

这个概念基于 Ruby on Rails,您可以使用 Ruby 和 HTML 开发移动应用程序,并且可以在 Linux 环境中编写代码。然后,您可以在Rhohub创建一个帐户,在其中添加代码(通过GitHub),它允许您为 iPhone、Blackberry、Android、Windows Mobile 和 Symbian 编译它,所有这些都基于相同的代码。您不必为 iPhone 编写 Objective-C 代码,也不必为 Android 编写 Java 代码等。它会为您完成转换。您需要做的就是遵守创建 iPhone 应用程序(或您想要开发的手机)的规则,这样它就可以在 iTunes(或同等市场)上被接受。

这也将允许您将该应用程序添加到 iTunes。

但是,我还没有找到任何模拟器,这意味着要测试你的应用程序,你需要将它放在 iPhone 上,这是一项任务。

我选择此选项是因为我想为所有手机创建应用程序,而且我已经使用 Ruby on Rails。如果您只想为 iPhone 制作应用程序,那么请投资购买 Mac。

希望这有帮助。

解决方案 11:

您说得对,未越狱的手机仅限于 Apple 的应用商店,Apple“有权”执行任何规则,这是完全不自由的领域。然而,在开发过程中,您根本不需要与 Apple 打交道。您可以使用 rsync 等将代码上传到设备并进行测试。

解决方案 12:

在一定程度上,是的,这是可能的。您可以输入 Objective-C 代码并设置您的项目。您甚至可以使用 gcc 测试代码的 C 和 C++ 部分。

您不能做的事情:

  • 使用 Interface Builder 设置界面,因为它仅适用于 Mac。(不是必需的,但建议使用。)

  • 编译使用 Apple 的 Cocoa 类的代码 - 它们在 Linux 上不存在。

  • 模拟器中的测试代码-没有适用于Linux的代码。

  • 为真实设备或 App Store 编译代码 - 所有这些都需要 Apple 仅为 OS X 提供的工具。

解决方案 13:

您需要获得 Mac 才能使用它。有几种可用的工具链(如 win-chain),实际上可以让您在 Windows 上编写和构建 iPhone 应用程序。有几种相关教程可用于在 Windows 上构建 Objective C 代码。但有一个问题,这样开发的应用程序只能在 Jail 损坏的 iPhone 上运行。

我们看到了一些可以解决这个问题并进入 App Store 的技巧,但随着 Apple 不断更新 SDK,工具链需要定期更新。一直更新很麻烦。如果你想准备好应用程序,你也可以从 arcapps 寻求帮助,它以合理的价格推出应用程序。iPhone
应用程序开发

解决方案 14:

我尝试将 cocos2d-iphone 移植到 GNUstep,以便您可以基于 cocos2d开发游戏。但是要发布,您需要一台 mac。cocos2d -GNUstep。

解决方案 15:

我建议买一台 Mac,因为 iOS 模拟器非常适合在应用程序的早期阶段进行测试。但我知道我们合作的一家小公司使用 Unity 进行开发,所以他们不需要很多 Mac。这样他们只需要一台 Mac 用于办公室,而这只是为了编译最终版本。这也意味着它可以在 Android 上运行,但这实际上取决于你的构建,因为它是一个游戏引擎。你可能想研究使用 Sencha Touch Mobile 等框架的 Web 应用程序

Unity:http: //unity3d.com/
Sencha Touch: http: //www.sencha.com/products/touch/

解决方案 16:

如果你珍惜时间,那就买一台 Mac 吧!我对 Linux 开发选项了解不够多,无法提供可行的解决方案,但似乎建议的方法涉及一些相当迂回的工作。如果你打算认真编写和销售 iPhone 应用程序,我认为你可以轻松收回 Mac Mini 或 Macbook 的成本。:-)

解决方案 17:

如果您的应用程序不是使用 Xcode 开发的,那么您的应用程序将永远不会获得 Apple 的批准。永远不会。如果您确实破解了 SDK 以在 Linux 上进行开发,并且 Apple 发现了,那么您受到惩罚时不要感到惊讶。我是 ADC 和 iPhone 开发者计划的成员。相信我,Apple 对此非常认真。

不要冒险,买一台 Macbook 或 Mac mini(是的,mini 可以运行 Xcode - 虽然速度很慢 - 如果你选择 mini,可以增加 RAM)。另外,虽然我见过 OS X 被破解以在 VMware 上运行,但我从未见过有人在 VM 上运行 Xcode。祝你好运。在你遇到麻烦之前,我会检查 EULA。

PS:读完以上内容后,我同意如果你确实破解了 SDK 并在 Linux 上开发,至少要在 Mac 上进行最终打包。并通过 Mac 提交。Apple 不会逐行运行代码,所以我怀疑他们能否发现这一点。但是,伙计,这有很多如果和工作。不过做起来很有趣。:)

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用