XCode 4.2(4.1)真机调试及生成IPA全攻略

el/2024/7/13 11:18:33
众所周知,在Xcode上开发的程序只能在模拟器中运行,如果要放到真机上则要花费99美金购买开发者证书iDP。这严重阻碍了我等草根开发者探索的脚步。写个小程序,同学间分享一下这个小小的愿望都不能满足,自然不能善罢甘休。

在没有iDP的情况下,要想将程序放到iPhone上调试,并最终发布IPA用于分享,需要以下几个步骤:
1.自己为自己颁发一个证书用于为生成的程序签名
2.修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和使用这个伪造的证书
3.使用自定义的步骤为应用程序签名
4.使用一点小trick来生成IPA文件
1.创建证书
我会分几步来说明。值得说明的是,要想真机调试,ios device必须事先越狱.创建证书的过程比较简单,打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导。第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将"让我覆盖这些默认值"选中。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以。
1.创建证书,这个没什么好说的,网上资料一大堆,只要别写错名字就好,证书名一定要为 iPhone Developer

2.破解ios sdk及其xcode的相关配置文件(双击配置文件就可以打开,注意SDKSettings.plist有权限控制)
修改/Developer/Platforms/iPhoneOS.platform目录下的Info.plist文件,将其中的 XCiPhoneOSCodeSignContext 都改为XCCodeSignContext
修改/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk目录下的SDKSettings.plist文件,修改如下字段:

[pre]
  1. <key>CODE_SIGNING_REQUIRED</key>  <string>NO</string>  <key>ENTITLEMENTS_REQUIRED</key>  <string>NO</string>
[/pre]3.破解xcode二进制文件。建立一个crack文件,内容如下:
[pre]
  1. #!/bin/bash  cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/  dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255  printf "xc3x26x00x00" >> working  /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original  /bin/mv -n working iPhoneOS\ Build\ System\ Support  chmod a+x iPhoneOS\ Build\ System\ Support 
[/pre] 然后执行 chmod +x crack执行./crack,没错误就正常
4.修改xcode工程配置文件
1) 下载脚本
打开终端,执行如下操作
[pre]
  1. cd  /Developer  mkdir xcode-crack  curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt  mv gen_entitlements.txt gen_entitlements.py  chmod 777 gen_entitlements.py 
[/pre]2) 禁用Xcode自动的签名操作
将工程配置中所有的Code Signing选项全部设为Don't Code Sign,如图。可能需要先点击“All”让这个选项显示出来
3)添加自定义的生成后脚本
在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,输入以下脚本(如图)
[pre]
  1. export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate  if [ "${PLATFORM_NAME}" == "iphoneos" ]; then  /Developer/xcode-crack/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 
[/pre] 5。打包应用程序,生成ipa文件
在xcode上选择product菜单,选择Build For ---> Build for Achiving,就能成ipa文件了。如图:
可以将这个文件拖到itunes,就可以生成一个ipa文件,如图:
至此,我们就可以随心所欲地开发并调试ios程序了,并可以将打包好的ipa文件分享给他人
按照上面的步骤导入3.x的工程成功运行,但是如果用XCode 4.2创建新工程,则会报错,需要做如下修改:
1、将【Objective-C Automatic Reference Counting】的默认值由【YES】改为【NO】;
2、输入下面的代码注意没有特殊字符
[pre]
  1. export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then    /Developer/iphoneentitlements401/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   

http://www.ngui.cc/el/5432080.html

相关文章

AS3老虎机简单原型

http://nickro.org/wp-content/uploads/2012/04/demo.swf

Super用法深透理解

学习AS3以来&#xff0c;Super用法一直有点搞不清&#xff0c;帮助文档里说的也是含糊不清。。 我们看下官方帮助先&#xff1a;“调用方法或构造函数的超类或父版本。在类构造函数体内使用 super() 语句时&#xff0c;该语句将调用构造函数的超类版本。对超类构造函数的调用必…

stage.width|stage.height|stage.stageWidth|stage.stageHeight区别

我们先看下帮助文档里的说明&#xff1a; stage.width&#xff1a;指示显示对象的宽度&#xff0c;以像素为单位。宽度是根据显示对象内容的范围来计算的。如果您设置了 width 属性&#xff0c;则 scaleX 属性会相应调整&#xff0c;如以下代码所示&#xff1a; stage.height&a…

加载动态数据,不同环境判断

加载动态文件时&#xff0c;需添加随机数&#xff0c;独立PLAYER则不需要&#xff0c;只需要添加以下判断即可 if (Capabilities.playerType "StandAlone" || Capabilities.playerType "External") {}else {infoXMLString "?" Math.random(…

Math.round|Math.floor|Math.ceil区别

Math.round(val:Number):Number[静态] 将参数 val 的值向上或向下舍入为最接近的整数并返回该值。&#xff08;即小数点后四舍五入&#xff09; Example: trace(Math.round(4.4))–4 trace(Math.round(4.7))–5 Math.floor(val:Number):Number[静态] 返回由参数 val 指定的数字…

如何配置FlashDevelop软件并支持Flash CS4[转]

FD软件是指FlashDevelop&#xff0c;是学习、开发Flash ActionScript 3.0的有力工具&#xff0c;其最大的特点是超强代码提示、方便的快捷键操作、开源代码模板定制、可扩充的插件功能&#xff0c;无不展示了这是一款优秀的辅助软件&#xff01; 本文紧跟Flash CS4&#xff0c;…

2011年十个值得收藏的Flash博客

2011年十个值得收藏的Flash博客&#xff0c;从效果到优化&#xff0c;从2D到3D&#xff0c;从网络到移动&#xff0c;没收过最好你都收了。 Flash社区创建的内容和演示的数量和质量&#xff0c;不停的带给我们惊奇。在我看来&#xff0c;下面这些网站都是值得称赞的&#xff0c…

Electroserver5 管理工具

----------打开管理工具 管理员可以使用网页或者AIR应用来打开 Electroserver 后台管理界面。 在安装目录的 admin 文件夹下可以找到网页版和AIR版。连接ES5必须在config的xml文件里配置连接设置&#xff0c;设置默认用户名密码。 AIR 版管理工具 双击air程序&#xff0c;可能会…

解决FlashDevelop调试不输出trace信息

下面是方法&#xff1a; 1.打开FD(flashDevelop简称) 2.在菜单栏找 Tools->Program Settings 3.在Plugins框里面找到FlashViewer&#xff0c;然后在右边的External Player Path设置flash player的路径&#xff08;*注意&#xff0c;这个路径是调版的flash player的路径&…

Flash Professional CC新功能简介

今天Adobe官网公布了新一代Flash内容创作、交互开发工具&#xff1a;Flash Professional CC。 这个版本的最大改变就是与Adobe创意云的深度集成&#xff01; 另外&#xff0c;完全放弃原有结构和代码&#xff0c;基于Cocoa从头开始开发原生64位架构应用&#xff0c;极为显著地了…