最近同时在做几个iPhone的项目,做到最后都需要做真机测试。虽然我们公司用iOS Developer Program帐号,但是每次添加一个新项目都要重新生成和下载证书,而且每个证书都是有有效期的,对于我这种做做停停、停停做做的人来说,很麻烦。于是,这让我想起来以前没有开发者帐号时使用的一个很tricky的办法。
iDevice端:
早期玩儿iPhone Jailbreak的朋友可能都知道installd这个文件,用于安装app过程中的sign检测。现在,大家可能知道更多的是AppSync这个package(笑而不语,你们这群安盗版的小偷!LOL)。其实,这个package的功能就是替换了installd文件,从而绕过sign检测。这里,我们需要安装AppSync,因为我们用Xcode部署进来的app是没有code sign的,没用code sign当然也就没法儿通过sign检测咯~
Xcode端:
Xcode默认会自动code sign你的app,如果你有开发者帐号的话,这里当然不会有问题,只要你已经配置好了证书。可是如果你没有证书的话,Xcode就不会让你编译iDevice的bin。因此,你需要在Project的配置项里修改参数以关闭code sign,如图:

但是,即便你修改了这个参数,Xcode仍然会强制要求你code sign,接着,咱们要修改SDK配置文件里的参数,如图(需要root权限,同时找到你要修改的SDK目录):

随便用个editor修改CODE_SIGNING_REQUIRED这一项的值为NO:

最后,重启Xcode即可编译部署你的app到iDevice上啦~~
lihongchao said
我按照你的步骤修改xcode的配置文件和工程配置,依然无法通过针对device 的build, 如何解决啊?
Code Sign error: The identity ‘iPhone Developer’ doesn’t match any valid certificate/private key pair in the default keychain
Qian said
应该是你的项目文件的配置问题,还是“iPhone Developer”,没改过来
lihongchao said
我新建了一个project就可以了。老的那个死活不可以。 多谢了!
解决了一个大问题
Allen said
⋯⋯我也试了一下
在XCode 4.3+4.3SDK下向4.2.1iPad部署HelloWorld,然后编译成功,iPad一闪退出程序,Xcode提示:
Error Starting Executable ‘HelloWorld’
Error launching remote program: failed to get the task for process 576.
意思是啥?
lihongchao said
我用的Xcode4.2+4.2SDK, 只能build成simulator的app, 一选择device就build失败。
你这个你可以试试把build出来的app拖放到itunes里,然后同步一下看看,前提是你的ipad越狱了。
Qian said
对,是会报这个错。这种方法没法儿跟踪iPhone上的运行状态,但是你打开iPhone看的话,已经成功部署app上去了,不用打包成IPA文件再用iTunes安装。
Allen said
这个样子⋯⋯⋯⋯
嗯,不过可以单独看log神马的,测试一下小软件还是可以的⋯⋯
kevin said
对我也是这个问题, 还有, 那个 单独看log是神马意思 ,ipad有系统日志吗 ?
XCode里,如何避免Build中的CodeSign来联机调试程序 | lihongchao said
[...] 其实问题的解决非常简单,这位朋友的博客里有图文说明 但是有个前提就是你的device是越狱过的,不然没法运行的。 [...]
Allen said
Bob这儿也有一篇关于这个的文章,附上给哈欠兄做参考吧。
http://www.cocoabob.net/?p=714
iPhone开发学习笔记(1) | ss1271的奋斗 said
[...] 另外特别感谢 @heqian的How to deploy iOS app to iDevice without iOS Developer Program Account [...]
aaa said
ios4.3 xcode4.1环境测试成功,没想到这么简单,看了一堆复杂资料。感谢分享。