碳基体

奋斗在产品安全第一线的安全妹子

xcode 4.4.1 for Mountain Lion破解及真机器调试

完全是因为抠门,不愿意给苹果上缴开发费用,所以在网络上到处找寻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_allocateif [ "${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设备,和选择从设备运行 

 





 

来源:碳基体

评论