【问题标题】:Build an iOS app without owning a mac? [closed]在没有 Mac 的情况下构建 iOS 应用程序? [关闭]
【发布时间】:2013-09-15 08:54:42
【问题描述】:

如果我错了,请纠正我。

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

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

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

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

有人能告诉我我有错觉吗?

【问题讨论】:

  • 它可能会以您所说的方式实现,但请考虑一下,如果您的应用程序需要任何更新或小错误或更改,那么呢?每次你都会请朋友帮忙?
  • 您需要一台 Mac 来进行认真的 iOS 开发。时期。毕竟它们并没有那么贵。并且不要忘记在少数 iOS 设备上进行测试 - 未在可用硬件上进行测试的应用程序通常会显示缺陷。
  • 妄想部分以“我知道如何编写代码”开头...如果您自己编写代码(即其他人没有合同工作),您将需要很多的测试和调试。考虑几个星期来运行一个值得向某人展示的项目。对其进行抛光并使其“值得购买”将是一项艰巨的工作。我真的只能想到在一天之内在 Mac 上构建的最无用的应用程序(即“网站包装器”)如果您已经是经验丰富的 iOS 开发人员。
  • 可以在 Linux 上构建基于 GCC 的 iOS 工具链。 Xcode 不是编译器——它只需要生成证书以将您的应用程序提交到 AppStore。
  • 你可以搜索 Hackintosh,它允许在 Intel 处理器上运行 Mac OS,但我认为这是非法的。

标签: ios iphone


【解决方案1】:

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

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

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

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

【讨论】:

  • 你和其他人都为我澄清了很多,所以我谢谢你
  • 不客气。在我看来,一个面向没有经验的开发者的 iOS 应用程序,是一个远大的目标和一个伟大的承诺。你可以先从一个 25 美元(终身开发许可证)的 Android 应用开始。
【解决方案2】:

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

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

  1. 安装VirtualBox

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

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

  4. 下载this file(我和上传的人没有关系,但我自己用过,所以我确定没有病毒)。如果链接损坏,请发表评论让我知道,我会尝试将文件上传到其他地方。打开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。

【讨论】:

  • 虚拟机工作正常。但是在我的机器上它很慢,这是一台游戏机。
  • @ReuelRibeiro 您可能需要检查虚拟机的配置以确保它已针对您的计算机进行了优化。这是一篇关于该主题的有用文章:hanselman.com/blog/…
  • 在第 9 步,我必须添加 VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" W1234567980 才能使用我的 Apple ID 登录
  • 虽然这可能有效,但最新的 xcode 版本与当前在 google 驱动器上的 IOS 10.11 (El Captain) 不兼容。你有更高版本的 MacOS 吗?
  • @RahulShah 你可以做任何你可以在真正的 Mac 上做的事情。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

    更新 英特尔 XDK 不再可用。

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

    Click here 了解详情。

    【讨论】:

    • 英特尔 XDK 已逝世... RIP
    【解决方案5】:

    2017 年 9 月更新

    可以使用React Native + Expo 开发iOS(和Android 同时)应用程序,而无需拥有Mac。您还可以在开发时在iOS Expo app 中运行您的 iOS 应用程序。 (您甚至可以发布它供其他人访问,但它只能在 Expo 应用程序中运行)。来自 Expo 的 Here is page 关于如何生成独立应用程序。

    该页面的步骤:

    :通过运行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开头exppackeger

    四个:运行exp build:androidexp build:ios

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

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

    这种方法的唯一缺点是它不像在 Swift 中编写 iOS 应用程序那样原生,而且您将不得不忍受在使用弱类型 js、npm 和这是dependency-on-particular-version-of-some-other-library 问题和其他内容。

    【讨论】:

    • 这是否也适用于其他框架,例如Qt 和 JavaFXPorts?
    • @DanielZiltener 我都不熟悉,但我认为答案是否定的。
    【解决方案6】:

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

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

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

    所以我决定在云帐户中使用即用即付的 Mac(您只需为登录的分钟数付费),因为我在 Mac 上花费的时间非常有限(每次发布应用程序只需几分钟)。

    【讨论】:

      【解决方案7】:

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

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

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

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

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

      【讨论】:

        【解决方案8】:

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

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

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

        【讨论】:

          【解决方案9】:

          XAMARIN 跨平台

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

          【讨论】:

          • 可以,但是编译需要mac。
          【解决方案10】:

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

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

          (我是网站的创建者)

          【讨论】:

          • 我使用 Wenz 的应用程序加载器。为此,我创建了一个只有上传权限的特殊 Apple ID。由于您的 IPA 必须签名,因此即使您的密码泄露,它仍然是安全的。
          • 有没有可以在没有 mac 的情况下生成 IPA 文件来提交给您的服务?
          【解决方案11】:

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

          所以我们有两个阶段

          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 应用程序并使用模拟器进行测试/调试..

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

          在 iTunes 商店发布您的应用需要付费(例如 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 应用,在真机上进行测试,也可以在 iTunes Store 上发布

          【讨论】:

          【解决方案12】:

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

          【讨论】:

          猜你喜欢
          • 2020-10-21
          • 2015-11-04
          • 2020-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-22
          相关资源
          最近更新 更多