【原】xcode5&IOS7及以下版本免证书真机调试记录

时间:2021-09-07 10:42:15

搞了有一段IOS开发了,之前一直在企业做,近阶段主要在公司做C++服务端开发,打算在空闲实现搞搞个人开发,为自己赚钱,IDP还没申请下来,所以先用此方法在越狱设备上先做一下app的免证书真机调试,先记录如下:

想要免证书真机调试必须牢记以下的准则:

准则1:设备必须先越狱,而且用cydia装好appSync补丁

准则2:在前期操作过程中,xcode5必须保持完全关闭状态,否则有些变化无法更改

方法与低版本的xcode实现方法大同小异。

Let`s go.

1、创建证书:

利用mac的实用工具钥匙串创建,选项严格按照如下填写,剩下的就是下一步下一步,邮箱该填的填,不填也没事

【原】xcode5&IOS7及以下版本免证书真机调试记录

2.直接双击/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk 此目录下的SDKSettings.plist

将以下两段中的YES改为NO

【原】xcode5&IOS7及以下版本免证书真机调试记录

3. 双击/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/下的Info.plist

把全部的XCiPhoneOSCodeSignContext 修改成 XCCodeSignContext,有三个地方出现,可以按cmd+f查找。

【原】xcode5&IOS7及以下版本免证书真机调试记录

4. (低版本xcode有介绍,但我没这么做,可以先跳过,后面报错了再回来补这个步骤)打个二进制补丁。

cd ~/Desktop
vim script

打上下面内容.

#!/bin/bash cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs= count= printf "xc3x26x00x00" >> 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

授予这个脚本执行权限并执行它

chmod 777 script
./script
正常的话应该输出(具体的数字可能有差别)
    1. 231+1 records in
    2. 231+1 records out
    3. 115904 bytes transferred in 0.001738 secs (66694555 bytes/sec)

5、准备脚本,为后面做准备,把下面的命令行在联网的情况下一行一行执行:权限不够的话先进入sudo -s 进入超级管理员权限

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 gen_entitlements.py

最后一句意思是将该脚本文件设为可执行。

6、以下的步骤每个想真机调试的工程都要执行!

【原】xcode5&IOS7及以下版本免证书真机调试记录

7、添加自定义的脚本,这一步将会让xcode执行上一步的脚本文件:

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

8、脸上设备,到xcode->organizer中看设备是否是绿灯。然后点击运行,ok

过程中容易出现的问题以及解决方法见:

http://wenku.baidu.com/link?url=p5h0zFvPkvtav8z9f17n1wCItb8bqoAP4KbrCl91ewgVfIhPSuLGLBNjpru9dQGKFNh_TTGHVe3PsSKky_PuxJcIn4BUhr2aY2IBpNvEMKO