我混合使用了两种方法: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 开发人员
-
证书类型: 代码签名
-
让我覆盖默认值: 是
-
点击继续
点击继续
删除电子邮件地址字段。
-
点击继续直到完成。
您应该看到“此根证书不受信任”。这是意料之中的。
-
设置 iPhone SDK 以允许使用自签名证书:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
如果您打开了 Xcode,请重新启动它以使此更改生效。
如果您使用的是 iOS 5,就是这样!现在就试试!它可能不允许调试,但应用程序会在那里!
我对此感到非常惊讶,因为作为you should know,我不知道所有这些黑客行为的全部内容!正如我所指出的,我所做的只是稍微改进我在其他地方发现的东西。
所以,是的,整个方法不再以同样的方式工作,我也懒得找一个新的...除了this, which uses a tool called Theos 但是我无法完成整个过程。
最后,如果您出于某种原因需要卸载它,请查看本文末尾。就我而言,我不得不这样做,因为我无法弄清楚为什么整个方法都停止工作了,而且我已经不在乎了,因为我们已经获得了等待已久的许可证。 (该死的 DUNS 号码需要这么长时间......)
.
.
.
.
.
2。使 Xcode 能够在越狱设备上构建
在您越狱的 iPhone 上,通过添加源 ** http://repo.hackyouriphone.org**
来安装应用程序 AppSync
-
删除代码签名和权利的 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