【问题标题】:How can I develop for iPhone using a Windows development machine?如何使用 Windows 开发机器为 iPhone 开发?
【发布时间】:2010-09-11 22:18:18
【问题描述】:

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

我能想到的唯一其他方法是在 Windows 上运行的 VMWare 服务器上运行 Mac VM 映像,尽管我不太确定这是否合法。

【问题讨论】:

标签: ios iphone windows


【解决方案1】:

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

共有三种路线;

  1. 在第二个分区/磁盘上安装 OSx86(又名 iATKOS / Kalyway)并进行双启动。
  2. 在 VMWare 下运行 Mac OS X Server(Mac OS X 10.7 (Lion) 及更高版本,请阅读下面的更新)。
  3. 使用 Delphi XE4 和 macincloud 服务。这是一个商业工具集,但组件和库支持正在增长。

第一条路线需要修改(或使用预先修改的)Leopard 的映像,该映像可以安装在普通 PC 上。这并不像您想象的那么难,尽管您的成功/努力比率将取决于您 PC 中的硬件与 Mac 硬件中的硬件匹配程度 - 例如。如果你在 Intel 主板上运行 Core 2 Duo,并带有 NVidia 显卡,你会笑的。如果您运行的是 AMD 机器或其他没有 SSE3 的机器,它会涉及更多。

如果您购买(或已经拥有)一个 Leopard 版本,那么这是一个灰色区域,因为 Leopard EULA 规定您只能在“Apple Labeled”机器上运行它。许多人指出,如果您在 PC 上贴上 Apple 贴纸,您可能会被覆盖。

第二种选择成本更高。 Leopard 工作站版本的 EULA 阻止它在仿真下运行,因此,VMWare 不支持此功能。然而,Leopard 服务器可以在仿真下运行,并可用于桌面用途。然而,Leopard 服务器和 VMWare 价格昂贵。

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

我确实认为您应该考虑您所投入的时间是否值得您节省的钱。这是给我的,因为我喜欢修补这类东西,而且我是在早期的 iPhone 测试版中开始的,比他们的 App Store 还早几个月。

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

更新:您无法为 OS X 10.6 及更早版本创建 Mac OS X 客户端虚拟机。 Apple 不允许虚拟化这些客户端操作系统。从 Mac OS X 10.7 (Lion) 开始,Apple 更改了其关于虚拟化的许可协议。来源:VMWare KnowledgeBase

【讨论】:

  • OSX 在虚拟机中运行,所以理论上是可以的。但是,有一些问题。在用于 OSX 的 VM(我说的是 VMWare)中获得网络支持非常非常。此外,整个过程会非常缓慢,我不认为这是向它扔 RAM 的情况。
  • @DennisPalmer 我不建议购买,因为便宜的 Intel Core 2 Duo Mac Mini 速度很慢,而且通常不带键盘和鼠标。我认为只要 650 美元,您就可以获得一台非常酷的 Macbook(pro 或 air),内存为 4 Gb。
  • @Zakaria 是的,过去 3 年发生了很多变化!当我购买 Mac Mini 时,我身边有很多键盘、鼠标和显示器,所以当时它是一个不错的选择。哦,我只付了 360 美元。很久没有在 eBay 上购买二手 Macbook,但这是一个很好的建议。
  • 我想指出的是,只要您的内存不超过 32 GB,使用 VMWare ESX 是免费的,您回答说运行 VMWare 非常昂贵:/跨度>
  • 无意冒犯,但这听起来麻烦多于其价值。旧 Mac 在 eBay 上很便宜,而且可以很好地运行 Xcode。
【解决方案2】:

您可以使用WinChain

引用项目页面:

这是在 Windows XP/Vista 计算机上构建 iPhone 工具链的最简单方法,反过来,它可以获取您使用其 UIKit 标头(包含在 winChain 中)编写的 Objective-C 源代码并将其编译成一个应用程序您可以在 iPhone 上使用。

【讨论】:

  • 那么这个可以免费使用而且你可以开发可以放到苹果商店的ios应用吗??
【解决方案3】:

SDK 仅在 OS X 上可用,迫使您使用 mac。如果您不想购买 Mac,您可以在 Windows 机器上的虚拟机上运行 OS X,或者您可以在 PC 上安装 OS X。

根据我的经验,虚拟机解决方案运行缓慢(在具有 2G 内存的 core2 duo 笔记本电脑上)。如果您想尝试它,请搜索 torrent。这可能不值得。

