如果我错了,请纠正我。
我是移动开发的新手,我想开发一个应用程序提交到苹果商店。
但我对我正在开发该应用程序的 Mac 的价格感到非常沮丧。
假设我确切地知道我想要什么以及如何编码。
如果我要创建一个开发者帐户并支付费用 - 然后借我朋友的 mac,编写代码并将我的代码提交给苹果。这就是我需要mac的全部吗?然后我就可以通过 Windows 计算机上的 iTunes 访问所有统计数据等?
有人可以告诉我我是妄想吗?
在 Windows 上,您可以在虚拟机上使用 Mac(这可能也适用于 Linux,但我尚未测试)。虚拟机基本上是您在计算机上运行的程序,它允许您在另一个操作系统的窗口中运行一个操作系统。确保您的硬盘驱动器上至少有 60GB 的可用空间。您将下载的虚拟硬盘最初占用 10GB,但是当您安装了开发 iOS 应用程序所需的所有程序后,它的大小可以轻松增加到 50GB(我建议留出几 GB 的余量以防万一)。
以下是如何在 Windows 上安装 Mac 虚拟机的一些详细步骤:
安装VirtualBox。
您必须在 BIOS 中启用虚拟化。要在 Windows 10 上打开 BIOS,您需要Shift在按住开始菜单中的重新启动按钮的同时按住该键。然后你会得到一个带有一些选项的蓝屏。选择“疑难解答”,然后选择“高级选项”,然后选择“UEFI 固件设置”,然后选择“重新启动”。然后您的计算机将重新启动并直接打开 BIOS。在旧版本的 Windows 上,正常关闭计算机,按住键,再次启动计算机,直到进入 BIOSF2后再释放。F2在某些计算机上,您可能需要按住另一个键而不是F2.
现在您在 BIOS 中,您需要启用虚拟化。您应该更改的设置取决于您使用的计算机。即使在具有相同 Windows 版本的两台计算机之间,这也可能会有所不同。在我的电脑上,您需要Intel Virtual Technology
在Configuration
选项卡中设置为Enabled
. 在其他计算机上,它可能位于 exampleSecurity -> Virtualization
或Advanced -> CPU Setup
. 如果您找不到这些选项中的任何一个,请在 Google 上搜索. 不要随意更改 BIOS 中的任何内容,否则可能会导致计算机出现问题。启用虚拟化后,保存更改并退出 BIOS。这通常在选项卡中完成。enable virtualization (the kind of computer you have)
Exit
下载这个文件(我和上传它的人没有任何关系,但我自己用过,所以我确定没有病毒)。如果链接损坏,请发表评论让我知道,我会尝试将文件上传到其他地方。打开 7Z 文件的密码是stackoverflow.com
. 这个 7Z 文件包含一个 VMDK 文件,它将作为 Mac 虚拟机的硬盘驱动器。提取该 VMDK 文件。如果磁盘空间对您来说是个问题,一旦您提取了 VMDK 文件,您可以删除 7Z 文件,从而节省 7GB。
打开您在步骤 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
)。
选择您的虚拟机可以使用的内存量。尝试平衡数量,因为内存太少会导致虚拟机性能低下,而内存过多会导致您的主机系统(Windows)内存不足,这将导致虚拟机和/或您的其他程序在 Windows 上重新运行会崩溃。在具有 4GB 可用内存的计算机上,2GB 是一个不错的数量。如果您选择了错误的数量,请不要担心,您可以随时更改它(虚拟机运行时除外)。
在硬盘步骤中,选择“使用现有的虚拟硬盘文件”,然后单击下拉列表右侧的小文件夹图标。这将打开一个新窗口。在该新窗口中,单击左上角的“添加”按钮,这将打开一个浏览窗口。选择您在第 4 步中下载并解压的 VMDK 文件,然后单击“选择”。
完成此操作后,单击“创建”。
在窗口左侧的列表中选择虚拟机,然后单击工具栏中的“设置”按钮。在 System -> Processor 中,选择 2 个 CPU;并在 Network -> Attached to 中,选择 Bridged Adapter。如果您稍后意识到您在步骤 6 中选择了导致问题的内存量,您可以在 System -> Motherboard 中更改它。完成更改设置后,单击“确定”。
打开命令提示符 ( 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
现在一切准备就绪,您可以使用虚拟机了。在 VirtualBox 中,单击开始按钮并按照 Mac 的安装说明进行操作。在虚拟机上安装 Mac 后,您可以像拥有真正的 Mac 一样开发您的 iOS 应用程序。
备注:如果要节省硬盘空间,可以压缩在步骤 4 中提取并在步骤 7 中使用的 VMDK 文件。为此,右键单击它,选择属性,单击高级...右下角的按钮,然后选中复选框“压缩内容以节省磁盘空间”。这将使这个非常大的文件占用更少的磁盘空间,而不会降低任何工作效率。我做到了,它将 VMDK 文件的磁盘大小从 50GB 减少到 40GB,而不会丢失任何数据。
让我一步一步地告诉你几年前我也处于同样的情况。
所以我们有两个阶段
1. iPhone/iPad (iOS) 应用开发
所以如果你只想开发 iOS 应用程序你不想支付任何费用,
你只需要 Mac + XCode IDE
现在您只需安装 Xcode 并开始开发 iOS 应用程序并使用模拟器进行测试/调试..
2. iPhone/iPad (iOS) 应用程序开发和发布到 iTunes Store
要在 iTunes 商店上发布您的应用程序,您需要付费(例如 99 美元/年)。
因此,对于完整的 iOS 开发设置,您需要
可以使用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"
}
}
}
三:启动exp
packegerexp start
四:运行exp build:android
或exp build:ios
。
系统将提示您输入一些内容。对于 android,您可以选择1) Let Expo handle the process!
是否没有密钥库(或者如果您不知道它是什么)。对于 iOS,您必须输入您的 Apple 开发人员凭据。然后您可以提供发行证书或让expo处理。
五:偶尔您将不得不返回并运行exp build:status
命令以检查您的构建是否完成。如果完成,您将获得一个直接链接.apk
或.ipa
文件。
这种方法的唯一缺点是它不像在 Swift 中编写 iOS 应用程序那样原生,而且您将不得不忍受在使用弱类型 js、npm 和它的依赖项进行开发时可能遇到的一系列问题 -关于某些其他库问题的特定版本和其他内容。
存在一些云解决方案,例如macincloud(不是免费的)
简短的回答:理论上是的,但这必须是你的一个非常好的朋友,再说一遍,你可能更喜欢买一个二手的 mac-mini!
TLDR:您将需要这台 Mac 很长时间,具体取决于您的应用程序要求、您的开发技能以及您在 Apple 的运气。例如:
因此,根据我的经验,iOS 应用程序的开发是一个非常漫长的过程,甚至没有考虑实际的代码开发时间。你能借一台 Mac 这么久吗?
您可以在没有 Mac 的情况下使用 Phonegap (Cordova) 开发 iOS 应用程序,但您仍然需要 Mac 才能将您的应用程序提交到 App Store。我们开发了一个云应用程序,它也可以在没有 Mac 的情况下发布您的应用程序https://www.wenz.io/ApplicationLoader。目前我们处于测试阶段,您可以免费使用该服务。
最好的问候, 斯蒂芬温茨
(我是网站的创建者)
此外,如果您想节省一些钱,则不必购买 Mac。还有其他方法可以做到这一点:
1.)您几乎可以使用任何操作系统在虚拟机中运行最新的 MacOS(查看 YouTube)。我在使用 VMWare 的 Windows 上使用这种方法很长时间没有任何问题。
2.)哈金托什。将 MacOS 安装到您的 PC。你必须有兼容的组件,但如果你有,这是最好的方法,因为你消除了 VM 中的滞后......我这次正在使用它。完美的。在我的笔记本电脑上,但请不要告诉苹果,因为这实际上是非法的
3.)如果您正在制作具有最少 UI 的简单应用程序,您可以使用Theos。您还可以使用 Theos 创建 cydia 调整。只有一个问题:协同设计。如果您想在 App Store 上发布应用程序,您仍然必须拥有 MacOS,但如果您想在家制作应用程序,您可以使用CydiaImpactor使用 Apple ID 对应用程序进行签名。
我使用了所有这些方法并且一切正常。如果您不想花费大量时间安装 Hackintosh,那么通过我的 VM 是最好的解决方案。
大多数像 React Native 和 Ionic 这样的框架都允许你在他们的服务器上构建。这意味着他们可以帮助您编译并为您提供 .ipa 文件。
问题是您需要 Xcode 或 Application loader 才能将您的应用程序提交到 Apple App Store Connect。这两个都只在 OSX 上可用。为了克服这个解决方案,您有 2 个我知道的选项
您可以使用 Smartface 使用 javascript 开发您的应用程序,并无需 Mac 直接部署到商店。他们说的在下面。
借助 Cloud Build 模块,Smartface 消除了应用程序部署的所有麻烦。您无需担心管理代码签名证书和使用 Mac 为您的应用程序签名。Smartface Cloud 可以将您所有的 iOS 证书和 Android 密钥库存储在一个地方,并且签名和构建完全在云端。无论您使用哪种操作系统,您都可以获得存储就绪(或企业分发)的二进制文件。Smartface 让您摆脱对 Mac 的束缚,让您可以使用自己喜欢的操作系统进行开发。
我的经验是 Ionic Pro ( https://ionicframework.com/pro ) 可以完成大部分开发和发布工作,但您仍然需要在以下步骤中使用 Mac 或云中的 Mac:
创建认证文件后,您可以将其上传到 Ionic Pro。您可以在云中使用适当的凭据构建 .ipa 文件。但不幸的是,我没有找到另一种将 .ipa 文件上传到 App Store 的方法,只能使用 Mac 的 Application Loader。
因此,我决定在云帐户中使用即用即付的 Mac(您只需为登录的分钟数付费),因为我在 Mac 上花费的时间非常有限(每个 App 发布只需几分钟)。
XAMARIN CROSS 平台
您可以使用 Xamarin,它是一个带有 IDE Visual Studio 的跨平台,并将 xamarin 集成到其中。使用 C# 代码编写 xamarin 并制作您的 ios 应用程序非常简单。