如果我在我的 Mac 上创建一个应用程序,有什么方法可以让它在 iPhone 上运行而无需通过应用商店?
iPhone是否必须越狱并不重要,只要我仍然可以运行使用官方SDK创建的应用程序即可。由于我不会进入的原因,我不能让这个程序通过应用商店。
对于标准 iPhone,您需要每年支付 99 美元才能成为开发者计划的成员。然后,您可以使用 adhoc 系统将您的应用程序安装到多达 100 台设备上。开发人员程序有详细信息,但它涉及将每个设备的 UUID 添加到您的应用程序包中。使用App Store 提供的Ad Hoc Helper可以最轻松地检索 UUID 。有关此方法的更多详细信息,请参阅 Craig Hockenberry在 iPhone 2.0 上的 Beta 测试文章
对于越狱的 iPhone,您可以使用我在 iPhone OS 3.0 上使用AccelerometerGraph示例应用程序亲自测试过的以下方法。
首先,您需要创建一个自签名证书并修补您的 iPhone SDK 以允许使用此证书:
名称:iPhone 开发人员 证书类型:代码签名 让我覆盖默认值:是
有效期:3650天
点击继续
空白的电子邮件地址字段。
单击继续直到完成。
您应该看到“此根证书不受信任”。这是意料之中的。
sudo /usr/bin/sed -i .bak ‘s/XCiPhoneOSCodeSignContext/XCCodeSignContext/’ /Developer/Platforms/iPhoneOS.platform/Info.plist
如果您打开了 Xcode,请重新启动它以使此更改生效。
以下步骤需要先安装openssh, 和。uikittools替换jasoniphone.local为目标设备的主机名。安装 SSH 后,请务必在mobile和用户上设置您自己的密码。root
openssh
uikittools
jasoniphone.local
mobile
root
在手机上手动编译和安装你的应用程序作为系统应用程序(绕过苹果的安装系统):
项目、设置活动 SDK、设备和设置活动构建配置、发布。
正常编译您的项目(使用 Build,而不是 Build & Go)。
在build/Release-iphoneos目录中,您将拥有一个应用程序包。使用您的首选方法将其传输到设备上的 /Applications。
build/Release-iphoneos
scp -r AccelerometerGraph.app root@jasoniphone:/Applications/
ssh mobile@jasoniphone.local uicache
只有在添加或删除应用程序时才需要这样做。更新的应用程序只需要重新启动。
为了在开发过程中让自己的生活更轻松,您可以设置 SSH 密钥身份验证并将这些额外步骤添加为项目中的自定义构建步骤。
请注意,如果您希望稍后删除应用程序,则无法通过标准 SpringBoard 接口执行此操作,您需要使用 SSH 并更新 SpringBoard:
ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app && ssh mobile@jasoniphone.local uicache