文章转自 http://danqingdani.blog.163.com/blog/static/186094195201282642520857/
完全是因为抠门,不愿意给苹果上缴开发费用,所以在网络上到处找寻xcode破解,真机调试的方法,非常感谢这篇文章 http://kqwd.blog.163.com/blog/static/4122344820117191351263/的主人,在iOS资料稀缺的情况下,能给出如此详细的教程,并非常善心的答疑。
原文章给出了多个版本的破解方法,我结合自己的情况,记录了
xcode 4.4.1 for Mac OS X 10.8.2上的实施方法及注意点,希望给新手有所帮助。(和前几个版本比较,只是xcode安装路径的不同,和略去了给iPhoneOS Build System Support插件打补丁)
一、开发环境
(1)Mac OS X 10.8.2 (Mountain Lion)
(2)xcode 4.4.1
(3)iPod 4g 5.1.1(越狱)+AppSync
二、创建证书
打开实用工具中的钥匙串访问应用,选择菜单栏的钥匙串访问-证书助理-创建证书来打开向导
注意:证书名称必须为
iPhone Developer,证书类型为
代码签名,并勾选
让我覆盖这些默认值,之后的步骤按默认设置即可
三、修改Xcode的配置文件
注意:需要完全关闭xcode(可以通过command+alt+Esc来查看是否有xcode的进程来判断)
xcode版本不同目录路径也会有所不同,本文以4.4.1为例
第一步:修改SDKSettings.plist
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/
sudo cp SDKSettings.plist SDKSettings.plist.orig
sudo vim SDKSettings.plist
最终修改结果如下:
cat SDKSettings.plist | grep REQUIRED -A 1
<key>CODE_SIGNING_REQUIRED</key>
<string>
NO</string>
--
<key>ENTITLEMENTS_REQUIRED</key>
<string>
NO</string>
第二步:修改Info.plist
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
sudo cp Info.plist Info.plist.orig
sudo vim Info.plist
将全部的XCiPhoneOSCodeSignContext修改为XCCodeSignContext,一共有三处
最终修改结果如下:
cat Info.plist | grep CodeSignContext
<string>
XCCodeSignContext</string>
<string>
XCCodeSignContext</string>
<string>
XCCodeSignContext</string>
四、准备脚本(为在真机上调试做准备)
cd /Applications/Xcode.app/Contents/Developer/
mkdir iphoneentitlements
cd iphoneentitlements
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
sudo chmod 777 gen_entitlements.py
五、修改工程设置
注意:目的是为了支持真机调试,每新建一个project都需要修改Build Settings和为Build Phase添加脚本
第一步:禁用Xcode自动签名,将Build Settings所有的code signing选项改为Don't Code Sign,一共有五处
第二步:添加自定义脚本,选择Build Phases,点击右下角的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 "your.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
注意:
1. 黑色粗体部分,xcode版本不同路径会有所不同
2. 红色字体部分,请修改为新建project时你自己设置的company identifier
第三步:在真机调试破解是否成功
用xcode 4.4.1上开发的一个很小的iOS应用来验证,最终可以成功
注意:一定要插上iOS设备,和选择从设备运行