首页
社区
课程
招聘
[原创]XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)
发表于: 2014-10-17 12:51 16334

[原创]XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)

2014-10-17 12:51
16334
目前在XCode上开发的iOS程序只能在模拟器Simulator中运行,如果要放到真机上测试,需要苹果官方认证的开发者账号,购买开发者证书iDP,99美金一年啊!!!

作为刚开始学习iOS编程的菜鸟,这么大手笔花钱实在是肉疼。。。经过一番折腾,借鉴各种大神的帖子,终于成功在真机上编译运行成功!免费的哦!

这里将方法与大家分享。

我的运行环境是:【电脑】XCode6.0.1 + OS X 10.9.5  【真机iPod Touch】iOS6.1

准备工作:

1. 首先,你要有一个已经越狱的iPhone/iPod/iPad,越狱方法此处不提供。

2. 在用来测试的真机Cydia中添加源:6e0K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4H3N6q4)9J5k6i4N6W2K9i4m8Z5L8$3&6W2i4K6u0W2j5$3!0E0i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1^5i4@1u0p5i4@1u0p5i4@1f1&6i4K6R3H3i4K6R3J5i4@1f1#2i4K6V1H3i4K6R3^5i4@1f1%4i4K6W2o6i4K6W2r3i4@1f1$3i4K6W2o6i4@1u0m8i4@1f1%4i4@1t1K6i4@1u0n7i4@1f1%4i4@1u0n7i4K6W2r3i4@1f1%4i4K6R3&6i4K6R3^5i4@1f1$3i4K6W2o6i4@1q4o6i4@1f1%4i4K6W2m8i4K6R3@1b7i4m8H3f1%4W2F1j5#2!0q4x3#2)9^5x3q4)9^5x3R3`.`.

3. 在电脑上创建一个证书,用于为生成的程序签名。

创建证书的过程比较简单,在电脑上打开“其他-钥匙串访问”。然后在菜单栏里点击“钥匙串访问-证书助理-创建证书...”来打开向导。注意这里的三个地方,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将”让我覆盖这些默认值”选中。之后的步骤什么都不用改,一路点击“确定”和“继续”,最后完成这个向导就可以了。



4. 如果Xcode在运行状态,请先Command+Q将其完全关闭。然后打开“其他-终端”,我们需要用到一些UNIX命令,可能看起来会比较繁琐,但是相信我,这可是在每年节省99美金啊!

① 进入iPhone SDK目录,指令如下:

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

备注:不同版本的Xcode最后的版本号不同。在Xcode 6.0中是iPhoneOS8.0.sdk,未来版本可能版本高一些,早期版本的就低一些。请根据实际情况自己改动。(如果实在不知道自己的版本号,可以用“ls”指令查看所有文件。)

② 备份原文件,如果电脑设有密码,系统会提示你输入密码(输入后不会显示出来,敲回车即可)
sudo cp SDKSettings.plist SDKSettings.plist.orig


③ 编辑配置文件SDKSettings.plist

为了方便修改,我们可以直接用Xcode打开这个文件。首先要打开这个文件所在目录:
open .

在弹出的Finder窗口中双击SDKSettings.plist,会启动Xcode的图形界面,展开DefaultProperties分支,将下面的ENTITLEMENTS_REQUIRED和CODE_SIGNING_REQUIRED两个属性改为NO。

备注:这里可能会遇到系统提示【“SDKSettings.plist” is locked for editing......】,这是因为文件读写的权限问题,解决办法如下:

首先,修改文件夹权限,此时我们所在目录是iPhoneOS8.0.sdk,如果输入指令“cd ..”返回上级目录,“ls -al”查看所有文件,会发现系统显示iPhoneOS8.0.sdk -> iPhoneOS.sdk,这表示iPhoneOS8.0.sdk是指向iPhoneOS.sdk的快捷方式,所以我们要修改的真正文件夹是iPhoneOS.sdk,指令如下:

sudo chmod -R 777 iPhoneOS.sdk

然后,修改文件夹内所有文件的读写权限:

sudo chmod 777 *

现在双击打开SDKSettings.plist,你会发现,刚才不能修改的属性可以修改了!

④ 编辑另外一个配置文件Info.plist

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
sudo cp Info.plist Info.plist.orig
open .

在弹出的Finder窗口中双击打开Info.plist。分别在DefaultProperties分支下、RuntimeRequirements分支下和OverrideProperties分支下,共有3处,将全部的XCiPhoneOSCodeSignContext修改成XCCodeSignContext。

备注:同第③步,可能会遇到权限问题,修改Platforms文件夹权限和该文件夹内所有文件的权限即可,步骤同上。

 

5. 准备自定义的生成后脚本(此步骤需在联网状态下进行)

sudo mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
sudo curl -O 77dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4D9k6i4S2%4K9r3W2@1N6r3g2E0L8%4u0W2i4K6u0W2j5$3!0E0i4K6u0r3K9i4m8Z5L8$3&6W2i4K6u0r3k6$3g2F1i4K6g2X3k6h3&6@1K9i4c8D9k6h3#2W2L8Y4c8K6i4K6u0W2N6s2S2@1
sudo mv gen_entitlements.txt gen_entitlements.py
sudo chmod 777 gen_entitlements.py

 

