上文说了不能编译为设备执行程序,这里就介绍一个破解的办法。我是参考的weiphone论坛上的(Xcode 3.1.4 证书破解+iphone 3G 3.1.2真机部署(对3.2.1同样有效)),首先需要在macosx里打开程序-实用工具-钥匙串,选择证书助理,创建一个用于代码编辑的证书,然后执行下面一系列命令,拷贝自weiphone论坛。
证书伪造:
先按照 该教程 的步骤添加证书。注意,原教程选择的是“系统”证书,这里我们用“登录”证书,切记。
Xcode破解
关闭Xcode,打开你的命令行终端,复制粘贴下面的代码:
#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf “\x8f\x2a\x00\x00″ >> working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504
/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
执行完后再复制粘贴下面的代码到命令行终端:(需要internet网络连接)
mkdir /Developer/iphoneentitlements30
cd /Developer/iphoneentitlements30
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
执行完脚本后修改”/Developer/Platforms/iPhoneOS.platform/Info.plist”文件,做如下修改:
新增如下两项:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO
再用文本编辑器打开”/Developer/Platforms/iPhoneOS.platform/Info.plist”文件,将所有“XCiPhoneOSCodeSignContext”替换为“XCCodeSignContext”,(非常重要,不进行此步骤会导致打开项目文件Xcode会崩溃报错退出)保存退出。
打开Xcode,打开你的项目,Project>>Edit Project Setting,选择“Build”页面,Configurations和Show都选择All,找到Code Signing Identity项,删除其子项,并将“Code Signing Identity”赋值为“iPhone Developer”(其实是个选项)。
然后找到你项目的xxx-Info.plist文件,添加“SignerIdentity”项,其值为“Apple iPhone OS Application Signing”.保存。
期间会出现让我们选择签名证书,点选“允许”后,据说不能点永久。
Ok,再次点击Build and Archive,成功!!
打包ipa
编译完了的程序是HelloiPad.app文件夹,我们需要制作成ipa安装包,方便安装在iPad上。
第一步,新建一个文件夹,名字任意。找一个不大于500*500的jpg图片,改名为:iTunesArtwork,注意不能有后缀名。
第二步,建立一个文件夹,名为:Payload,把刚才编译的HelloiPad.app拷贝到这个文件夹里面。
第三部,修改app里面的Info.plist文件,windows下可以用Pledit.exe编辑,在<dict></dict>节点里面加入:
<key>SignerIdentity</key>
<string>Apple iPhone OS Application Signing</string>
然后选中Payload和iTunesArtwork,右键生产压缩zip文件,比如:HelloiPad.zip,把后缀名改为ipa就可以了。现在可以双击HelloiPad.ipa文件,看看可以加入到iTunes了。