另一种选择是在您的 PC 上安装 OS X,通常称为 hackintosh。 Hackintoshes 工作得很好——我的朋友刚刚卖掉了他的 mac,因为他的戴尔四核 hackintosh 实际上比苹果硬件快得多(而且成本大约是 1/3)。你可以找到很多关于如何做到这一点的文章;这是关于如何在戴尔 Inspiration 1525 笔记本电脑上安装的内容:hackbook pro tutorial

当然,这两个选项都可能与某些许可方案背道而驰,因此请自行承担风险。

【讨论】:

  • hackintosh 信息很容易过时,最好关注专门针对该主题的网站(例如戴尔型号的 osxlatitude)
【解决方案4】:

如果您有越狱的 iPhone,您可以通过 Cydia 将iphone-gcc toolchain 安装到 iPhone 上,这样您就可以在 iPhone 上编译应用程序。以这种方式开发的应用仍然可以提交到 App Store。

尽管 Valdez 先生说这是一个灰色区域(确实如此),但越狱非常容易,而且几乎没有风险。是的,它会使您的保修失效,但您可以进行恢复,他们永远不会知道。

【讨论】:

  • 刚刚更新:越狱不再会使您的保修失效,至少在美国不会。
  • @9000 有资源吗?尽管越狱不再违反 DCMA(Apple 从未强制执行),并且可能会或可能不会使保修失效(故意含糊不清),但它确实违反了 EULA,Apple 将拒绝在越狱设备上提供服务support.apple.com/kb/HT3743
  • 如果您使用 iTunes - 恢复将设备恢复到越狱前的状态,他们如何拒绝服务?他们无法检测到它曾经被越狱
  • @JoelFan iOS 可能与 Android 具有相同的功能;一个'闪光自动收报机'。这存储在 NVRAM 中,并在每次擦除 system 时递增,这意味着可以检测它是否已刷写或植根。 iOS 设备可能有同样的东西(事实上,如果他们没有,我会感到惊讶)。
  • 我拒绝谷歌 Valdez 先生。如果有人能告诉我们,我将不胜感激。
【解决方案5】:

看看这个:

Over view

这是一个尝试将用多种源语言编写的程序交叉编译为多种目标语言的项目。最初的测试用例之一是用 Java 编写程序并在 iPhone 上运行它们。在网站上观看视频是值得的。

话虽如此,我还没有尝试过。该项目似乎是测试版,在他们的 SourceForge 网站上没有很多活动。

【讨论】:

  • 这个项目似乎已经死了。该项目网站将其描述为“目前处于早期开发阶段”,并且自 2014 年以来没有提交到其源代码存储库。
【解决方案6】:

当然,你可以在记事本或其他程序中编写Objective-C代码,然后将其移至Mac进行编译。

但是说真的,这取决于您是在开发要放入 App Store 的官方应用程序,还是为越狱的 iPhone 开发应用程序。要编写官方应用程序,需要 Intel Mac 的 Apple iPhone SDK 似乎是唯一实用的方法。但是,有一个非官方的工具链可以为越狱的 iPhone 编写应用程序。您可以在 Linux 和 Windows 上运行它(使用 Cygwin)。

