在没有Mac的情况下构建iOS应用?[关闭]


96

如果我错了,请纠正我。

我是移动开发的新手,我想开发一个应用程序提交给Apple Store。

但是我对Mac的价格感到沮丧,因为我考虑到要开发该应用程序的价格。

假设我确切地知道我想要什么以及如何对其进行编码。

如果要创建开发人员帐户并支付费用-然后借用我的朋友mac,编写代码,然后将代码提交给Apple。那是我需要Mac的全部吗?然后我可以通过Windows计算机上的iTunes访问所有统计信息吗?

有人可以告诉我我有妄想吗?


2
它可以通过您所说的方式实现,但是请您仔细考虑一下,如果您的应用程序需要任何更新或较小的错误或更改呢?每次您要请您的朋友帮个忙吗?
D-eptdeveloper 2013年

5
您需要Mac才能进行认真的iOS开发。期。毕竟它们并不那么昂贵。另外,请不要忘记要测试的iOS设备很少,未在可用硬件上进行测试的应用通常会出现缺陷。
Eiko 2013年

1
妄想部分以“我知道如何编写代码”开头……如果您编写自己的代码(即他人没有合同工作),则将需要大量测试和调试。想想几个星期才能启动一个值得向某人展示的项目。对其进行抛光并使其“值得购物”将是艰巨的工作。如果您已经是经验丰富的iOS开发人员,那么我真的只能想到一天之内在Mac上构建的最无用的应用程序(即“网站包装”)。
Eiko 2013年

可以在Linux上构建基于GCC的iOS工具链。Xcode不是编译器-只需生成证书即可将您的应用提交到AppStore。
顺磁牛角包

2
您可以搜索Hackintosh,它可以在Intel处理器上运行Mac OS,但是我认为这是非法的。
Borzh '16

Answers:


31

让我逐步告诉你几年前我也处于同样的情况。

所以我们有两个阶段

  1. iPhone / iPad(iOS)应用程序开发
  2. iPhone / iPad(iOS)应用程序开发并发布到iTunes Store

1. iPhone / iPad(iOS)应用程序开发

因此,如果您只想开发iOS应用程序,那么您无需支付任何费用,

您只需要Mac + XCode IDE

  1. 获取Mac Mini或Mac Machine
  2. 在Apple上免费创建开发者帐户
  3. 登录开发人员帐户后,您可以下载Xcode IDE的.dmg文件
  4. 就这样。

现在,您只需安装Xcode并开始开发iOS应用并使用Simulator进行测试/调试。

2. iPhone / iPad(iOS)应用程序开发并发布到iTunes Store

如要在iTunes Store上发布应用程式,您需要付费(例如$ 99美元/年)。

因此,对于完整的iOS开发设置,您需要

  1. 获取Mac Mini或Mac Machine
  2. 在Apple上免费创建开发者帐户
  3. 登录开发人员帐户后,您可以下载Xcode IDE的.dmg文件
  4. 支付99美元在iTunes上发布应用
  5. 在您的Apple帐户上创建用于开发/分发的证书
  6. 在Mac机器上下载所有证书,然后使用“钥匙串”工具安装到XCode中
  7. 至少获得一台iOS设备
  8. 在Apple帐户上注册设备
  9. 现在,您可以开发iOS应用,在Real Device上进行测试,还可以在iTunes Store上发布


但是问题明确指出“没有Mac?”
PF4Public,

27

从09/2017更新

无需拥有Mac ,就可以使用React Native + Expo开发iOS(和Android)应用程序。在开发应用程序时,您还可以在iOS Expo应用程序中运行iOS应用程序。(您甚至可以发布它以供其他人访问,但它只能在Expo应用程序中运行)。这是 Expo的页面,介绍如何生成独立应用程序。

该页面上的步骤:

exp通过运行安装npm install -g exp

:配置app.json(遵循这些原则):

