不使用 Mac 开发 iPhone 应用程序?

18

可能的重复问题:
如何在Windows开发机上开发iPhone应用程序?

我想为我妻子的手机构建一个iPhone应用程序,但不想购买Mac作为一次性工作的开发平台。该应用程序:

  • 应在iPhone上独立运行(即无需网络连接)
  • 可以使用周围的iPhone Javascript库创建GUI
  • 将执行一些数据库IO以读取和更新数据
  • 没有商业价值,永远不会被其他人使用

这是我的想法:

  • 越狱iPhone
  • 在iPhone上安装Ruby + Sinatra
  • 使用Sinatra编写应用程序,访问在iPhone上的数据库(SQLite?)

要在iPhone上访问应用程序:

  • 在后台启动Sinatra应用程序(是否可能?)
  • 启动Safari浏览器会话
  • 导航到Sinatra应用程序,例如http://localhost:12345
  • 等等。

这似乎是一种奇怪的方法,但我想不出更简单的方法来编写独立的iPhone应用程序而不购买Mac。有更好的方法吗?


2
如果想要尽可能地以最低的价格完成任务,可以购买一台不到400美元的二手Mac Mini或MacBook。 - zpasternack
3
这个问题之前已经被问过很多次:http://stackoverflow.com/questions/370385/how-to-develop-iphone-applications-on-a-windows-pc,https://dev59.com/9XVD5IYBdhLWcg3wTZxm,https://dev59.com/YHRB5IYBdhLWcg3wuZbo,http://stackoverflow.com/questions/968961/iphone-dev-box,http://stackoverflow.com/questions/377672/ipod-touch-iphone-development-on-windows。 - Adam Rosenfield
3
当发帖人没有明确指出“WINDOWS”时,它是否真的是一个重复的问题?这些“重复问题”都是关于Windows的问题。 - Jeff Atwood
2
谢谢Jeff,我看过许多“如何黑掉iPhone?”的问题,我不认为我的问题是重复的。我提出了一种方法,并问它是否可行,这似乎与我读到的其他请求有明显的区别。值得一提的是,我选择使用离线Web应用程序解决方案(iPhone上的本地数据库),这不需要我购买Mac,并且似乎相当简单。最后,我现在在iPhone上运行Python和Java,并且可以验证在没有Mac的情况下在iPhone上构建应用程序是绝对可行的。 - Dave
1
我认为这篇帖子不应该被视为重复。它要求的答案比其他帖子更具体。 - Diskdrive
10个回答

7

我能找到的唯一可靠信息在一直优秀的MetaFilter上。

http://ask.metafilter.com/110466/Anyway-to-develop-iPhoneiTouch-apps-without-investing-in-a-Mac

答案显然是否定的。
引用块: 你必须拥有某种类型的英特尔Mac。 整个iPhone构建过程在XCode中太深入了,无法在其他地方进行构建;我知道的唯一另一个Objective-C编译器是gcc,它不支持任何苹果对该语言(也不支持他们的库)所做的添加。 与人们上面说的直接相反,Objective-C绝对是我最喜欢的本地编译语言。优雅,小巧(只有几个从C中更改),后期绑定,动态,简单明了。这就是C ++应该成为的样子。
很多人推荐购买二手英特尔(记住,必须是英特尔!)Mac Mini作为最便宜的“入门之路”。

1
答案不是否定的,可以看一下我在开放式工具链上的回答。 - hhafez
是的,一些人已经探索并在 PPC 上使其工作了,显然。 - Nosredna
1
开放链不仅适用于Mac,还可以在Linux上运行,甚至可以在手机上编译、安装和运行!然后你只需要远程登录到你的手机进行编辑、构建、安装和运行 :) - hhafez
3
实际上,苹果的编译器就是gcc。你在其他地方得不到的是iPhone所需的代码签名、用于测试的模拟器以及不会使你的保修失效的设备调试工具。个人而言,我会使用开放式工具包中的gcc直接在手机上编译,因为规则就是用来打破的 :) - rpetrich

3
您所描述的是一个可行的解决方案,但您应该考虑使用iPhone的开放式工具链。 您不需要Mac电脑,只需越狱手机即可确保您的应用程序能够正常运行。
对于那些说它做不到的人,这是在SDK发布之前制作iPhone应用程序的唯一方法 :)
此外,如果您需要使用开放式工具链的指南,我强烈推荐这本书

感谢您提供 iPhone 开放工具链的指引。我之前没有听说过它,虽然对于我想要做的事情来说有些过度,但这绝对是一个有趣的项目。 - Dave

