在没有 Mac 的情况下开发一个 iOS 应用程序?

如果我说错了,请纠正我。

我是移动开发的新手,我想开发一个应用程序提交到苹果商店。

But I am heavily discouraged by the prices of the macs that I am developing the app in mind.

假设我知道自己想要什么,以及如何编写代码。

如果我要创建一个开发者账户并支付费用——那么就借用我的朋友 mac,编写代码并将我的代码提交给苹果。这就是我需要 Mac 的原因吗?然后我就可以通过 iTunes 在我的 Windows 电脑上访问所有的统计数据等?

有人能告诉我,我有妄想症吗?

171003 次浏览

简短的回答: 理论上是的,但这必须是你的一个非常好的朋友,然后再一次,你可能会更喜欢买一个二手的 Mac-mini!

TLDR: 你将需要这台 Mac 很长一段时间,这取决于你的应用程序需求,你的开发技能,以及你在苹果的运气。例如:

  1. 您可能需要一些时间来设置 Xcode 以及所需的 SDK 和库。
  2. 可能需要一些时间来获得开发者帐户,有时你可以等待太长的时间,只是让你的请求审查。
  3. 当你第一次提交你的应用程序时,你将不得不等待,可能长达几周,甚至几个月,让你的应用程序审查。
  4. 每次你的应用程序被拒绝时,你需要找到并修复你的问题(没有苹果的帮助,除了指出你违反了指导原则) ,然后重新提交你的应用程序进行审查,然后再次等待。
  5. 每次你尝试为已经部署的应用程序应用补丁时,你必须让你的应用程序得到审查,有可能你以前合法的应用程序现在打破了一个新的指导方针,所以你重新提交和等待。

因此,根据我的经验,开发一个 iOS 应用程序是一个非常漫长的过程,甚至不考虑实际的代码开发时间。你能借一台 Mac 那么久吗?

让我一步一步地告诉你,几年前我也是这样的处境。

我们有两个阶段

  1. iPhone/iPad (iOS) app development
  2. IPhone/iPad (iOS)应用程序开发和发布到 iTunes 商店

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

因此,如果你只是想开发 iOS 应用程序,你不想支付任何费用,

You just need Mac + XCode IDE

  1. 买迷你或者机器 Mac
  2. 免费在苹果上创建开发者账户
  3. 登录开发人员帐户后,可以下载 Xcode IDE 的.dmg 文件
  4. 仅此而已。

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

2. iPhone/iPad (iOS)应用程序开发和发布到 iTunes 商店

在 iTunes 商店发布你的应用程序需要支付费用(例如99美元/年)。

So For complete iOS Development Setup you need

  1. 买迷你或者机器 Mac
  2. Create Developer Account on Apple its free
  3. 登录开发人员帐户后,可以下载 Xcode IDE 的.dmg 文件
  4. 支付99美元在 iTunes 上发布应用程序
  5. 在您的苹果帐户上创建开发/分发证书
  6. 下载 Mac 机器上的所有证书并使用 Keychain 工具安装到 XCode 中
  7. 获取至少一个 iOS 设备
  8. 在你的苹果账户上注册你的设备
  9. 现在你可以开发 iOS 应用程序,在真实设备上测试,也可以在 iTunes 商店上发布

Update 英特尔 XDK 不再可用。

你可以使用 英特尔 XDK,你可以在没有 Mac 的情况下为 iOS 开发和发布应用程序。

Click here for detail.

一些云解决方案已经存在,比如 Macincloud(不是免费的)

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

最好的问候, Steffen Wenz

(我是这个网站的创始人)

XAMARIN 交叉平台

你可以使用 Xamarin,它是一个与 IDE Visual Studio 的跨平台,并将 Xamarin 集成到其中。用 xamarin 编写代码并使用 C # 代码制作 ios 应用程序非常简单。

你可以使用 Smartface 来使用 javascript 开发你的应用程序,也可以在没有 Mac 的情况下直接部署到商店。他们说的在下面。

