虽然要支持正版,但是对于学习阶段99美元也是不小的开销。所以就此研究了下如何免证书真机调试。当然最终要把APP发布到AppStore时,还是需要这99刀的。好了,闲话少说,直接进入正题。
本人破解环境:Xcode 6.3,iPhone 4(已越狱且通过Cydia安装了AppSync),并且亲测可用此iPhone进行真机调试。
整体4部分:
4.修改工程设置,进行真机调试
第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为Code Signing,将"Let me override defaults"选中。之后的步骤无需更改,一路点击“OK”和“Continue”来完成这个向导就可以。
然后依次执行下面的操作:
2.1 cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
2.2 sudo cp SDKSettings.plist SDKSettings.plist.orig
2.5 sudo cp Info.plist Info.plist.orig
2.6 sudo /Applications/Xcode.app/Contents/MacOS/Xcode /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
将全部的XCiPhoneOSCodeSignContext 修改成 XCCodeSignContext
有三处,分别在DefaultProperties分支下、RuntimeRequirements分支下和OverrideProperties分支下。
3.准备自定义的生成后脚本(此步必须确保电脑已连接到互联网,并且以root用户执行)
注意:本阶段之前的修改配置文件、准备脚本等,只需要做一次。但本阶段的操作,对每个需要真机调试的工程都要做一遍。
4.1 禁用Xcode自动的签名操作
将工程配置中Code Signing选项下面的除了Any iOS SDK其余全部设为Don't Code Sign,Any iOS SDK 选择之前创建的证书iPhone Developer。如图:
4.2 添加自定义的生成后脚本
在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,选择你的设备运行程序了。
原创文章,转载请注明出处:withiter