【讨论】:

    【解决方案7】:

    如前所述,您可以尝试使用 WinChain,但如果您是新手编码器,这并不容易。

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

    因此,在您购买 OSX 许可证后,您可以尝试使用 Boot-132 或 iDeneb 等其他安装程序之一将其安装在您的 PC 上的不同驱动器上。这个问题你将不得不做很多修修补补,但事情仍然不能很好地工作。

    【讨论】:

      【解决方案8】:

      您很快就能使用Adobe Flash CS 5Windows 上为iPhone 创建应用程序:

      flashcs 5

      flashcs5 apps for iphone

      【讨论】:

        【解决方案9】:

        Xamarin 是一个不错的选择。它由 Microsoft 购买,现在直接内置到 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) 是来自 Google 的免费跨平台移动应用程序开发框架。用 Dart 编写代码。

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

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

        【讨论】:

        • 我正在使用 Airplay 开发一款跨平台游戏。好消息是他们可能完全符合新的 iPhone OS 4.0 条款和条件。见airplaysdk.com/node/672
        • Phonegap 很棒,但是您不能完全在 Windows PC 上开发您的应用程序,然后只在 iMac 上签名并寄希望于最好的结果。除非您的应用属于 HelloWorld 类型,否则您确实需要测试和调试。
        • 有一个名为 Nomad 的 Visual Studio 扩展,它支持通过将 PhoneGap 构建到云服务来完全在您的 PC 上进行开发。
        • 我不相信 Marmalade 不再是免费的了,许可条款已更改。
        • Xamarian 无法使用,除非网络上有一些 MAC PC
        【解决方案10】:

        您可以在 Windows 上使用 Sentenza 为 iPhone 制作应用程序。 测试成功。 这不是一个解决方案,而是一个很好的选择!

        【讨论】:

        • Sentenza for iOS 似乎不再存在。我能找到的只有sentenzadesktop.com——它适用于桌面,而不是 iOS,并且自 2014 年以来一直没有更新。
        【解决方案11】:

        您可以使用Tersus(免费、开源)。

        【讨论】:

        • 不。对于原生应用程序,您仍然需要 Mac 来编译和部署。
        【解决方案12】:

        Oracle VirtualBox 允许用户在虚拟机中安装 Mac OS X。如果您对它感到满意,您可以使用这种方式来使用 Xcode。如果你“双启动”你的 mac 进入 windows,然后在 windows(或 linux)中安装 VirtualBox,这是合法的。

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

        【讨论】:

        • 使用虚拟机是否违法?
        • 非法方式不受欢迎
        • 绝对合法,前提是您将 Windows 作为 Mac 上的唯一系统运行。
        • 我有一台装有 MacOS 的虚拟机,但我无法在真实设备上部署我的应用
        【解决方案13】:

        您可以尝试使用 HTML、JavaScript、CSS 为 iPhone 开发网络应用程序。查看 Apple 网站上的 getting started 信息。

        【讨论】:

        • 我刚刚找到了一款名为 MobiOne Studio 的软件。如该网站所述:“MobiOne Studio - iPhone 应用程序和网络应用程序设计器以及带有 iPhone 模拟器的 iPhone 测试中心,使您能够在几分钟而不是几天内创建、自定义和运行 iPhone 用户界面。”也许它会对你有所帮助。链接:genuitec.com/mobile.
        【解决方案14】:

        另外两个选项

        1. Titanium Developer - 免费社区版 - 用 HTML/JavaScript 编写 - 使用 Xcode 编译(需要 Mac 或 VM)

        2. OpenPlus ELIPS Studio - 用 Flex 编写,在 Xcode 上编译(需要 Mac 或 VM) - 然而,他们刚刚开始为他们的产品收费。

        我认为这些和提到的其他一些选项可能有“工具链”选项,它们允许您在 Windows 上编译为二进制文件,而且我看到您可以上传一个 zip 文件并完成工具链样式的编译您在线,但这违反了 Apple 许可。

        如果我没记错的话,像 Titanium 这样输出/与 Xcode 一起工作并且不使用任何第 3 方/替代/受限库的产品应该是合规的,因为您最终是在 xcode 中编译 - 普通的 Objective-C 代码和图书馆。

        【讨论】:

          【解决方案15】:

          您无需拥有 Mac,也无需学习 Objective-C。您可以在不同的环境中进行开发,然后再编译成 Objective-C。

          developing for the iphone and ipad by runing osx 10.6(snow leopard)

          我们的一位开发人员撰写的这篇文章对使用 iBoot 在 Windows 上安装 OS X Snow Leopard、然后安装 Vmware(附带说明)、然后让您的 iPhone 开发环境运行......事物。对我很有帮助。

          希望对您有所帮助。它使用 Phonegap,因此您可以同时在多个智能手机平台上进行开发。

          【讨论】:

            【解决方案16】:

            试试macincloud.com它可以让你租用一台mac并通过RDP远程控制访问它。然后,您可以使用您的 PC 访问 Mac,然后开发您的应用程序。

            【讨论】:

              【解决方案17】:

              如果您对 Mac 有 ssh 访问权限,那么您可以使用 VNC(如 Vine VNC,它允许一次多次使用 - 瘦客户端)来控制 XCode。

              如果您想从笔记本电脑或您的 S.O. 访问 Mac Mini,这可能会很有用。正在占用你的 MacBook。

              【讨论】:

                【解决方案18】:

                查看 NS Basic/App Studio。它是适用于 iPhone 的 Visual Basic。 (尽管您也可以使用 JavaScript 编写代码)。它生成无需通过 App Store 即可分发的 WebApp。应用程序也将在其他平台上运行,例如 Android。 NS Basic/App Studio

                【讨论】:

                  【解决方案19】:

                  一个开发工具包,允许人们在 Objective-C, C++ 或使用 Visual Studio 的纯 C 语言开发 iPhone 应用程序:

                  查看iOS build env

                  您可以直接在 Visual Studio(2008、2010、Express)中构建 iPhone 应用程序。

                  非常简洁,它甚至会在编译成功后为您的应用构建IPA 文件。该代码可以在越狱设备上正常工作,对于地球的其他地方,我相信最终编译和提交到 App Store 必须在 Mac 上完成。但是,它仍然可以让您使用知名的 IDE 进行开发。

                  【讨论】:

                    【解决方案20】:

                    是的,您不需要学习 Objective-C 和购买 Apple 软件和硬件。

                    Adobe 有来自 ActionScript 3 的 created compilator 为 iOS 编程。以及后来苹果approved这种应用创建方法。

                    这是在 Windows 或 Linux/BSD 下创建 Apple 应用程序的最佳方式(MacOS-X 也是另一种)

                    【讨论】:

                      【解决方案21】:

                      有趣的是没有人提到跨平台wxWidgets 选项。

                      不过,这是 less than an optimal 解决方案。

                      恕我直言,最明智的商业方式是将资金投资于 Apple 认可的框架。这样一来,如果您发现自己遇到了一些令人难以置信的问题,您就有更多的开发者社区可供咨询。

                      【讨论】:

                        【解决方案22】:

                        还有来自制造 Ext JS 的公司的 Sencha ArchitectSencha Touch

                        【讨论】:

                          【解决方案23】:

                          大多数“所谓的不使用 Mac 的 iOS 开发的 Windows 解决方案”最后都需要 Mac 来签名并发送到应用商店。我检查了一些,但不是全部(谁有时间?)

                          最后,学习“他们的超级特别简单的无需 Objective-C 的 iOS 编程方法”实在是太麻烦了,他们有很多错误。在我看来,他们设定的目标确实无法实现。

                          还有很多时候,它们会让你在另一种语言中简单地使用 Objective-C 等效语句。它们看起来一样,但总有一些细微的差异,你必须在 obj-c 之上学习。这也更没有意义,因为现在你必须学习更多,而不是少学。那么收益在哪里呢? 而且它们的成本很高,因为它们很难开发。

                          许多都缺乏任何调试能力。

                          老实说,如果您是一名铁杆 iOS 开发人员,那么一定要购买最好的 Mac 并学习 Objective-c。这既昂贵又需要时间,但如果这是你的道路,那是值得的。

                          对于偶尔使用,租用远程 Mac 服务更容易,例如XCodeClub.com

                          【讨论】:

                          • 我对PhoneGap 不够熟悉,无法撰写评论,但我喜欢这个想法:使用广泛的HTML5+JavaScript 技术编写的跨平台应用程序。
                          • [VirtualMacOSX.com][1] 有 xCode 开发计划,(截至目前)每月 10 美元起。我相信其他人也有。 [1]:virtualmacosx.com/index.php/xcode-plans
                          • 我什至不知道这项服务的存在。我只是想探索和玩它,现在正要放弃做所有这些疯狂的变通办法,但这要容易得多。很棒的提示!
                          • "现在 [...] 你必须了解更多。而且它们的成本很高 [...]" ..... "购买最好的 Mac 和学习 Objective-c。它很贵而且需要时间 [...]" 结论:无论哪种情况,iOS 开发都是昂贵且需要时间的。 ;)
                          【解决方案24】:

                          您可以在 WINDOWS PC 上开发 IPHONE 应用程序。我已经用复杂的应用程序做到了。而且效果很好。您可以开发 iphone 应用程序,而无需使用 mac 或 iphone。

                          您可以使用 Sencha 或 JQTouch 或 mobi1 等工具在 Windows 上开发 HTML(或更好:HTML5)应用程序。 (他们曾经有一段时间都是免费的)

                          然后您使用 openSSL 对应用程序进行签名。和 Adob​​e PhoneGAP Build 服务来构建 iPhone App。

                          但您需要 iphone 开发者许可证才能在 iphone 上安装它。但是您随时都不需要 mac 或 iphone 来编译、构建或测试它——所有这些都在 PC 上完成。

                          我已经做到了,而且效果很好。 (但具有 Android 类型的响应能力 - 不如原生 iPhone 应用程序快)

                          您还可以使用巴比伦时代(大约公元前 300 年)运行 C 和 C++ 的程序,称为蜻蜓。如果您的应用程序有一个或两个交互性有限的屏幕和许多计算,那就去吧。它包括一个模拟器。您只需按一下按钮即可编译到 iphone。 (不确定,但我认为无论如何你都需要开发者许可证)

                          然后是 Xamarin。您使用 C# 进行开发,并对本机代码进行特殊调用。你必须学习环境。

                          【讨论】:

                          • 好吧,您可以使用 PC 开发应用程序,但为 Apple 商店构建数据包需要访问 Mac 或您的 PC 之外的某些服务,这就是其中的一部分。尽管项目设置为 Release 构建,但至少我没有将任何包放入 Release 文件夹。
                          【解决方案25】:

                          如果您想在 Windows 环境下开发应用程序,那么可以选择在您的 windows 中安装 MAC OS 平台名称为:“Niresh'MAC OS”,您可以在 Google 上搜索该文本

                          然后您可以下载整个 MAC OS 源并在您的 Windows PC 中轻松安装 MAC OS,Niresh 能够破解整个 OS。

                          希望这会对你有所帮助。

                          【讨论】:

                            【解决方案26】:

                            您可以在 PC 上安装 OSX,但体验不会很好,而且需要大量工作。另一种方法是使用框架/SDK Codename one:它基于 JAVA,可用于在 Windows (eclipse) 上的 WP8、Android、iOS 中编码,具有所有广泛的功能

                            功能概览:

                            1. 完整的 Android 环境和超快速的 android 模拟器
                            2. 一个 iPhone/iPad 模拟器,可以在几分钟内轻松地将 iPhone 应用程序带到大屏幕 iPad。
                            3. 完全支持标准的 java 调试、分析任何平台上的应用程序。
                            4. 简单的主题设置/造型 - 只需点击一下即可

                            更多Develop Android, iOS iPhone, WP8 apps using Java 免责声明:这是我对产品的评论

                            【讨论】:

                              【解决方案27】:

                              万岁!现在,您可以使用最新的 Xamarin.iOS 更轻松地完成此任务,并使用提供构建和部署功能的联网 Mac。

                              更多详情请看这里:

                              introduction to xamarin ios for visual studio

                              【讨论】:

                                【解决方案28】:

                                这是一个新工具:oxygene,您可以使用它来构建适用于 iOS/Mac、Windows RT/8 或 Android 的应用程序。它使用派生自 Object Pascal 和 Visual Studio 的特定语言(并使用 .net 或 java.)。它似乎真的很强大,但不是免费的。

                                【讨论】:

                                  【解决方案29】:

                                  因此,坏消息是它的 iOS 模拟器及其应用程序加载器工具需要 XCode,以便将程序实际上传到 iOS 设备以进行“真实”测试。在提交到 App Store 之前,您需要 XCode 来签署您的应用程序。不幸的是,XCode 仅适用于 OS X。

                                  不过,好消息是您可以购买 OS X 并在虚拟机中运行它,例如 VMWare Workstation。我不知道这有多简单,因为让 OS X 在非 Apple 硬件上运行是 rather difficult,但快速的 Google search 表明这是可能的。这种方法(可能)会比购买新的 Mac 便宜,尽管Mac Mini 在美国的零售价仅为 599 美元。我看到的一些帖子表明这可能合法也可能不合法,其他人说您需要 OS X Server 进行虚拟化。我将把研究留给你。

                                  还有一些服务,例如MacInCloud,可让您租用 Mac 服务器,您可以通过远程桌面或浏览器从 Windows 访问该服务器。不幸的是,我认为您无法使用 Application Loader,因为您必须将设备物理连接到您的计算机,但它至少可以用于开发和模拟。

                                  祝你好运!

                                  【讨论】:

                                    【解决方案30】:

                                    请查看 Xamarin。他们有 Visual Studio 的扩展 (http://xamarin.com/visual-studio)。

                                    取自他们的网站:

                                    Xamarin 提供 Visual Studio 加载项,以便您可以在一个解决方案中开发您的 iOS、Android 和 Windows 应用程序。 Xamarin 扩展支持在模拟器或设备上构建、部署和调试。

                                    【讨论】:

                                    • 但是为 iPhone 开发 Xamarin 需要 Xamarin,mac 版。
                                    猜你喜欢
                                    • 2011-09-25
                                    • 1970-01-01
                                    • 2010-10-13
                                    • 2011-01-09
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多