2
如果您考虑使用JavaScript库创建GUI,为什么不编写Web应用程序而不是iPhone本地应用程序呢?似乎越狱设备只是为了安装基于Ruby + Sinatra的web应用程序有些过头了。难道您不能将Ruby Web应用程序放在服务器上,并在主屏幕上创建Safari快捷方式吗?如果没有服务器,您可以在家里的PC上运行网站...
从技术上讲,越狱操作系统并在其中运行Ruby应用程序可能很酷,不要误会我的意思-我只是认为这将成为一个时间浪费。
以上仅供参考!

谢谢Ben。不幸的是,这个应用程序将被使用的地方之一恰好是一个接收死角 - 没有手机信号,没有3G,什么也没有!我已经编写了几个在我们托管服务器上运行的iPhone Web应用程序,它们工作得很好;这只是一次性的工作,我无法为解决方案花费任何$$$。 - Dave

1

取决于你的时间价值,我猜。这似乎是一个非常复杂的方式来让手机上的一个简单应用程序避免购买一台价值400美元的二手Mac Mini。

还有黑苹果路线,可能适用于您现有的硬件,但同样需要为时间付出代价。这是我开始之前的事情,在我花大钱购买Macbook Pro、MSI Wind和自己组装电脑之前。这是一个有争议的合法性问题(正确的做法是支付129美元购买Leopard),但你已经在谈论越狱了。 :-)


越狱在我所在的地方是完全合法的,而且考虑到我想要实现的目标,我也没有任何“道德”问题上的顾虑。我正在为一个人编写一款应用程序,而不是推翻一个帝国,我想知道的只是是否可以按照我概述的方式在技术上实现。 - Dave

1

让别人来做,或者租用你需要的资源。

另一个选择是找到附近已经设置好一切的iPhone开发者,要么让他写这个应用程序,要么一起合作,他提供开发环境,你编写解决方案或者一起编写。

唯一的问题是你将无法更新和维护它。

我仍然认为购买旧款Mac或Mac mini是最简单的选择。


1

如果你固执地不想使用Mac,但是你想要一个可以离线在iPhone/iPod Touch和Android设备上工作的应用程序,那么我建议使用HTML 5来创建一个离线应用程序。

现在你可以用HTML 5做很多事情——Google现在有一个使用HTML 5的电子邮件客户端,它可以离线工作等等。如果你这样做,并让用户将你的应用程序添加到他们的主屏幕书签中,那么它几乎就像一个好的应用程序了。

如果我是你,我会花钱买一个Mac,或者看看是否能借用一个,或者与别人共享时间——否则你将无法创建一个非常优质的应用程序。


1

你可以越狱手机并安装Python。在Cydia中有一些示例应用程序(称为iPhone/Python。在cydia中搜索Python)。

然后,您将拥有一个“本地”应用程序,而不是Web应用程序,并且可以使用整个iPhone UI库(只要通过py-objc可访问的部分),而且无需在后台运行Web服务器。

您可以通过SSH在手机上进行开发,也可以使用iPod Touch进行开发。打包也很容易(如果需要),只需创建自己的Cydia存储库并在其中托管您的软件包。

请查看iPhone applications in Python以获取更多信息。


0
来吧,到eBay上寻找最便宜的英特尔Mac mini。即使是一部屏幕破损的Mac笔记本电脑(你可以连接到外部显示器),也可以使用。你可能只需要花费几百美元,然后你就可以将其作为她的手机/ Touch升级的设备来维护它。

买一台Mac做这件事情对我来说并不值得。这个应用程序基本上是替代了一本纸笔记本和铅笔(好吧,它比那稍微复杂一点),而我正在为我的妻子做这个工作。我不会花费400美元去取代一本1美元的记事本,但我准备花2-3小时在Sinatra中编写这个应用程序。这不是关于“我该如何评估自己的时间价值”或者“我该如何黑进iPhone”的问题;而是一个“我能否在付出少量努力的情况下让我妻子的生活变得更轻松”的问题。 - Dave

0

在网页中,您可以放置一些特殊的元标签,使您的网络应用程序可保存并全屏显示到iPhone硬盘上(以便离线工作)。以下是一个示例:http://mrgan.tumblr.com/post/125490362/glyphboard2

还有像PhoneGap这样的框架,可以让您从JavaScript访问Cocoa API,但听起来您不需要它。


0

你的妻子是否订阅了任何数据计划?如果是这样,你可以简单地编写一个小型 Web 应用程序,在一些廉价的网络空间上运行,并通过 MobileSafari 访问它。

如果你需要一个完整的 iPhone 应用程序,最好在 eBay 上寻找第一代基于英特尔芯片的 Mac mini,价格应该不会太贵。而且作为额外的好处,你避免了越狱的麻烦。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接