{
   "expo": {
    "name": "Your App Name",
    "icon": "./path/to/your/app-icon.png",
    "version": "1.0.0",
    "slug": "your-app-slug",
    "sdkVersion": "17.0.0",
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourappname"
    },
    "android": {
      "package": "com.yourcompany.yourappname"
    }
   }
 }

:用以下命令启动exppackegerexp start

:跑exp build:android还是跑exp build:ios

系统将提示您输入一些信息。对于android,您可以选择1) Let Expo handle the process!是否没有密钥库(或者您不知道它是什么)。对于iOS,您将必须输入Apple开发人员凭证。然后,您可以提供分发证书或让博览会处理。

:偶尔,您将不得不返回并运行exp build:status命令以检查构建是否完成。如果完成,将为您提供直接链接.apk.ipa文件。

这种方法的唯一缺点是,它不像在Swift中编写iOS应用程序那样本机,并且您将不得不忍受在使用弱类型js,npm开发时可能遇到的一系列问题,并且它具有依赖性-其他图书馆问题的特定版本,以及其他内容。


其他框架(例如Qt和JavaFXPorts)也可以做到这一点吗?
Daniel Ziltener

@DanielZiltener我都不熟悉,但我认为答案是否定的。
wha7ever

26

在Windows上,您可以在虚拟机上使用Mac(这也许也可以在Linux上使用,但我尚未测试)。虚拟机基本上是一种在计算机上运行的程序,可让您在另一个操作系统的窗口中运行一个操作系统。确保硬盘上至少有60GB的可用空间。您最初下载的虚拟硬盘驱动器会占用10GB的空间,但是当您安装了用于开发iOS应用程序的所有必需程序时,其大小可以轻松增加到50GB(我建议保留几GB的余量,以防万一)。

以下是有关如何在Windows上安装Mac虚拟机的一些详细步骤:

  1. 安装VirtualBox

  2. 您必须在BIOS中启用虚拟化。要在Windows 10上打开BIOS,需要在按住开始Shift键的同时按开始菜单中的“重新启动”按钮。然后,您将获得带有某些选项的蓝屏。选择“疑难解答”,然后选择“高级选项”,然后选择“ UEFI固件设置”,然后选择“重新启动”。然后,计算机将重新启动并直接打开BIOS。在较旧版本的Windows上,请正常关闭计算机,按住F2键,然后重新启动计算机,F2直到进入BIOS 才释放。在某些计算机上,您可能需要按住另一个键F2

  3. 现在您已经在BIOS中,您需要启用虚拟化。您应该更改哪个设置取决于您使用的计算机。即使在两台具有相同Windows版本的计算机之间,这也可能有所不同。在我的计算机上,您需要Intel Virtual TechnologyConfiguration标签中将设置为Enabled。在其他计算机上,它可能位于Security -> Virtualization或中Advanced -> CPU Setup。如果找不到这些选项,请在Google中搜索。请勿像这样随意更改BIOS中的任何内容,否则可能会导致计算机问题。启用虚拟化后,保存更改并退出BIOS。这通常在标签中完成。enable virtualization (the kind of computer you have)Exit

  4. 下载此文件(我上传了以前从链接中下载的文件,该文件现在已损坏)。如果链接断开,请发表评论让我知道,我将尝试将文件上传到其他地方。打开7Z文件的密码为stackoverflow.com。该7Z文件包含一个VMDK文件,该文件将充当Mac虚拟机的硬盘驱动器。提取该VMDK文件。如果磁盘空间对您来说是个问题,则提取VMDK文件后,可以删除RAR文件,从而节省7GB。

  5. 打开在步骤1中安装的VirtualBox。在工具栏中,按“新建”按钮。然后为您的虚拟机选择一个名称(该名称不重要,我称其为“ Mac”)。在“类型”中,选择“ Mac OS X”,在“版本”中,选择“ Mac OS X 10.11 El Capitan(64位)”。

  6. 选择虚拟机可以使用的内存量。尝试平衡数量,因为内存太少会导致虚拟机性能降低,而内存太大会导致主机系统(Windows)内存不足,这将导致虚拟机和/或其他程序重新运行在Windows上崩溃。在具有4GB可用内存的计算机上,2GB足够了。不用担心,如果选择的金额很低,您将可以随时更改它(虚拟机正在运行时除外)。

  7. 在“硬盘”步骤中,选择“使用现有的虚拟硬盘文件”,然后单击下拉列表右侧的小文件夹图标。这将打开一个浏览窗口。选择您在步骤4中下载并提取的VMDK文件。

    在此处输入图片说明

    完成此操作后,单击“创建”。

  8. 在窗口左侧的列表中选择虚拟机,然后单击工具栏中的“设置”按钮。在系统->处理器中,选择2个CPU。如果以后意识到在步骤6中选择了会导致问题的内存量,则可以在系统->主板中进行更改。完成更改设置后,单击“确定”。

  9. 打开命令提示符(C:\Windows\System32\cmd.exe)。在其中运行以下命令,替换"Your VM Name"为您在第5步中称为虚拟机的任何命令(例如"Mac")(保留引号):

    cd "C:\Program Files\Oracle\VirtualBox\"
    VBoxManage.exe modifyvm "Your VM Name" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" W1234567980
  10. 现在,一切准备就绪,可以使用虚拟机了。在VirtualBox中,单击“开始”按钮,然后按照Mac的安装说明进行操作。在虚拟机上安装Mac之后,就可以像开发真实Mac一样开发iOS应用。