通过使用 CloudBuild 模块,Smartface 消除了应用程序部署的所有麻烦。您不需要担心管理代码签名证书和使用 Mac 对应用程序进行签名。 Smartface Cloud 可以将所有的 iOS 证书和 Android 密钥存储在一个地方,签名和构建完全在云中进行。无论使用哪种操作系统,都可以获得可存储的(或企业发行版)二进制文件。Smartface 将您从 Mac 的锁定中解放出来,并允许您使用自己喜欢的操作系统进行开发。

Https://www.smartface.io/smartface/

另外,如果你想省钱,你不一定要买一台 Mac。还有其他方法可以做到这一点:

1)你可以使用几乎任何操作系统在虚拟机中运行最新的 MacOS (看看 YouTube)。我使用这个方法真的很长时间没有任何问题的窗口与 VMWare。

2) Hackintosh.安装 MacOS 到你的电脑。你必须有兼容的组件,但如果你有,这是最好的方式,因为你消除了在虚拟机的滞后... 我在这个时候使用这个。好极了。在我的笔记本电脑上,但请不要告诉苹果,因为这实际上是非法的

3) 如果你正在使用最少的 UI 制作简单的应用程序,你可以使用 提奥斯。也与 Theos 你可以创建 Cydia 微调。只有一个问题: 共同设计。如果你想在 App Store 上发布应用程序,你仍然必须使用 MacOS,但是如果你想在家里制作应用程序,你可以使用 CydiaImpactor以苹果 ID 签署应用程序。

我用了所有这些方法,一切都奏效了。通过我的虚拟机是最好的解决方案,如果你不想花很多时间安装 Hackintosh。

在 Windows 上,您可以在虚拟机上使用 Mac (这可能也适用于 Linux,但我还没有测试过)。虚拟机基本上是您在计算机上运行的一个程序,它允许您在另一个操作系统内的一个窗口中运行一个操作系统。确保你的硬盘上至少有60GB 的空闲空间。你下载的虚拟硬盘最初占用10GB,但是当你安装了开发 iOS 应用程序所需的所有程序后,它的容量可以很容易地增加到50GB (我建议留出一些 GB 的空白以防万一)。

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

  1. 安装 VirtualBox

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

  3. 既然已经在 BIOS 中,就需要启用虚拟化。应该更改哪个设置取决于您使用的是哪台计算机。即使在两台具有相同版本 Windows 的计算机之间,这种情况也可能有所不同。在我的计算机上,您需要将 Configuration选项卡中的 Intel Virtual Technology设置为 Enabled。在其他计算机上,它可能在例如 Security -> VirtualizationAdvanced -> CPU Setup中。如果你找不到这些选项中的任何一个,在谷歌上搜索 enable virtualization (the kind of computer you have)。不要随意更改 BIOS 中的任何内容,否则可能会导致计算机出现问题。启用虚拟化后,保存更改并退出 BIOS。这通常在 Exit选项卡中完成。

  4. 下载 这份文件(我和上传者没有任何关系,但是我自己用过,所以我确定没有病毒)。如果链接被破坏,发表评论让我知道,我会尝试上传到其他地方的文件。打开7Z 文件的密码是 stackoverflow.com。这个7Z 文件包含一个 VMDK 文件,它将作为 Mac 虚拟机的硬盘驱动器。解压缩 VMDK 文件。如果磁盘空间对您来说是个问题,那么一旦解压缩了 VMDK 文件,您就可以删除7Z 文件,从而节省7GB 的空间。

  5. Open VirtualBox that you installed in step 1. In the toolbar, press the New button. Then choose a name for your virtual machine (the name is unimportant, I called it "Mac"). In "Type", select "Mac OS X" and in "Version" select "macOS 10.13 High Sierra (64 bit)" (the Mac version you will install on the virtual machine is actually Catalina, but VirtualBox doesn't have that option yet and it works just fine if VirtualBox thinks it's High Sierra).

    将第4步中提取的 VMDK 文件移动到“ Machine Folder”下列出的文件夹(在上面的屏幕快照中是 C:\Users\myname\VirtualBox VMs)也是一个好主意(尽管不是必需的)。

  6. 选择虚拟机可以使用的内存量。尽量平衡这个数量,因为内存太少会导致虚拟机性能低下,而内存太多会导致你的主机系统(Windows)内存不足,从而导致虚拟机和/或其他在 Windows 上运行的程序崩溃。在一台有4GB 可用内存的计算机上,2GB 是一个很好的数量。不要担心,如果您选择了一个坏数额,您将能够随时更改它(除非虚拟机正在运行)。

  7. 在硬盘步骤中,选择“使用现有的 VHD格式文件”,然后单击拖放列表右侧的小文件夹图标。这将打开一个新的窗口。在这个新窗口中,点击左上角的“添加”按钮,这将打开一个浏览窗口。选择您在步骤4中下载并解压缩的 VMDK 文件,然后单击“选择”。

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

  8. 选择窗口左侧列表中的虚拟机,单击工具栏中的“设置”按钮。在 System-> Processor 中,选择2 CPU; 在 Network-> Attached to 中,选择 BridgeAdapter。如果您后来意识到您在步骤6中选择了一个导致问题的内存量,您可以在 System-> Mother board 中更改它。更改完设置后,单击“确定”。

  9. 打开命令提示符(C:\Windows\System32\cmd.exe)。在这里运行以下命令,用步骤5中所调用的虚拟机替换 "Your VM Name"(例如 "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" C02L280HFMR7
    
  10. 现在,您可以使用虚拟机了。在 VirtualBox 中,单击 Start 按钮并按照 Mac 的安装说明操作。一旦你在虚拟机上安装了 Mac,你就可以开发你的 iOS 应用程序,就像你拥有一台真正的 Mac 一样。

备注: 如果要节省硬盘空间,可以压缩在步骤4中提取并在步骤7中使用的 VMDK 文件。要做到这一点,右键单击它,选择属性,单击右下角的高级... 按钮,并选中复选框“压缩内容以节省磁盘空间”。这将使这个非常大的文件占用更少的磁盘空间,而不会降低任何东西的工作效率。我这样做了,它在不丢失任何数据的情况下将 VMDK 文件的磁盘大小从50GB 减少到40GB。

2017年9月更新

使用 React Native + 博览会开发 iOS (同时使用 Android)应用程序而无需拥有 Mac 是可能的。在开发 iOS 应用程序时,您还可以在 IOS Expo 应用程序中运行它。(你甚至可以把它发布给其他人使用,但它只能在 Expo 应用程序中运行)。关于如何生成独立应用程序的博览会 这是佩奇

这一页的步骤:

一个 : 通过运行 npm install -g exp安装 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"
}
}
}

