Windows 上的 iOS 开发

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/9595507/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 09:19:35  来源:igfitidea点击:

iOS development on Windows

iphonewindowsmacos

提问by Jose Adrian

Possible Duplicate:
How can I develop for iPhone using a Windows development machine?

可能的重复:
如何使用 Windows 开发机器为 iPhone 开发?

I've read a lot of questions and answers about developing iOS apps on Windows:

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

iPhone development on Windows

Windows 上的 iPhone 开发

How can I develop for iPhone using a Windows development machine?

如何使用 Windows 开发机器为 iPhone 开发?

But most of the ways to accomplish this is because the people with this problem (make ios apps on windows) want to make apps for themselves. Also, some of them suggest web apps.

但大多数实现这一点的方法是因为有这个问题的人(在 Windows 上制作 ios 应用程序)想要为自己制作应用程序。此外,其中一些建议使用网络应用程序。

I'm working for a company who needs to make a little App (later other companies will need more) and the person who is in charge of all about IT told us that we need some facts so we can demonstrate that we really need a Mac for developing apps for iOS legally.

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

First, I don't know if all that says on this page would be enough https://developer.apple.com/support/ios/ios-dev-center.html

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

To develop with the iOS SDK and Xcode, you must have an Intel-based Mac running Mac OS X Snow Leopard or later and you must be registered as an Apple Developer.

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

Now I have some questions:

现在我有一些问题:

  • Is there a legal way for a company to make iOS apps on Windows?
  • If one of those ways is running OS X under a Virtual Machine... Is it possible to do it with OS X Lion USB Thumb Drive?
  • I know there are some SDK such as Marmalade, Corona, DragonFire... and they give us licenses but are they 100% reliable? Would apple give us support if we use one of these SDK?
  • Does Apple check if the app was created over a legal OS X copy? I mean, when the code is compiled, is there a sign so Apple can check that the app was made without cheating?
  • Creating games on OS X (VM) would be hard?
  • In the case we get the Mac (mini)... Would we need the Magic Touch or Magic Trackpad to test multi-touch? Or is only possible doing it by pressing one of the keys plus the left click?
  • Creating Web Apps would be a solution? I know that we can't use the Camera of the device using Javascript but is the rest ok?.
  • 公司在 Windows 上制作 iOS 应用程序是否有合法途径?
  • 如果其中一种方法是在虚拟机下运行 OS X...是否可以使用OS X Lion USB Thumb Drive 来实现
  • 我知道有一些 SDK,例如 Marmalade、Corona、DragonFire ……它们给了我们许可证,但它们是否 100% 可靠?如果我们使用这些 SDK 之一,苹果会给予我们支持吗?
  • Apple 是否会检查该应用程序是否是通过合​​法的 OS X 副本创建的?我的意思是,在编译代码时,是否有迹象表明 Apple 可以检查该应用程序是否是在不作弊的情况下制作的?
  • 在 OS X (VM) 上创建游戏会很难吗?
  • 如果我们有 Mac(迷你)...我们是否需要 Magic Touch 或 Magic Trackpad 来测试多点触控?或者只能通过按其中一个键加上左键单击来完成?
  • 创建 Web 应用程序将是一个解决方案?我知道我们不能使用 Javascript 来使用设备的摄像头,但其余的可以吗?。

Testing

测试

Some of our co-workers have iTouchs but we don't know if the company should buy a new one. Also, Would you suggest to get the oldest generation of iPod Touch for testing purposes or only the 3rd and 4th generation?

我们的一些同事有 iTouch,但我们不知道公司是否应该购买新的。另外,您是建议使用最老一代的 iPod Touch 进​​行测试还是仅使用第 3 代和第 4 代?

I hope you could understand me. Thanks in advance!

我希望你能理解我。提前致谢!

Update:

更新

I got this answers:

我得到了这个答案:

  • You will work over Windows with the respectively SDK
  • 您将使用各自的 SDK 在 Windows 上工作

Me: I know there isn't an official SDK for developing iOS apps on Windows from Apple.

我:我知道 Apple 没有用于在 Windows 上开发 iOS 应用程序的官方 SDK。

  • The programming language that we will use is the same it would be install on a PC or MAC. Me: Impossible?
  • 我们将使用的编程语言与安装在 PC 或 MAC 上的编程语言相同。我:不可能?

UpdateWe got the Mac. ":D"

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

采纳答案by Adam Robinson

While there are things like FlashBuilder, these solutions don't provide the performance or flexibility of an actual native application. As for virtualizing OS X, this is not an option. The EULA for all versions of OS X specifically prohibit hardware virtualization (though I believe Lion allows for it but only when running directly on genuine Apple hardware. In other words, there is no way to run OS X on any computer other than a Mac without violating the EULA.