6. 修改工程设置

备注:本阶段之前的修改配置文件、准备脚本等,只需要做一次。但本阶段的操作,对每个需要真机调试的工程都要做一遍。

① 禁用Xcode自动的签名操作

将工程配置“Build Settings”中所有的Code Signing选项全部设为Don’t Code Sign,如图。


 

② 添加自定义的生成后脚本
在Build Phases中,点击左上角的”+“号,添加一个”New Run Script 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

 

至此配置全部完成!!!连上你的iPhone/iPod/iPad,编译运行,看见真机屏幕上程序跑起来的时候,99美金就省下了!!!

在此感谢大神贴e10K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3E0#2j5h3&6Y4M7h3W2Q4x3X3g2E0k6g2)9J5c8X3W2G2M7#2)9J5c8X3W2G2M7#2)9J5k6r3c8W2N6X3g2D9L8%4m8E0k6h3&6@1i4K6u0V1N6$3W2@1K9r3!0#2N6q4)9J5k6r3W2V1M7q4)9J5c8W2)9J5b7#2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0k6Q4z5p5k6Q4z5e0m8Q4c8e0c8Q4b7V1g2Q4z5f1u0Q4c8e0c8Q4b7V1q4Q4z5o6k6j5j5$3!0V1k6g2)9J5y4X3&6T1M7%4m8Q4x3@1t1#2i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0A6e0#2y4Q4x3U0k6F1j5Y4y4H3i4K6y4n7y4#2!0q4y4g2)9^5y4g2)9^5c8q4!0q4z5q4!0m8c8W2)9^5x3g2!0q4y4q4!0n7z5g2!0m8y4W2)9J5z5r3W2p5f1q4)9J5z5g2!0q4y4#2)9&6b7#2)9&6c8W2!0q4y4W2)9&6b7#2!0n7b7g2!0q4z5q4!0n7x3q4)9^5x3#2!0q4z5q4!0m8c8W2)9&6y4g2!0q4y4q4!0n7z5q4)9^5c8g2!0q4y4#2)9&6y4q4)9&6c8W2!0q4y4W2)9^5z5q4)9&6x3p5W2b7b7g2!0q4y4g2)9^5y4g2!0m8z5q4!0q4y4W2)9&6y4q4!0n7b7W2!0q4y4#2)9&6y4g2!0m8y4g2!0q4x3#2)9^5x3q4)9^5x3R3`.`.
 

作者:L柳柳
联系方式395985239@qq.com

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶顶,感觉很有用,虽然我现在还没学iOS
2014-10-17 16:29
0
雪    币: 3398
活跃值: (1300)
能力值: ( LV13,RANK:335 )
在线值:
发帖
回帖
粉丝
3
楼主好酷,,手动点32个赞
2014-10-17 20:20
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
99美金就省下了!!!
2014-10-17 20:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
markmakrmakr
2014-11-1 20:43
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
xcode6.0.1  + mac10.9.4(mac mini)上面按你的步骤来了一遍
但是运行程序还是报错“The identity used to sign the executable is no longer valid. Please verify that your device’s clock ”
2014-11-5 09:34
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
配置文件都修改好了的话,先确认第5步中的脚本是否生成(没有联网或网络连接不好可能生成失败,终端不会提示),最后是每个需要真机调试的工程都要修改工程设置
2014-11-7 11:34
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
第5步肯定成功了! py文件大概几十k吧

我是xcode6.1 + mac10.9.4 + iphone5(ios8.1)

配置是不是太新了,不知道怎么给这些软件降级呢,愁死了
2014-11-7 21:18
0
雪    币: 16645
活跃值: (1950)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有个叫OPlayerHD的APP用着超爽,只是顶上有广告,不知能不能跟汇编一样修改掉?
IOS才接触是大菜鸟~~还请指导下
2014-11-7 21:30
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不知是否是因为iPhone的系统版本8.1太新,第2步中的AppSync目前是for IOS8的版本,网上有关于系统降级的办法,你可以试试
2014-11-12 09:30
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
11
iOS8.x上报这个错误,AppSync Unified 5新版本已出,更新后没再见过了
我遇到的情况是部署时 installd crash,导致安装失败(可以查看All crash log里有没有installd的,或者syslog看有没有错误输出)。
2014-11-12 21:31
0
雪    币: 8
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
多谢,已经成功xcode 5.1.1成功,非常感谢楼主!!!!!!!!!!!!!!!!!!!!

不过多说一句,我这里编辑那info.plist三个地方的时候提示锁定,是因为我们本身就是用xcode打开的info.plist啊,就算修改权限也木有用得,去下一个plist文件编辑器,用这个改,无需修改权限什么的。锁定什么的
2014-11-19 15:42
0
游客
登录 | 注册 方可回帖
返回