您的位置:首页 > 移动开发 > IOS开发

IOS 7 Xcode 5 免IDP证书 真机调试

2017-02-13 17:21 267 查看
今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试。说白了就是穷,不想给苹果交那$99的钱。

注意:虽然可以用这个方法实现真机调试,不过不能实现向Apple store
发布APP,其次向Notification这种需要去Apple 下载证书的应该也不行。其次你调试的设备必须越狱,
不越狱调试不了,还好IOS7的越狱前几天已经出来了。

 


一, 环境:

操作系统OS X 10.8.5, Xcode 5.0.2 (我是个穷,用的虚拟机), 设备Iphone 4, IOS 7.0.4
用前几天出来的 evasi0n7 越狱的,期间还失败了一次刷成了白苹果,大家自己小心哦。还有设备越狱以后请用Cydia 安装
AppSync, 具体方法 自己Google





二,设备越狱。略,自己Google 记得装AppSync。


三,破解Xcode。

1.伪造签名证书:

这步是整个过程中最简单的一步了,按照下面的图一步步做就可以了。
注意:名称
务必填写 iPhone
Developer
 注意大小写和空格,其次如果你本身有Apple的develop证书,比如是公司的或者是其他团队的,建议你先在钥匙串访问中
将他们全部导出,然后删除。以免不必要的影响。






?





?


?


?


?


?


?





2.修改Xcode 的配置文件。

注意:

下面的修改中如果有权限问题可以先复制一份,修改后在拷贝回去。

请右键用Xcode打开要修改的文件,进行编辑。网上也有人是用VI编辑的,不过我用VI编辑乱码。

每个文件编辑前最好备份,以免意外。

1)修改SDKsettings.plist文件

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/

打开该目录下的SDKSettings.plist文件,把CODE_SIGNING_REQUIREDENTITLEMENTS_REQUIRED的值改成NO



2)修改Info.plist文件

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/

打开该目录下的Info.plist文件,右击--Add Row,增加两项:

PROVISIONING_PROFILE_ALLOWED 值为 NO

PROVISIONING_PROFILE_REQUIRED 值为 NO



3)将上面Info.plist文件中的
"XCiPhoneOSCodeSignContext" 替换成"XCCodeSignContext"(共3处)




OK到这来配置文件就改好了,说白了就改了两个配置文件,这来有我改好的配置文件,如果你系统环境和我一样可以直接下载覆盖,不过我建议你自己修改。Info.plistSDKSettings.plist

3.设置gen_entitlements.py脚本

这个脚本会在你每次生成APP的时候被调用,主要作用是生成一个签名用的entitlements文件,在后面签名的时候会用到。

在命令终端中执行如下命令,我将在每个命令后说明 如果你的环境执行命令失败,你就自己操作吧。
mkdir
/Applications/Xcode.app/Contents/Developer/iphoneentitlements

??? 在
/Applications/Xcode.app/Contents/Developer/ 目录下创建一个
名为iphoneentitlements的目录
cd
/Applications/Xcode.app/Contents/Developer/iphoneentitlements

???
进入刚刚创建的iphoneentitlements目录
curl
-O 
http://www.bobzy.cn/xcode/gen_entitlements.txt
???
下载 这个文件 到
iphoneentitlements 目录
mv
gen_entitlements.txt gen_entitlements.py

???
重命名刚刚下载的文件,命名为gen_entitlements.py
sudo chmod
777 gen_entitlements.py

???
修改这个文件的权限,加上任意人可执行(此处可能要求你输入系统账号密码)

4. 修改项目属性 (每次新建项目都要执行)

1)点击TARGETS项目图标,找到"BuildSettings"选项下的"Code Signing",将其值全部改为"Don't
Code Sign"




2)点击Project项目图标,找到"BuildSettings"选项下的"Code Signing",将其值全部改为"iPhone
Developer"



3)点击TARGETS项目图标,
切换到Build Phases选项,点击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" ] || [ "${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




注意my.company.${PROJECT_NAME} 最好替换为你APP的Bundle
Identifier,以免不必要的的麻烦。
注意代码codesign? 后面 s,f
前面的一个 - 符号,entitlements 前面是两个-- 符号
可以点击这里下载这份代码,直接复制进去

5. 连接设备

点Windows – Organizer
,然后选中你的设备,在右边窗口中点击“Use for Development”
即可,此时你的设备名称旁边应该显示黄色的小灯,重新拔插数据线,Organizer中会出现一个进度条,等这个进度条跑完,小灯就会变成绿色,开发模式
已经启用。



选择你的设备运行即可.


?


四, 常见错误

1."BuildSettings"选项下的"Code Signing",无法选择为"iPhone Developer",只能选择
IOS Developer 或者 Mac Developer, 重启一下Xcode
或者重启一下系统,新建的证书可能没有很好的识别出来.

2. Build 的时候报错 /bin/sh failed with exit code 2, Run Script Build
Phase 脚本有问题,检查一下脚本粘贴的时候有没有多了空格或者少了空格的问题. 可以在 fi 前面加上

echo ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent;
来输出xcent文件了路径,然后到这个路径下看看是不是有这个文件,如果没有请检查 gen_entitlements.py
是否真确。

手工在终端中执行 如下命令 注意替换
${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent,观察是否生成了.xcent文件。

/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py
"my.company.${PROJECT_NAME}"
"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";

如果存在这个文件依旧保持 检查 codesign? 命令可以手动执行,注意 –s –f 等参数的位置。

3.能编译过,但是运行会出一个failed to get the task for process ****
这样的错误,APP在设备上闪退,在Xcode上无法进行debug,请检查

TARGETS 和Project 下面"BuildSettings"选项下的"Code Signing" 是否配置正确。

4.Please verify that your device's clock is properly set, and that
your signing certificate is not expired.
这个错误请检查设备是否越狱,越狱设备是否安装了AppSync 7 的版本。

本文转自:http://bob-zhangyong.blog.163.com/blog/static/17610982013112855551277/ 

感谢博主的分享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