在Windows上进行iOS开发

17

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

我已经阅读了很多有关在Windows上开发iOS应用程序的问题和答案:

在Windows上进行iPhone开发

如何在Windows开发机上为iPhone开发应用程序?

但是,大多数解决此问题(在Windows上制作iOS应用程序)的方法是因为遇到此问题的人想要为自己制作应用程序。此外,其中一些建议使用Web应用程序。

我正在为一家需要制作小型应用程序的公司工作(稍后其他公司也将需要更多应用程序),而负责所有IT事务的人告诉我们,我们需要一些事实,以便我们可以证明我们真的需要Mac来合法地开发iOS应用程序。

首先,我不知道此页面上所说的是否足够:https://developer.apple.com/support/ios/ios-dev-center.html

  

要使用iOS SDK和Xcode进行开发,您必须拥有运行Mac OS X Snow Leopard或更高版本的基于Intel的Mac,并且必须注册为Apple开发人员。

现在我有一些问题:

  • 公司是否有合法的方式在Windows上制作iOS应用程序?
  • 如果其中一种方法是在虚拟机下运行OS X……是否可以使用OS X Lion USB Thumb Drive
  • 我知道有一些SDK,例如Marmalade、Corona、DragonFire……它们为我们提供许可证,但它们是否100%可靠?如果我们使用其中一个SDK,苹果是否会为我们提供支持?
  • 苹果会检查应用程序是否是在合法的OS X拷贝上创建的吗?我的意思是,当代码编译时,是否有迹象表明苹果可以检查该应用程序是没有作弊制作的?
  • 在OS X(VM)上创建游戏会很困难吗?
  • 如果我们得到了Mac(mini)...那么我们需要Magic Touch或Magic Trackpad来测试多点触摸吗?还是只能通过按下其中一个键加左键单击来进行操作?
  • 创建Web应用程序是否是一种解决方案?我知道我们不能使用JavaScript使用设备的相机,但其他功能是否可行?
  • 测试

    我们的一些同事有iTouch,但我们不知道公司是否应该买一个新的。此外,您是否建议购买iPod Touch的最旧一代以进行测试,还是仅购买第三代和第四代?

    希望您可以理解。提前致谢!

    更新:

    我收到了这些答案:

    • 您将在Windows上使用相应的SDK进行工作

    我:我知道苹果没有官方SDK可供在Windows上开发iOS应用程序。

    • 我们将使用的编程语言与安装在PC或MAC上的相同。 我:不可能吗?

    更新: 我们得到了Mac。":D"


    您希望您的应用程序具有iOS本机外观和感觉吗? - Emile Cormier
    1
    如果你最终浪费了一周的时间来解决在PC上进行iOS开发的限制,那么这些浪费的时间所花费的代价将比购买一台Mac Mini和KVM切换器更高。 - Emile Cormier
    我们需要创建的第一个应用程序不需要有外观和感觉,但我们希望它在法律上是合法的。是的,这是真的,但我需要一些真实的事实。我们只有两周时间来创建这些应用程序。 - Jose Adrian
    虽然这个问题可能是重复的,但是+1给你一个非常系统化、清晰明了的提问。 - rohan-patel
    2
    两周?你的开发人员已经了解了Objective-C和Cocoa Touch API吗?对于任何非平凡的任务来说,两周太过激进。 - Adam Robinson
    我是唯一一个将要了解所有iOS相关内容的开发者。我一直在阅读并掌握基础知识,但仍未获准获取Mac电脑。 - Jose Adrian
    7个回答

    7

    虽然有像FlashBuilder这样的工具,但这些解决方案不能提供实际本地应用程序的性能或灵活性。至于虚拟化OS X,则不是一个可选项。所有版本的OS X的EULA明确禁止硬件虚拟化(尽管我相信Lion允许这样做但只有在直接运行在真正的Apple硬件上时)。换句话说,除了Mac以外的任何计算机都无法运行OS X而不违反EULA。


    你的回答真的很有帮助。这个信息在这个页面上,对吗?Mac OS X的最后一个链接已经失效了,但我想Lion 10.7作为证明已经足够了。 - Jose Adrian
    2
    如果您是欧盟居民,则可以合法地在任何硬件上运行您合法购买的OS X系统。 - Łukasz Wojciechowski
    1
    @nostrzak:你有一个能够清晰表明这一点的链接吗?EULA仍然禁止这种做法,所以除非你能指出某些特定的条款无效,否则你可能仍在建议人们违反版权法。 - Adam Robinson

    4
    我没有Mac电脑,但是我按照这篇博客的指南http://tonymacx86.blogspot.com/设置了一台Hackintosh(在PC上运行的MacOSX)。如果你的电脑配置兼容,那么Mac OSX将会完美运行,就像在普通的Mac上一样。
    既然你问这个问题,我假设你不想花钱购买Mac,所以设置一台Hackintosh机器是你最好的选择。你只需要花一些钱购买合法的Mac OSX副本。是的,我也设置了Hackintosh来在PC上开发iPhone应用程序。

    2
    请注意,黑苹果违反了OS X EULA。大多数人不会在意,但他明确表示需要合法的选项。 - Adam Robinson

    3
    尽管总会有一些技巧和变通方法,但如果要进行iOS开发,你需要拥有一台Mac电脑。你可以购买一台价格不到1000美元的Mac Mini,如果你想通过Windows机器构建iOS应用程序,我想花费在人力和时间上的成本可能超过1000美元...而且你可能还需要不断地调整才能使其正常工作。
    • 据我所知,Mac OS X无法可靠地在Windows机器的虚拟机中运行,但自我上次检查以来情况可能已经改变。
    • 大多数跨平台开发工具都会回退到基于HTML/Javascript的技术,这些技术在嵌入式浏览器中运行,并使用自定义工具打包,我倾向于避免使用它们,因为它们生成的应用程序将不会感觉很原生。
    • 我不认为苹果公司会检查代码的构建位置。Adobe的FlashBuilder可以导出到iOS二进制文件,这些应用程序被苹果公司接受。
    • 创建这些应用程序不应该很难...测试它们可能会有点慢,但你肯定希望尽早并经常在真实硬件上进行测试。
    • 如果你购买了Mac Mini,你可以按住选项并单击来模拟iPhone模拟器中的双触摸,但是对于更重要的多点触摸测试,你需要针对真实设备进行测试。
    • 根据你的目标,Web应用程序可能是一个不错的解决方案。你可能会失去一些性能和控制,但你可能不需要太多东西来完成你的任务。

    2

    我的个人经验是,让IT部门支持或允许使用苹果产品总是像拔牙一样困难。不要听从他们的建议使用替代系统来开发应用程序。直接使用OSX是最好的选择,特别是因为你们以后可能会做更多的事情。从一开始就把它做对。


    我们会尝试!我仍在寻找使用虚拟机的缺点。 - Jose Adrian
    1
    @JoseAdrian:虚拟机最大的缺点是它会违反OS X EULA。你不能合法地虚拟化OS X(除了Lion,但即使是那个虚拟机也只能在真正的Intel Mac上运行)。 - Adam Robinson
    唯一能够在虚拟机中使用OSX的方法是在OSX内部安装虚拟机。 - Rudy
    @Jose Adrian(“使用”“虚拟”“机器”) - Rob Grant

    1

    现在,通过Adobe FlashBuilder,您可以在Windows上制作iPhone应用程序http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html。它将全部使用ActionScript编码,就像Flash一样,但看起来几乎相同。个人而言,我从未使用过它,我拥有一台Mac,但我的学校很赞。

    此外,我知道您可以像OS X进程一样将此构建器中的应用程序直接放入应用商店。

    您无法直接将其放在U盘上,因为OS X启动方式不同,您需要在计算机上安装新的引导加载程序,但这是可以完成的,请查找Hackintosh。

    最后,您不需要魔术触摸板,在通过OS X运行模拟器时无法进行多点触控,您必须将应用程序放在手机上以测试多点触控。


    2
    只是顺便提一下,从我的经验来看,性能绝对无法与本地应用相比。 - Rudy
    你能用这个实现iOS原生的外观和感觉吗? - Emile Cormier
    我也会建议使用OS X,如果你坚持使用Windows,那可能是最好的选择。 - King Popsicle
    2
    你无法获得原生的iOS外观和感觉...虽然接近,但还不够完美。 - jessecurry
    正如JesseCurry所说,你不能这样做。它看起来会像Flash应用程序。 - Rudy

    1
    1. 有没有一种合法的方式让公司在Windows上制作iOS应用程序?

      我的建议是尽可能努力地获取Mac。

      但是,只是提供另一种选择:

      尝试Phonegap。它基本上是一个HTML5包装器,主要用于需要在多种类型的设备上发布的应用程序。但是它也能够访问本机资源,如相机存储,您可以在其功能页面中看到。

      如果您关心的更多是开发机器,那么使用Phonegap,您可以在任何操作系统中开发应用程序。您不需要为所有开发人员购买多个Mac。

      PhoneGap还有一个名为PhoneGap build的服务,实际上是一项云服务,可以将您的代码构建为多个平台,包括iPhone。这是合法的,您可以将其发布到App Store。

    2. 如果其中一种方法是在虚拟机下运行OS X...是否可以使用OS X Lion USB闪存驱动器进行操作?

      不,您只能在OSX中运行OSX虚拟机。

    3. 在OS X(VM)上创建游戏会很难吗?

      这取决于开发人员。但是由于游戏应该在模拟器中进行测试,因此您的问题并不那么相关。

    4. 如果我们获得了Mac(mini)...我们需要Magic Touch或Magic Trackpad来测试多点触控吗?还是只能通过按下其中一个键加上左键单击来实现?

      Xcode模拟器可以模拟这一点。阅读这篇博客

    5. 创建Web应用程序会是一个解决方案吗?我知道我们不能使用JavaScript使用设备的相机,但其余部分是否可以?

      如果您正在使用PhoneGap,则基本上是本机包装的Web应用程序。它仍然可以让您访问资源,如相机、指南针、存储等。


    1
    我曾尝试在一些专业项目中使用Phonegap,但效果并不理想。应用程序似乎不是本地的,并且存在一些小细节问题,这让我们的用户感到非常困扰。同时,使用Phonegap开发所需的时间比使用iOS SDK更长,但具体情况因人而异。 - jessecurry

    0
    您建议为测试目的获取最早期的iPod Touch一代还是仅限于第三代和第四代?
    iOS 5 SDK具有许多新功能,可以使应用程序开发更加容易。在您的应用程序准备好发布时,大多数用户都会转向iOS 5。我理解iOS 5不支持第三代设备,因此如果要使用SDK 5,则不存在获取那些设备的意义。

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