有没有办法在Windows机器上修改iPhone SDK ?有针对Windows的iPhone SDK版本的计划吗?

我能想到的另一种方法是在运行Windows的VMWare服务器上运行Mac虚拟机映像,尽管我不太确定这是否合法。


当前回答

你不需要拥有一台Mac,也不需要学习Objective-C。您可以在不同的环境中开发,然后编译成Objective-C。

运行osx 10.6为iPhone和iPad开发(snow leopard)

我们的一名开发人员写的这篇文章相当全面地介绍了在Windows上使用iBoot安装OS X Snow Leopard,然后安装Vmware(有说明),然后启动iPhone开发环境……还有一些额外有趣的东西。对我很有帮助。

希望这能有所帮助。它使用Phonegap,所以你可以同时在多个智能手机平台上开发。

其他回答

只要做一个网页应用。 iOS网页应用包括:

Reliable. The amount of time it takes to make an update is far shorter than with XCode. Fast. JavaScript on iOS is, by nature, far faster than native apps. Free. You never have to pay Apple a cent, as Apple doesn't have any control over you. Safer. If a crash occurs with a native app, it can take down even the newest iOS devices for hours or even days, until the user can fix them. If a web app crashes, the user just has to close and reopen it, worst case scenario. Offline. You can easily create a service worker to handle your app. Secure. Because you do not have access to native APIs, a security breach will be significantly less dangerous. Easy to program. A basic iOS web app can be programmed from the Safari URL bar on an iPhone. Literally. I've done it myself.

在Windows机器上开发当然是可能的,事实上,我的第一个应用程序是专门在我当时拥有的旧戴尔Precision上开发的:)

有三条路线;

Install OSx86 (aka iATKOS / Kalyway) on a second partition/disk and dual boot. Run Mac OS X Server under VMWare (Mac OS X 10.7 (Lion) onwards, read the update below). Use a framework and/or toolset, which allows developing on Windows, like Delphi XE4 with the mac-in-cloud service, which can build without MacOS device need. This is a commercial toolset, but the component and lib support is growing. Other honorable mentions are Flutter, Xamarin and similar; which may at end need actual MacOS device for final build (but you can test on Android till then, as they're cross-platform).

第一种方法需要修改(或使用预先修改过的)Leopard映像,该映像可以安装在普通PC上。这并不像你想象的那么难,尽管你的成功/努力比率将取决于你的PC硬件与Mac硬件的匹配程度——例如,如果你在英特尔主板上运行酷睿2双核,配NVidia显卡,你会笑。如果你运行的是一台没有SSE3的AMD机器,那么它就会变得复杂一些。

如果你购买了(或已经拥有)一个版本的Leopard,那么这是一个灰色区域,因为Leopard EULA规定你只能在“Apple标签”的机器上运行它。正如许多人指出的那样,如果你在你的电脑上贴上苹果贴纸,你可能就有保险了。

第二种选择成本更高。工作站版Leopard的EULA阻止它在模拟下运行,因此,VMWare中不支持这一点。然而,Leopard服务器可以在模拟下运行,并可用于桌面目的。然而,Leopard服务器和VMWare是昂贵的。

如果你对选项1感兴趣,我建议你从Insanelymac开始,阅读OSx86部分。

我确实认为你应该考虑你投入的时间是否值得你省下的钱。对我来说,这是因为我喜欢摆弄这类东西,我是在iPhone早期测试版的时候开始的,当时苹果应用商店还没有上线。

或者,你也可以从eBay上买一台低规格的Mac Mini。你不需要太多的马力来运行SDK,如果你决定停止开发或购买更好的Mac,你可以随时出售它。

更新:无法为OS X 10.6及更早版本创建Mac OS X客户端虚拟机。苹果不允许虚拟化这些客户端操作系统。随着Mac OS X 10.7 (Lion)的推出,苹果改变了虚拟化方面的许可协议。来源:VMWare知识库

Xamarin是一个可靠的选择。它被微软收购,现在被直接构建到Visual Studio中。你用c#编程。通过他们所添加的所有更新和功能,你可以做任何事情,除了从Windows上提交到App Store,甚至可以编译、构建和部署到iOS设备上。

对于游戏来说,Unity 3D是一个很好的选择。该编辑器可免费用于开发,甚至用于发行(如果你的年收入低于10万美元)。Unity支持iOS、Android和大多数其他平台。也许可以使用Unity的“Cloud Build”功能来避免使用Mac进行部署,尽管默认情况下Unity在为iOS构建时实际上会吐出一个Xcode项目。

其他选项:

PhoneGap (html/javascript)也可以。它对于游戏来说不太好,但是对于常规的GUI应用程序来说已经相当不错了。

Flutter (dart)是来自谷歌的免费跨平台移动应用程序开发框架。用Dart编写代码。

React Native (javascript)是Facebook创建的另一个流行的跨平台框架。

注意:对于所有这些选项,所有或大部分的开发都可以在Windows上完成,但MacOS设备仍然需要构建二进制文件提交给App Store。一种选择是买一台便宜的MAC Mini来完成你的最终构建。

正如已经指出的,你可以尝试使用WinChain,但如果你是一个新手,这将是不容易的。

iPhone SDK将在hackintosh(安装了OS X的普通PC)上运行。我知道,因为我有一个,它确实。

所以在你购买OSX许可证后,你可以尝试使用Boot-132或其他安装程序(如iDeneb)在你的PC上的不同驱动器上安装它。问题是,你将不得不做很多修补和事情仍然不会工作得很好。

Oracle VirtualBox允许用户在虚拟机中安装Mac OS X。如果你觉得舒服,你可以用这种方式来使用Xcode。这是合法的,如果你“双引导”你的mac到windows,然后在windows(或linux)中安装VirtualBox。

其他可能性是交叉编译器,如Appcelerator Titanium (HTML, CSS和JavaScript)或MonoTouch (. net)。