虽然有 FlashBuilder 之类的东西,但这些解决方案不能提供实际本机应用程序的性能或灵活性。至于虚拟化 OS X,这不是一个选项。所有版本的 OS X 的 EULA 都明确禁止硬件虚拟化(尽管我相信 Lion 允许这样做,但仅当直接在真正的 Apple 硬件上运行时才允许。换句话说,没有办法在 Mac 以外的任何计算机上运行 OS X 没有 .违反 EULA。

回答by cyberfly

I dont have a Mac, but i setup a hackintosh (MacOSX running in pc) by following guide from this blog http://tonymacx86.blogspot.com/. If your pc spec is compatible, the Mac OSX will running flawlessly, just like in normal Mac.

我没有 Mac,但我按照此博客http://tonymacx86.blogspot.com/ 中的指南设置了 hackintosh(在 pc 中运行的 MacOSX)。如果您的 PC 规格兼容,Mac OSX 将完美运行,就像在普通 Mac 中一样。

Since you ask this question, I assume you dont want to fork a money to buy Mac, so setup a hackintosh machine is the best option for you. You just need to spend some money for buying legal copy of Mac OSX. Yeah I also setup the hackintosh in order to develop iphone apps on a pc.

既然你问这个问题,我假设你不想花钱买Mac,所以设置一台hackintosh机器是你最好的选择。您只需要花一些钱购买 Mac OSX 的合法副本。是的,我还设置了 hackintosh,以便在 PC 上开发 iphone 应用程序。

回答by jessecurry

Although there are always hacks and work-arounds you'll need a Mac for any serious iOS development. You can pick up a Mac Mini for under $1000, I'd be surprised if you could setup a Windows machine that could build iOS Apps for fewer than $1000 worth of man-hours... plus you'd probably end up having to constantly tinker to keep it working.

尽管总有一些技巧和变通办法,但任何严肃的 iOS 开发都需要 Mac。您可以以低于 1000 美元的价格购买一台 Mac Mini,如果您能以不到 1000 美元的工时设置一台可以构建 iOS 应用程序的 Windows 机器,我会感到惊讶……此外,您可能最终不得不不断地修补程序以使其正常工作。

  • AFAIK, Mac OS X doesn't reliably run in a VM on a Windows Machine, but that could have changed since I last checked.

  • Most of the cross-platform development tools fall back to HTML/Javascript-based technology that is run in an embedded browser and packaged with a custom tool, I'd tend to avoid those as the Apps that they produce will not feel native.

  • I don't believe that Apple checks to see where the code was built. Adobe's FlashBuilder can export to an iOS binary, those Apps are accepted by Apple.

  • Creating them shouldn't be hard... testing them may be a little slow, but you'll definitely want to test on real hardware early and often.

  • If you get the Mac Mini you may hold option and click to simulate a dual touch in the iPhone simulator, but for more significant multi-touch testing you'll need to target a real device.

  • Depending on your goals, a web app may be a good solution. You'll potentially lose some performance, and some control, but you may not need all that much to accomplish your task.

  • AFAIK,Mac OS X 不能可靠地在 Windows 机器上的 VM 中运行,但自从我上次检查以来,情况可能已经改变。

  • 大多数跨平台开发工具都回退到基于 HTML/Javascript 的技术,该技术在嵌入式浏览器中运行并与自定义工具打包在一起,我倾向于避免使用这些技术,因为它们生成的应用程序不会感觉是原生的。

  • 我不相信 Apple 会检查代码的构建位置。Adobe 的 FlashBuilder 可以导出为 iOS 二进制文件,这些应用程序被 Apple 接受。

  • 创建它们应该不难……测试它们可能有点慢,但您肯定希望尽早并经常在真实硬件上进行测试。

  • 如果您获得 Mac Mini,您可以按住 option 并单击以在 iPhone 模拟器中模拟双点触控,但对于更重要的多点触控测试,您需要针对真实设备。

  • 根据您的目标,Web 应用程序可能是一个不错的解决方案。你可能会失去一些性能和一些控制,但你可能不需要那么多来完成你的任务。

回答by Dancreek

My personal experience with IT has always been like pulling teeth to get them to allow/support any Apple product. Don't let them talk you into some patch work alternate system for making apps. Straight up OSX is far and away the best way to go, especially since you guys are talking about doing more later. Do it right from the start.

我个人在 IT 方面的经验一直就像拔牙让他们允许/支持任何 Apple 产品一样。不要让他们说服你使用一些补丁工作替代系统来制作应用程序。直接使用 OSX 无疑是最好的方法,尤其是因为你们正在谈论稍后做更多的事情。从一开始就做好。

回答by Rudy

  1. Is there a legal way for a company to make iOS apps on Windows?

    My advice is to try as hard as possible to get an Mac.

    But just to provide another alternative :

    Try Phonegap. It's basically a HTML5 wrapper, mainly used by app that needs to be published in multiple type of devices. However it also able to access native resourcelike cameraand storage, which you can see in their featurepage.

    If your concern is more into development machine, by using Phonegap you can develop an app in any OS. You don't need to buy multiple mac for all the developer.

    PhoneGap also have a service called PhoneGap buildwhich is actually a cloud service that able to build your code to multiple platforms, including Iphone. This is legal and you can publish it App store.

  2. If one of those ways is running OS X under a Virtual Machine... Is it possible to do it with OS X Lion USB Thumb Drive?

    No, You can only run OSX virtual Machine in OSX also.

  3. Creating games on OS X (VM) would be hard?

    It depends on the developer. But since the game should be tested in emulator, your question is not that relevant.

  4. In the case we get the Mac (mini)... Would we need the Magic Touch or Magic Trackpad to test multi-touch? Or is only possible doing it by pressing one of the keys plus the left click?

    Xcode Emulator able to simulate that. Read this blog

  5. Creating Web Apps would be a solution? I know that we can't use the Camera of the device using Javascript but is the rest ok?

    If you are using PhoneGap, it's basically web apps wrapped by native. It's still give you access to resource like Camera, Compass, Storage etc.

  1. 公司在 Windows 上制作 iOS 应用程序是否有合法途径?

    我的建议是尽可能努力地获得一台 Mac。

    但只是为了提供另一种选择:

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

    如果您更关心开发机器,通过使用Phonegap,您可以在任何操作系统上开发应用程序。您无需为所有开发人员购买多台 mac。

    PhoneGap 还有一个叫做PhoneGap build的服务,它实际上是一个云服务,能够将你的代码构建到多个平台,包括 Iphone。这是合法的,您可以在应用商店发布。

  2. 如果其中一种方法是在虚拟机下运行 OS X... 是否可以使用 OS X Lion USB 拇指驱动器来实现?

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

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

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

  4. 如果我们有 Mac(迷你)...我们是否需要 Magic Touch 或 Magic Trackpad 来测试多点触控?或者只能通过按其中一个键加上左键单击来完成?

    Xcode Emulator 能够模拟。阅读此博客

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

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

回答by King Popsicle

Now with adobe flashbuilder you can make iphone apps through windows http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.htmlit would all be coded in actionscript just like flash however looks pretty much alike. Personally I have never used it, i own a mac, but my school does cheers

现在有了 adobe flashbuilder,你可以通过 windows http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html制作 iPhone 应用程序,它会像 flash 一样用 actionscript 编码,但看起来很像一样。就我个人而言,我从未使用过它,我拥有一台 mac,但我的学校确实欢呼

Also I know you can put apps from this builder right into the app store just like the OS X process

我也知道你可以把这个构建器中的应用程序直接放到应用程序商店中,就像 OS X 进程一样

You cant put it directly on a thumbdrive because OS X boots differently, you would need to install a new boot loader on you computer, but it can be done, look up Hackintosh

你不能把它直接放在拇指驱动器上,因为 OS X 的启动方式不同,你需要在你的电脑上安装一个新的引导加载程序,但它可以做到,查找 Hackintosh

Finally , you do not need the magic touch pad, it is not possible to do multitouch while running on the simulator via OS X, you must put the app on your phone to test multitouch

最后,你不需要魔法触摸板,在模拟器上通过 OS X 运行时是不可能做多点触控的,你必须把应用程序放在你的手机上来测试多点触控

回答by Emile Cormier

Would you suggest to get the oldest generation of iPod Touch for testing purposes or only the 3rd and 4th generation?

您会建议使用最老一代的 iPod Touch 进​​行测试还是仅使用第 3 代和第 4 代?

The iOS 5 SDK has many new features that make app development easier. By the time your app is ready for release, most users will have moved on to iOS 5. It is my understanding that iOS 5 does not support 3rd-gen devices, so there's no point in obtaining those if you're going to use SDK 5.

iOS 5 SDK 具有许多使应用程序开发更容易的新功能。当您的应用准备发布时,大多数用户将转移到 iOS 5。据我所知,iOS 5 不支持第 3 代设备,因此如果您打算使用 SDK,那么获取这些设备是没有意义的5.