如何在没有 99 美元的 Apple 证书的情况下将 iPhone 应用程序从 Xcode 部署到真实的 iPhone 设备?
12 回答
我混合使用了两种方法:Jason's和alex's。有了第二个,我们就有了能够调试的优势。我将主要复制以下两者(并简化亚历克斯):
2012 年 1 月更新:这仍然适用于 SDK 4.2.1 和 iOS 5.0.1 - 我刚刚在新的计算机和设备上进行了测试!
1. 创建自签名证书
修补您的 iPhone SDK 以允许使用此证书:
启动 Keychain Access.app。在未选择任何项目的情况下,从 Keychain 菜单中选择 Certificate Assistant,然后选择 Create a Certificate。
- 名称: iPhone 开发者
- 证书类型: 代码签名
- 让我覆盖默认值: 是
点击继续
- 有效期: 3650天
点击继续
空白的电子邮件地址字段。
单击继续直到完成。
您应该看到“此根证书不受信任”。这是意料之中的。
设置 iPhone SDK 以允许使用自签名证书:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
如果您打开了 Xcode,请重新启动它以使此更改生效。
如果您使用的是 iOS 5,就是这样!现在就试试!它可能不允许调试,但应用程序会在那里!
我对此感到非常惊讶,因为您应该知道,我不知道所有这些黑客行为的全部内容!正如我所指出的,我所做的只是稍微改进我在其他地方发现的东西。
所以,是的,整个方法不再以同样的方式工作,我懒得找一个新的……除了这个,它使用了一个名为 Theos 的工具,但我无法完成整个过程。
最后,如果您出于某种原因需要卸载它,请查看本文末尾。就我而言,我不得不这样做,因为我无法弄清楚为什么整个方法都停止工作了,而且我已经不在乎了,因为我们已经获得了等待已久的许可证。(该死的 DUNS 号码需要很长时间......)
.
.
.
.
.
2. 使 Xcode 能够在越狱设备上构建
在您越狱的 iPhone 上,通过添加源来安装应用程序AppSync ** http://repo.hackyouriphone.org **
删除代码签名和权利的 SDK 要求(我喜欢sed!):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
注意部分
iPhoneOS5.0.sdk
。例如,如果您使用的是 iOS 4.2 SDK,只需相应地替换它:sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
通过修补 Xcode 结束需求删除。这意味着二进制编辑:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf "\xc3\x26\x00\x00" >> working /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original /bin/mv working iPhoneOS\ Build\ System\ Support chmod a+x iPhoneOS\ Build\ System\ Support
如果您打开了 Xcode,请重新启动它以使此更改(以及最后一个更改)生效。
打开“项目>编辑项目设置”(从菜单中)。单击“构建”选项卡。在列表中找到“Code Signing Identity”及其子“Any iPhoneOS Device”,并将两者都设置为“Don't Code Sign”条目:
在此之后,请随意撤消第 3 步。至少在我的情况下,一切正常。
使用我们定制的自签名证书将 Xcode 设置为代码签名(第一个操作方法)。如果您不想调试,可以跳过此步骤:
mkdir /Developer/iphoneentitlements401 cd /Developer/iphoneentitlements401 curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py
插入你的 iPhone 并打开 Xcode。打开窗口>组织者。从左侧列表中选择设备,然后单击“用于开发”。系统将提示您登录配置网站,单击取消。它可以使合法的配置更容易,但不会使非法的不配置变得更加困难。
现在你必须为你所做的每一个新项目做这最后一部分。转到菜单项目 > 新构建阶段 > 新运行脚本构建阶段。在窗口中,复制/粘贴:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate if [ "${PLATFORM_NAME}" == "iphoneos" ]; then /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" fi
.
.
.
.
卸载
第一部分:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
对于第二部分:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
如果您确实执行了第 3 步而不是第 2 步,只需相应地对其进行修改:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
剩下的,只是恢复你在 XCode 上所做的,/Developer/iphoneentitlements401/gen_entitlements.py
如果你想删除:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
听起来应用程序没有签名。从 Cydia 下载 ldid ,然后像这样使用它:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
还要确保二进制文件被标记为可执行文件:chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Xcode 7 之后的免费配置
为了在真实设备上测试您的应用程序而不是支付 Apple 开发人员费用(或越狱您的设备),您可以使用 Xcode 7 和 iOS 9 支持的新免费配置。
以下是或多或少从文档中采取的步骤(这非常好,所以请阅读):
1. 在 Xcode 中添加您的 Apple ID
转到 XCode > 首选项 > 帐户选项卡 > 添加按钮 (+) > 添加 Apple ID。请参阅文档以获取更多帮助。
2. 单击项目导航器中的常规选项卡
3. 从团队弹出菜单中选择您的 Apple ID。
4.连接您的设备并在方案菜单中选择它。
5. 单击修复问题按钮
如果您收到有关捆绑名称无效的错误,请将其更改为唯一名称。
6. 运行你的应用
在 Xcode 中,单击构建并运行按钮。
7. 在设备设置中信任应用开发者
运行您的应用程序后,您将收到一个安全错误,因为您要运行的应用程序不是来自 App Store。
在您的设备上,前往“设置”>“通用”>“个人资料”>“你的 Apple ID 名称” >“信任你的 Apple ID 名称” >“信任”。
8. 再次在您的设备上运行您的应用程序。
就是这样。您现在可以运行自己的(或您拥有源代码的任何其他应用程序),而无需花费 99 美元。谢谢你,Apple,终于允许这样做了。
如果您正在谈论使用官方 SDK 构建并直接从 xcode 部署的应用程序,则不能。
您必须越狱您的设备。
有一种无需支付苹果费用即可部署 iPhone 应用程序的方法 您必须越狱您的设备并按照http://www.alexwhittemore.com/?p=398中的说明进行操作
我在任何地方都没有看到任何迹象表明您可以在没有(付费)证书的情况下临时部署到真正的 iPhone。
我昨晚浏览了 Apple Developer,在配置证书中我发现了类似“签名团队成员”的内容。我认为有一种方法可以将团队成员添加到付费个人资料中。您可以要求 App Id Owner(付费)将您添加为团队成员。我不确定。仍在寻找。
不,这很容易做到。在 Xcode 中,将 Active Configuration 设置为 Release。将设备从模拟器更改为设备 - 任何 SDK。如果要直接导出到 iPhone,请将其连接到计算机。按构建并开始。如果您的 iPhone 未连接到计算机,则会出现一条消息,提示您的 iPhone 未连接。
如果这适用于您:(未连接 iPhone)
转到您的项目文件夹,然后转到里面的构建文件夹。转到 Release-iphoneos 文件夹,将应用程序放入其中,拖放到 iTunes 图标上。当您同步您的 iTouch 设备时,它会将其复制到您的设备。它还将作为 iPhone 应用程序出现在 iTunes 中。
希望这可以帮助!
PS:如果它说证书无效,只需单击 Xcode 中的项目,左侧文件堆栈中的小项目图标,然后按 Apple+I,或从菜单栏中执行 Get Info。单击顶部的构建。在 Code Signing 下,将 Code Signing Identity - Any iPhone OS Device 更改为 Don't Sign。
这实际上完全取决于您使用的 Xcode 版本,因为不同的版本使用不同的方法部署到您的 iPhone,而无需配置文件。
Xcode 3.2.1 是一个不错的版本,很容易整理,但是我们需要知道你使用的是什么版本。
Cawas 发布的解决方案也与 XCode4 完美配合。但是,IDE 的 UI 有一些变化,因此您需要进行一些研究才能找到 Run Script :)
在 Project Navigator 视图中单击项目的根项,然后在中间窗口中选择 Target,然后单击 Build Phases 选项卡,在底部您将看到 Add Build Phase 按钮,单击并选择 Add Run Script,然后粘贴“codesign “卡瓦斯发布的脚本。
没有解决方法。如果应用程序已在您的设备上注册,您只能临时部署应用程序。这会阻止您建立自己的应用商店。