源网址:http://blog.csdn.net/qim/archive/2009/09/16/4555170.aspx
1. 在之前的2.x版本下,我一般编译程序到机子的做法是修改xproject去掉iPhone Developer的方法,(参考http://www.cocoachina.com/bbs/read.php?tid-1822-fpage-4.html )
如果以前这样修改过xproject文件的,要先恢复到原始状态,把iPhone Developer那句话加回去(随意找个2.x时期的官方sample就有)
2. 制作自己的证书,制作方法参考http://www.weiphone.com/thread-222380-1-1.html ,说明的是,最后的存放位置据说应该是登录(login)而不是系统,反正我现在用的就是登录.
3. 打开终端,执行如下代码,这个是XCode的补丁,因为在3.13的xcode修补了3.12的免签名漏洞,打这个补丁才行
#!/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
或者你懒的去执行,也可以下载这个文件(要解压下) patch.sh.zip (1 K) 下载次数:97 放在用户根目录,执行
sudo sh ./patch.sh
4. 在终端执行如下命令
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
5. XCode中打开你的project,在菜单project->New Build Phase > New Run Script Build Phase,那个script空白框,拷贝如下代码进去
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements30/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --resource-rules "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/ResourceRules.plist" /
--entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
6. 修改"/Developer/Platforms/iPhoneOS.platform/Info.plist"文件,默认是用Property List Editor打开,然后添加:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO
7. 在你的project的info.list里面增加一行,也就是你之前步骤2建的自定义的证书名字啦.
SignerIdentity=iPhone Developer
8. 把你的iphone连接到电脑,提示连接成功,后 xcode菜单,window->Organizer里面,把iphone设为调试设备.
对了,我忘记了我做的一个步骤,不知道是不是必须的,这里补上
9. iphone要安装MobileInstallation Patch ,安装步骤:打开cydia,进入manage->sources->edit->Add,在网址输入框里面输入www.iphone.org.hk/adp/
完成后,进入sources 可以看到www.iphone.org.hk 这个网站,然后进去,可以找到MobileInstallation Patch,点击安装即可.
安装完成重启手机.
源网址:http://bbs.weiphone.com/read-htm-tid-394723-page-1.html
先说一下根据原来论坛的帖子:http://www.weiphone.com/thread-222380-1-1.html
可以做到XCode里面没有iPhone Developer Programme进行真机调试。
唯一就是有一条Warning。很完美。。。
在我测试下2.x都可以使用。所以假如你现在还是在使用 2.X,请走上面的链接。。谢谢。
在3.0的SDK中,苹果修改了XCode还是什么东西,导致用原来的方法无法编译,提示一条错误:
Code Sign Error: The identity "iPhone Developer" doesn't match any valid certificate/private key pair in the default keychain.
中文(Google翻的):代码签名错误:身份“ iPhone开发”不匹配任何有效的证书/私钥对预设的钥匙串。
就说苹果怎么会傻傻地看着你不付钱呢??
办法总是有的:
基本是靠复制、粘贴。。
这里先推荐一下XCode的一个Template,可以自动生成已经配制好的project,一键就可以在2.x的sdk上编译。很方便,安装方法:curl -O http://www.iphone.org.hk/attach/42698-ToolChainTemplate_v352.zip
unzip -o 42698-ToolChainTemplate_v352.zip -d /"/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/"
下面来看怎么整sdk
1。先安装卸载2.x的sdk,没有安装过就条过这一步骤:
sudo /Developer/Library/uninstall-devtools --mode=all
2。安装3.0sdk,这个不说了。。
3。这时候把/Developer下的Platforms文件夹重命名,可以改成任意名字。主要是为了后面卸载3.0sdk的时候不被删除。这里假设改名为Platforms-new
4。然后卸载3.0sdk:
引用sudo /Developer/Library/uninstall-devtools --mode=all