XCode4.3.3 + iOS5.1 无证书开发并生成app、ipa文件
测试环境:
系统:Mac OS X 10.7.3(黑苹果)
xcode:4.3.3
ipad:2 (需越狱)
1.生成证书
打开 实用工具-》钥匙串访问,选择钥匙串访问-》证书助理-》创建证书;身份类型选择自签名根证书,证书类型选择代码签名,选中下面的复选框,-》继续,一路默认,完成。
2.修改xcode文件
a.使用命令 defaults write com.apple.finder AppleShowAllFiles -bool True 来修改系统文件显示属性,然后apple->强制退出 Finder来刷 新系统文件显示
b.修改SDKSettings.plist
使用命令 cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
sudo vim SDKSettings.plist
然后提示password,输入mac登陆密码
按下 i 键进入insert状态后,修改 CODE_SIGNING_REQUIRED、ENTITLEMENTS_REQUIRED值为NO
<key>CODE_SIGNING_REQUIRED</key>
<string>NO</string>
<key>ENTITLEMENTS_REQUIRED</key>
<string>NO</string>
按下ESC键 返回命令状态,并按下大写Q键退出,输入:w 保存,然后输入:q 退出
c.修改 info.plist
使用命令 cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
sudo vim info.plist
将所有的 XCiPhoneOSCodeSignContext 替换为XCCodeSignContext
在最后一个</dict> 之前添加
<key>PROVISIONING_PROFILE_ALLOWED</key>
<string>NO</string>
<key>PROVISIONING_PROFILE_REQUIRED</key>
<string>NO</string>
保存,退出
d.下载gen_entitlements.py
使用命令 cd /Applications/Xcode.app/Contents/Developer/
mkdir iphoneentitlements (创建文件夹)
cd iphoneentitlements
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt (下载文件,下载完成后再执行下一条命令)
mv gen_entitlements.txt gen_entitlements.py
3.修改XCode配置
a.Entitlements.plist
新建资源文件,命名为 Entitlements
在文件里新建一行,并写入下面内容
Key:Can be debugged Type:Boolean Value:NO
b.修改 Project 编译设置
Project-》Build Settings-》Code Signing Identity
将Code Signing Identity 下全部项改为 Don't Code Sign
c.修改 Targets 编译设置
Targets-》Build Settings:
Code Signing Entitlements设置为MobileFax/Entitlements.plist (刚创建文件)
Code Signing Identity设置为iPhone Developer (刚创建证书名称),
Code Signing Identity 下 Debug和Release下的子项设置为Don't Code Sign
Targets-》Build Phases:
新增Run Script 在shell处写入
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/co design_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
d.修改 本项目的xx_info.plist文件
在文件中新建一行记录
Key: SingerIdentity Type:string Value:Apple iPhone OS Application Signing
4.生成app文件
选择iOS Device 然后编译或者使用 command+b
成功后在/Users/mac 登陆帐号/Library/Developer/Xcode/DerivedData/项目名称-xxxxx/Build/Products/Release-iphoneos/xxxxxx.app目录下就 是生成的app文件
5 .生成ipa文件
将生成的app文件拖入iTunes中的应用程序,然后托出即为ipa文件,然后就可用真机测试。
:部分内容参考网络文档,感谢原作者
(完)
/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
d.修改 本项目的xx_info.plist文件
在文件中新建一行记录
Key: SingerIdentity Type:string Value:Apple iPhone OS Application Signing
4.生成app文件
选择iOS Device 然后编译或者使用 command+b
成功后在/Users/mac 登陆帐号/Library/Developer/Xcode/DerivedData/项目名称-xxxxx/Build/Products/Release-iphoneos/xxxxxx.app目录下就 是生成的app文件
5 .生成ipa文件
将生成的app文件拖入iTunes中的应用程序,然后托出即为ipa文件,然后就可用真机测试。
:部分内容参考网络文档,感谢原作者
(完)
相濡以沫,不如相忘于江湖