exp start启动 exp封装器

4 : 运行 exp build:androidexp build:ios

系统将提示您输入一些内容。对于 android 你可以选择 1) Let Expo handle the process!如果你没有密钥存储库(或者如果你不知道它是什么)。对于 iOS,你必须输入你的苹果开发者证书。然后您可以提供发行证书或让世博会处理它。

5 : 有时您必须返回并运行 exp build:status命令来检查构建是否完成。如果完成您将提供一个直接链接到 .apk.ipa文件。

这种方法的唯一缺点是,它不会像在 Swift 中编写 iOS 应用程序那样原生,而且你将不得不忍受在使用弱类型的 js、 npm 和 某个其他库的特定版本的依赖关系问题以及其他东西开发时可能遇到的一系列问题。

My experience is that Ionic Pro (https://ionicframework.com/pro) can do the most of the Development and Publish job but you still need Mac or Mac in cloud at these steps:

  • P12认证文件
  • 将. ipa 文件上传到 AppStore

在您创建您的认证文件后,您可以将其上传到 Ionic Pro。你可以建造。在云中具有适当凭据的 IPA 文件。但不幸的是,我没有找到其他方法来上传。Ipa 文件到应用程序商店,只有从 Mac 的应用程序加载器。

因此,我决定在云计算账户中使用现收现付的 Mac (你只需要登录几分钟就可以付费) ,因为我在 Mac 上花费的时间非常有限(每个应用程序发布只需要几分钟)。

大多数框架,如 React NativeandIonic,允许您在他们的服务器上构建。这意味着它们可以帮助您编译并为您提供。IPA 文件。

The problem is you need Xcode or Application loader to submit your app to Apple App Store Connect. Both of these are only available on OSX. To overcome this solution you have 2 options that I am aware of

  1. 实际上是租 Mac http://www.macincloud.com
  2. Use website that helps you to upload your app (You need to have .ipa file). http://www.connectuploader.com