天天看点

XCode4.3.3无证书无真机打包说明

环境: 

1、windows XP系统下安装VMWare8.1 

2、Mac OS X 10.7.4+XCode4.3.3+模拟器iOS5.1 

按以下步骤配置 

1、生成iPone Developer证书 

2、修改XCode系统文件 

3、配置XCode项目环境 

4、Xcode Build项目打包 

下面逐步说明 

1、生成iPhone Developer证书 

此步骤网上很多,使用 钥匙串访问 工具,“钥匙串访问->证书助理->创建证书”名称必须写成 “iPhone Developer”其他全部默认,直至证书生成完成。 

2、修改XCode系统文件 

此步骤需要进行两个文件的修改和一个文件的添加 

(系统文件开始是隐藏的,可以使用命令 defaults write com.apple.finder AppleShowAllFiles -bool True 来修改系统文件的可见,参数改为False为隐藏,命令修改完成后需 apple->强制推出 Finder来刷新系统文件显示) 

然后命令行运行: 

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk 

sudo vim SDKSettings.plist 

此时进入vim文件编辑状态(会提示password 输入Mac登陆密码后回车) 

(注:i 进入Insert状态,修改完成后按ESC键退回到命令状态,Q退出 :w 保存 :q 退出) 

修改 

<key>CODE_SIGNING_REQUIRED</key> 

<string>NO</string> 

<key>ENTITLEMENTS_REQUIRED</key> 

<string>NO</string> 

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform 

sudo vim info.plist 

修改文件内三处<string>XCiPhoneOSCodeSignContext</string>为<string>XCCodeSignContext</string> 

在最后</dict>前添加 

<key>PROVISIONING_PROFILE_ALLOWED</key> 

<string>NO</string> 

<key>PROVISIONING_PROFILE_REQUIRED</key> 

<string>NO</string> 

修改完成后保存 

添加文件gen_entitlements.py 

cd /Applications/Xcode.app/Contents/Developer/ 

mkdir iphoneentitlements(如果创建失败可直接通过Finder 前往 /Applications/Xcode.app/Contents/Developer/手动去创建此文件夹) 

cd iphoneentitlements 

curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt(通过网站下载了一个文件) 

mv gen_entitlements.txt gen_entitlements.py 

如果没有连接网络的,可通过其他电脑直接打开网页复制保存为gen_entitlements.txt通过共享盘复制到目录 

3、配置XCode项目 

需要进行三个设置Project-Build Settings、Targets-Build Settings、项目下的xxx_info.plist和添加一个Entitlements.plist文件 

(1)Project-Build Settings设置 

Code Signing Identity项目全部设置为Don't Code Sign 

(2)Targets-Build Settings设置 

Code Signing Entitlements设置为xxx/Entitlements.plist(xxx为你的项目名称,与新增Entitlements.plist文件文件路径一致) 

Code Signing Identity设置为iPhone Developer,Debug和Release下的子项设置为Don't Code Sign 

Build Phases新增一项内容为 

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 

(3)项目下的xxx_info.plist设置 

新增一项 

SingerIdentity 值为 Apple iPhone OS Application  Signing 

(4)新增文件Entitlements.plist 

位置为项目下的项目文件夹下 

New File->iOS->Resource->Property List 

新建项目 

Key:Can be debugged 

Type:Boolean 

Value:NO 

4、Xcode Build项目打包 

前面三项设置完成后选择:iOS Device 

不管有没有真机连接,都可以通过Product->Build进行编译,编译前最好用以下Clern编译完成后在 

/Users/你的帐号/Library/Developer/Xcode/DerivedData/项目名-xxxxx/Build/Products/Release-iphoneos/xxxxxx.app 

下找到一个APP文件夹,将此文件夹拖入iTunes中的应用程序会生成一个应用程序,然后拖出这个应用程序到桌面自动生成xxx.ipa的安装程序就可以去真机上安装了,真机只能是越狱的 

最后感谢各位前辈门的参考文档,学习了很多啊,也很辛苦,希望这个文章对学习的朋友们有用

附件里是Mac的下的文档.rtf的格式,可拿到Mac系统里直接打开复制使用