如果我错了,请纠正我。
我是移动开发的新手,我想开发一个应用程序提交给Apple Store。
但是我对Mac的价格感到沮丧,因为我考虑到要开发该应用程序的价格。
假设我确切地知道我想要什么以及如何对其进行编码。
如果要创建开发人员帐户并支付费用-然后借用我的朋友mac,编写代码,然后将代码提交给Apple。那是我需要Mac的全部吗?然后我可以通过Windows计算机上的iTunes访问所有统计信息吗?
有人可以告诉我我有妄想吗?
如果我错了,请纠正我。
我是移动开发的新手,我想开发一个应用程序提交给Apple Store。
但是我对Mac的价格感到沮丧,因为我考虑到要开发该应用程序的价格。
假设我确切地知道我想要什么以及如何对其进行编码。
如果要创建开发人员帐户并支付费用-然后借用我的朋友mac,编写代码,然后将代码提交给Apple。那是我需要Mac的全部吗?然后我可以通过Windows计算机上的iTunes访问所有统计信息吗?
有人可以告诉我我有妄想吗?
Answers:
让我逐步告诉你几年前我也处于同样的情况。
所以我们有两个阶段
1. iPhone / iPad(iOS)应用程序开发
因此,如果您只想开发iOS应用程序,那么您无需支付任何费用,
您只需要Mac + XCode IDE
现在,您只需安装Xcode并开始开发iOS应用并使用Simulator进行测试/调试。
2. iPhone / iPad(iOS)应用程序开发并发布到iTunes Store
如要在iTunes Store上发布应用程式,您需要付费(例如$ 99美元/年)。
因此,对于完整的iOS开发设置,您需要
无需拥有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"
}
}
}
三:用以下命令启动exp
packegerexp 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开发时可能遇到的一系列问题,并且它具有依赖性-其他图书馆问题的特定版本,以及其他内容。
在Windows上,您可以在虚拟机上使用Mac(这也许也可以在Linux上使用,但我尚未测试)。虚拟机基本上是一种在计算机上运行的程序,可让您在另一个操作系统的窗口中运行一个操作系统。确保硬盘上至少有60GB的可用空间。您最初下载的虚拟硬盘驱动器会占用10GB的空间,但是当您安装了用于开发iOS应用程序的所有必需程序时,其大小可以轻松增加到50GB(我建议保留几GB的余量,以防万一)。
以下是有关如何在Windows上安装Mac虚拟机的一些详细步骤:
安装VirtualBox。
您必须在BIOS中启用虚拟化。要在Windows 10上打开BIOS,需要在按住开始Shift键的同时按开始菜单中的“重新启动”按钮。然后,您将获得带有某些选项的蓝屏。选择“疑难解答”,然后选择“高级选项”,然后选择“ UEFI固件设置”,然后选择“重新启动”。然后,计算机将重新启动并直接打开BIOS。在较旧版本的Windows上,请正常关闭计算机,按住F2键,然后重新启动计算机,F2直到进入BIOS 才释放。在某些计算机上,您可能需要按住另一个键F2。
现在您已经在BIOS中,您需要启用虚拟化。您应该更改哪个设置取决于您使用的计算机。即使在两台具有相同Windows版本的计算机之间,这也可能有所不同。在我的计算机上,您需要Intel Virtual Technology
在Configuration
标签中将设置为Enabled
。在其他计算机上,它可能位于Security -> Virtualization
或中Advanced -> CPU Setup
。如果找不到这些选项,请在Google中搜索。请勿像这样随意更改BIOS中的任何内容,否则可能会导致计算机问题。启用虚拟化后,保存更改并退出BIOS。这通常在标签中完成。enable virtualization (the kind of computer you have)
Exit
下载此文件(我上传了以前从链接中下载的文件,该文件现在已损坏)。如果链接断开,请发表评论让我知道,我将尝试将文件上传到其他地方。打开7Z文件的密码为stackoverflow.com
。该7Z文件包含一个VMDK文件,该文件将充当Mac虚拟机的硬盘驱动器。提取该VMDK文件。如果磁盘空间对您来说是个问题,则提取VMDK文件后,可以删除RAR文件,从而节省7GB。
打开在步骤1中安装的VirtualBox。在工具栏中,按“新建”按钮。然后为您的虚拟机选择一个名称(该名称不重要,我称其为“ Mac”)。在“类型”中,选择“ Mac OS X”,在“版本”中,选择“ Mac OS X 10.11 El Capitan(64位)”。
选择虚拟机可以使用的内存量。尝试平衡数量,因为内存太少会导致虚拟机性能降低,而内存太大会导致主机系统(Windows)内存不足,这将导致虚拟机和/或其他程序重新运行在Windows上崩溃。在具有4GB可用内存的计算机上,2GB足够了。不用担心,如果选择的金额很低,您将可以随时更改它(虚拟机正在运行时除外)。
在“硬盘”步骤中,选择“使用现有的虚拟硬盘文件”,然后单击下拉列表右侧的小文件夹图标。这将打开一个浏览窗口。选择您在步骤4中下载并提取的VMDK文件。
完成此操作后,单击“创建”。
在窗口左侧的列表中选择虚拟机,然后单击工具栏中的“设置”按钮。在系统->处理器中,选择2个CPU。如果以后意识到在步骤6中选择了会导致问题的内存量,则可以在系统->主板中进行更改。完成更改设置后,单击“确定”。
打开命令提示符(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
现在,一切准备就绪,可以使用虚拟机了。在VirtualBox中,单击“开始”按钮,然后按照Mac的安装说明进行操作。在虚拟机上安装Mac之后,就可以像开发真实Mac一样开发iOS应用。
备注:如果要节省硬盘空间,可以压缩在步骤4中提取并在步骤7中使用的VMDK文件。为此,请右键单击它,选择“属性”,再单击“高级...”。按钮,然后选中“压缩内容以节省磁盘空间”复选框。这将使这个非常大的文件占用更少的磁盘空间,而不会使任何事情正常运行。我做到了,它在不丢失任何数据的情况下将VMDK文件的磁盘大小从50GB减小到40GB。
存在一些云解决方案,例如macincloud(非免费)
您可以使用Phonegap(Cordova)在没有Mac的情况下开发iOS应用,但是您仍然需要Mac才能将您的应用提交到App Store。我们开发了一个云应用程序,它也可以在没有Mac https://www.wenz.io/ApplicationLoader的情况下发布您的应用程序。目前,我们处于测试阶段,您可以免费使用该服务。
最好的问候,史蒂芬·温兹
(我是网站的创建者)
简短的回答:理论上是可以的,但这必须是您的非常好朋友,但同样,您可能更愿意购买二手的Mac-mini
长答案:您将需要很长时间使用这台Mac,具体取决于您的应用要求,开发技能以及与Apple的合作。例如:
因此,以我的经验,开发iOS应用程序是一个非常漫长的过程,甚至没有考虑实际的代码开发时间。您可以借用Mac这么长时间吗?
另外,如果您想省钱,则不必购买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是最好的解决方案。
您可以使用Smartface使用javascript开发应用程序,并直接在没有Mac的情况下直接部署到商店。他们的发言如下。
借助Cloud Build模块,Smartface消除了应用程序部署的所有麻烦。您无需担心管理代码签名证书和使用Mac来对应用程序进行签名的麻烦。Smartface Cloud可以将您所有的iOS证书和Android密钥库存储在一个地方,并且签名和构建完全在云中。无论使用哪种操作系统,都可以获取存储就绪(或企业发行版)二进制文件。Smartface使您摆脱了锁定到Mac的束缚,并允许您使用自己喜欢的操作系统进行开发。
像React Native和Ionic这样的大多数框架都允许您在它们的服务器上构建。这意味着它们可以帮助您编译并为您提供.ipa文件。
问题是您需要Xcode或应用程序加载器才能将您的应用程序提交到Apple App Store Connect。两者仅在OSX上可用。要克服此解决方案,您有2个我知道的选择
我的经验是,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集成到其中的。将代码编码到xamarin并使用C#代码制作ios应用非常简单。