109

如果我错了,请纠正我。

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

但我对我正在开发该应用程序的 Mac 的价格感到非常沮丧。

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

如果我要创建一个开发者帐户并支付费用 - 然后借我朋友的 mac,编写代码并将我的代码提交给苹果。这就是我需要mac的全部吗?然后我就可以通过 Windows 计算机上的 iTunes 访问所有统计数据等?

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

4

12 回答 12

38

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

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

  1. 安装VirtualBox

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

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

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

  5. 打开您在步骤 1 中安装的 VirtualBox。在工具栏中,按新建按钮。然后为您的虚拟机选择一个名称(名称不重要,我称之为“Mac”)。在“类型”中选择“Mac OS X”并在“版本”中选择“macOS 10.13 High Sierra (64 bit)”(您将在虚拟机上安装的 Mac 版本实际上是 Catalina,但 VirtualBox 没有该选项但是,如果 VirtualBox 认为它是 High Sierra,它就可以正常工作)。

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

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

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

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

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

  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" C02L280HFMR7
    
  10. 现在一切准备就绪,您可以使用虚拟机了。在 VirtualBox 中,单击开始按钮并按照 Mac 的安装说明进行操作。在虚拟机上安装 Mac 后,您可以像拥有真正的 Mac 一样开发您的 iOS 应用程序。

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

于 2017-05-13T08:03:58.333 回答
32

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

所以我们有两个阶段

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

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

所以如果你只想开发 iOS 应用程序你不想支付任何费用,

你只需要 Mac + XCode IDE

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

现在您只需安装 Xcode 并开始开发 iOS 应用程序并使用模拟器进行测试/调试..

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

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

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

  1. 获取 Mac Mini 或 Mac 机器
  2. 在 Apple 上免费创建开发者帐户
  3. 登录开发者帐户后,您可以下载 Xcode IDE 的 .dmg 文件
  4. 支付 99 美元在 iTunes 上发布应用程序
  5. 在您的 Apple 帐户上创建用于开发/分发的证书
  6. 在 Mac 机器上下载所有证书并使用 Keychain 工具安装到 XCode
  7. 获取至少一台 iOS 设备
  8. 在您的 Apple 帐户上注册您的设备
  9. 现在您可以开发 iOS 应用程序,在 Real Device 上进行测试,也可以在 iTunes Store 上发布
于 2013-09-11T11:42:45.710 回答
28

从 09/2017 更新

可以使用React Native + Expo开发 iOS(和 Android 同时)应用程序,而无需拥有 mac。您还可以在开发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:androidexp build:ios

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

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

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

于 2017-09-03T14:53:10.527 回答
17

存在一些云解决方案,例如macincloud(不是免费的)

于 2014-11-10T23:55:43.477 回答
13

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

TLDR:您将需要这台 Mac 很长时间,具体取决于您的应用程序要求、您的开发技能以及您在 Apple 的运气。例如:

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

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

于 2013-09-11T11:20:36.133 回答
13

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

最好的问候, 斯蒂芬温茨

(我是网站的创建者)

于 2016-07-12T08:48:10.330 回答
12

更新英特尔 XDK 不再可用。

您可以使用Intel XDK开发和发布适用于 iOS 的应用程序,而无需使用 mac。

点击这里了解详情。

于 2014-02-14T11:31:49.827 回答
4

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

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

2.)哈金托什。将 MacOS 安装到您的 PC。你必须有兼容的组件,但如果你有,这是最好的方法,因为你消除了 VM 中的滞后......我这次正在使用它。完美的。在我的笔记本电脑上,但请不要告诉苹果,因为这实际上是非法的

3.)如果您正在制作具有最少 UI 的简单应用程序,您可以使用Theos。您还可以使用 Theos 创建 cydia 调整。只有一个问题:协同设计。如果您想在 App Store 上发布应用程序,您仍然必须拥有 MacOS,但如果您想在家制作应用程序,您可以使用CydiaImpactor使用 Apple ID 对应用程序进行签名。

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

于 2017-03-09T20:35:16.737 回答
4

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

问题是您需要 Xcode 或 Application loader 才能将您的应用程序提交到 Apple App Store Connect。这两个都只在 OSX 上可用。为了克服这个解决方案,您有 2 个我知道的选项

  1. 以虚拟方式租用 mac。http://www.macincloud.com
  2. 使用可帮助您上传应用程序的网站(您需要有 .ipa 文件)。http://www.connectuploader.com
于 2019-02-11T07:47:07.167 回答
2

您可以使用 Smartface 使用 javascript 开发您的应用程序,并无需 Mac 直接部署到商店。他们说的在下面。

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

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

于 2017-03-05T18:02:59.533 回答
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 发布只需几分钟)。

于 2018-04-24T07:53:11.683 回答
-9

XAMARIN CROSS 平台

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

于 2016-11-22T06:31:10.623 回答