OS X 10.10.3 + XCode6.3.1 + IOS7越狱机真机调试

  最近在开发一款IOS应用,开发者帐号是借来的,因此程序只能在模拟器中调试。后来在网上找到一些真机调试教程,可是有的语焉不详,有的实践下来行不通。通过摸索并综合几篇文章的内容,后来总算搞定了。为防止之后再用到的时候走弯路,也为了帮助有一样须要的人,此处记下了个人整个过程。shell

  1. 建立证书

      打开实用工具-钥匙串访问。而后在菜单栏里点击钥匙串访问-证书助理-建立证书来打开向导。第一个步骤比较重要,必需要把名称命名为iPhone Developer,将类型设定为代码签名,将"让我覆盖这些默认值"选中。以后的步骤无需更改,一路点击“肯定”和“继续”来完成这个向导就能够!app

  2.  修改XCode配置curl

  a)SDKSettings.plistiphone

  打开应用程序,找到XCode,右键显示包内容。依次进入/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/目录(对应不一样版本的XCode SDK版本目录有所不一样)。能够看到SDKSettings.plist文件。将它复制到本身平时经常使用的工做目录进行以下修改:工具

  在DefaultProperties属性下,找到CODE_SIGNING_REQUIRED字段,属性改成NO;找到ENTITLEMENTS_REQUIRED字段,也将其属性值改成NOui

  修改完以后将保存后的文件复制到上面目录下覆盖源文件。url

  b)Info.plistspa

  一样的,打开应用程序,找到XCode,右键显示包内容。依次进入/Contents/Developer/Platforms/iPhoneOS.platform/目录。能够看到Info.plist文件。将它复制到本身平时经常使用的工做目录下进行以下修改:调试

  查找到全部的CODE_SIGN_CONTEXT_CLASS字段,将其属性值修改成XCCodeSignContextcode

  修改完以后将保存后的文件复制到上面目录下覆盖源文件。

  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.  修改工程配置(须要针对每一个须要真机调试的工程进行设置)

  a) 禁用自动签名

  打开XCode工程文件,将BuildSettings里面的Code Signing Identity中的所有选项设置为Don't Code Sign

  b) 添加自定义生成脚本

  选中XCode工程后,选择XCode->Editor->Add Build Phase->Add Run Script Build Phase,加入如下脚本

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; 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  

  好了,万事大吉,接上你的5s,调试试试。

  5.  可能出现的问题

  出现cannot find code object on disk错误,若是代码没有问题而编译的时候出现此问题,通常是最后脚本处出现了问题。工程中添加的run script代码中有两处涉及到脚本的路径,请仔细查看此处的路径和你的路径是否一致。

  出现shell script invocation error错误,此处也是run script中出现了问题,若是是手动输入的,请复制个人代码试试。

相关文章
相关标签/搜索