备注:如果要节省硬盘空间,可以压缩在步骤4中提取并在步骤7中使用的VMDK文件。为此,请右键单击它,选择“属性”,再单击“高级...”。按钮,然后选中“压缩内容以节省磁盘空间”复选框。这将使这个非常大的文件占用更少的磁盘空间,而不会使任何事情正常运行。我做到了,它在不丢失任何数据的情况下将VMDK文件的磁盘大小从50GB减小到40GB。


1
Vm工作正常。但这在我的游戏机上非常慢。
Reuel Ribeiro

@ReuelRibeiro您可能需要检查虚拟机的配置,以确保针对您的计算机进行了优化。这是有关该主题的有用文章:hanselman.com/blog/…–
Technoguyfication

2
在步骤9中,我必须添加VBoxManage setextradata“您的VM名称”“ VBoxInternal / Devices / efi / 0 / Config / DmiSystemSerial” W1234567980,以便能够使用我的Apple ID登录
ikleiman,

1
尽管这可能可行,但最新的xcode版本与Google驱动器上当前的IOS 10.11(El Captain)不兼容。您有更高版本的MacOS吗?
CularBytes

1
@RahulShah您可以在真正的Mac上做任何事情。
唐老鸭


13

您可以使用Phonegap(Cordova)在没有Mac的情况下开发iOS应用,但是您仍然需要Mac才能将您的应用提交到App Store。我们开发了一个云应用程序,它也可以在没有Mac https://www.wenz.io/ApplicationLoader的情况下发布您的应用程序。目前,我们处于测试阶段,您可以免费使用该服务。

最好的问候,史蒂芬·温兹

(我是网站的创建者)


1
我使用Wenz的应用程序加载器。为此,我创建了一个仅具有上传权限的特殊Apple ID。由于必须对IPA进行签名,因此即使您的密码泄露了,它仍然是安全的。
user1219721

无论如何,没有Mac即可生成IPA文件提交给您的服务?
12菱形菱形中没有角落

11

简短的回答:理论上是可以的,但这必须是您的非常好朋友,但同样,您可能更愿意购买二手的Mac-mini

