1.创建证书
创建证书的过程比较简单,打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导。第一个步骤比较重要,必须要把名称命名为iPhoneDeveloper,将类型设定为代码签名,将"让我覆盖这些默认值"选中。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以。
2.修改配置文件
进入目录并备份原文件: Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
用文本编辑器打开: SDKSettings.plist
将以下两段中的YES改为NO
<key>CODE_SIGNING_REQUIRED</key>
<string>YES</string>
和
<key>ENTITLEMENTS_REQUIRED</key>
<string>YES</string>
下面修改另外一个文件,进入目录: Contents/Developer/Platforms/iPhoneOS.platform
用文本编辑器打开: Info.plist
全部的XCiPhoneOSCodeSignContext修改成XCCodeSignContext(有三处)
3.准备自定义的生成后脚本,连接互联网后执行:
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
4.修改工程设置
将工程配置中所有的Code Signing选项全部设为Don't Code Sign:
添加自定义的生成后脚本
在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,输入以下脚本:
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/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
现在可以插上你的iPhone(前提:iPhone已越狱),测试你的程序!