长答案:您将需要很长时间使用这台Mac,具体取决于您的应用要求,开发技能以及与Apple的合作。例如:

  1. 您可能需要几天的时间来设置Xcode以及所需的SDK和库。
  2. 获得该开发者帐户可能需要一些时间,有时您可能会等待太多时间甚至无法审查您的请求。
  3. 首次提交申请时,您将需要等待一段时间(可能长达数周,甚至数月)才能审核您的应用。
  4. 每次您的应用被拒绝时,您都需要查找并解决问题(Apple并没有提供太多帮助,其他方面指出了您违反的准则),然后重新申请应用进行审核,然后再次等待。
  5. 每次尝试为已部署的应用程序应用补丁时,都必须对应用程序进行审查,并且以前合法的应用程序现在有可能违反新的准则,因此您需要重新申请并等待

因此,以我的经验,开发iOS应用程序是一个非常漫长的过程,甚至没有考虑实际的代码开发时间。您可以借用Mac这么长时间吗?


你们和另一个人都为我澄清了很多,所以我谢谢您
Cescy 2013年

1
别客气。我的看法是,对于一个没有经验的开发人员来说,这是一个iOS应用程序,是一个长远目标和一个伟大的承诺。您可以从一个Android应用开始,该应用的价格为25美元(终身开发许可证)。
yannicuLar 2013年


4

另外,如果您想省钱,则不必购买Mac。还有其他方法可以做到这一点:

1.)您几乎可以使用任何操作系统在虚拟机中运行最新的MacOS(请查看YouTube)。我使用这种方法的时间很长,在带有VMWare的Windows上没有任何问题。

2.) Hackintosh。将MacOS安装到您的PC。您必须具有兼容的组件,但是如果有的话,这是最好的方法,因为您可以消除VM中的滞后...我现在正在使用它。完善。在我的笔记本电脑上,但是请不要告诉苹果,因为实际上这是非法的

3.)如果要使用最少的UI制作简单的应用程序,则可以使用Theos。也可以使用Theos来创建cydia调整。唯一的问题:codesign。如果要在App Store上发布应用,则仍必须具有MacOS,但是如果要在家制作应用,则可以使用CydiaImpactor用Apple ID签名应用程序。

我使用所有这些方式,并且一切正常。如果您不想通过安装Hackintosh花费很多时间,那么我的VM是最好的解决方案。


2

您可以使用Smartface使用javascript开发应用程序,并直接在没有Mac的情况下直接部署到商店。他们的发言如下。

借助Cloud Build模块,Smartface消除了应用程序部署的所有麻烦。您无需担心管理代码签名证书和使用Mac来对应用程序进行签名的麻烦。Smartface Cloud可以将您所有的iOS证书和Android密钥库存储在一个地方,并且签名和构建完全在云中。无论使用哪种操作系统,都可以获取存储就绪(或企业发行版)二进制文件。Smartface使您摆脱了锁定到Mac的束缚,并允许您使用自己喜欢的操作系统进行开发。

https://www.smartface.io/smartface/


2

像React Native和Ionic这样的大多数框架都允许您在它们的服务器上构建。这意味着它们可以帮助您编译并为您提供.ipa文件。

问题是您需要Xcode或应用程序加载器才能将您的应用程序提交到Apple App Store Connect。两者仅在OSX上可用。要克服此解决方案,您有2个我知道的选择

  1. 虚拟租用Mac。http://www.macincloud.com
  2. 使用可帮助您上传应用程序的网站(您需要具有.ipa文件)。http://www.connectuploader.com

1

我的经验是,Ionic Pro(https://ionicframework.com/pro)可以完成大部分开发和发布工作,但是在以下步骤中,您仍然需要Mac或Mac在云中:

  • 创建.p12认证文件
  • 将.ipa文件上传到App Store

创建认证文件后,可以将其上传到Ionic Pro。您可以在云中使用适当的凭据构建.ipa文件。但是不幸的是,我没有找到其他方法来将.ipa文件上传到App Store,仅使用Mac的Application Loader。

因此,我决定在云帐户中使用随用随付的Mac(您只为登录的分钟付费),因为我在Mac上花费的时间非常有限(每个App发布只有几分钟的时间)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.