一直以来都是用 Xcode 开发的程序都是在 iOS Simulator上面运行,如果进行真机测试,就要苹果开发者账号,就得花$99美元,这里给出在没有开放者账号情况下,免费在真机运行自己的ipa文件,前提是iphone手机是越狱机。
一.创建证书
1.打开 Finder -> 实用工具 -> 钥匙串访问
2.点击 钥匙串访问 -> 证书 -> 创建证书
3.证书名称必须添加 :“iPhone Developer”,过程如下:
二.修改 Xcode 配置文件
1.先将 Xcode 完全退出,按 Command+Q
。
2.修改配置文件。按Command + Shift + G
,输入文件夹路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/
,找到该目录下的
SDKSettings.plist
文件。
将CODE_SIGNING_REQUIRED
和ENTITLEMENTS_REQUIRED
这两个键值 YES
改为 NO
3.修改 Info.plist
文件。
按Command + Shift + G
查找/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
文件夹,在该目录下找到Info.plist
文件,打开该文件,将文件中的XCiPhoneOSCodeSignContext
全部修改为 XCCodeSignContext
,分别在DefaultProperties
分支下、OverrideProperties
分支下和 RuntimeRequirements
分支下。
4.添加文件
连接互联网后在终端执行:
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
三.修改工程设置
1.禁用 Xcode 自动签名操作
将工程配置中所有的Code Signing
选项全部设为Don't Code Sign
。
2.添加自定义的生成后脚本
在Build Phases
中添加一个Phase
,Eitor -> Add Build Phase -> Add Run Script Build Phase
,输入以下脚本:
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
注意的是,鼠标要在空白的地方点击一下,才能使用 Add Run Script
选项。
四.生成IPA文件
将代码先生成 Release
目标.点击项目demo,找到Manage Schemes
选项,
在Build Configuration
,把 Run
和 Test
的 Debug
改为 Release
,
然后打开工程的输出文件夹,一般目录是 /Users/用户名/Library/Developer/Xcode/DerivedData/以工程名打头的文件夹/Build/Products/Release-iphonesimulator
该目录下有xxx.app
文件。把xxx.app
拉入 iTunes
中 -> 我的应用程序,
再把它从 iTunes
列表拉到桌面,就是 xxx.ipa 了。最后把这个 ipa 文件放到 iphone 越狱机,就可以免费测试了。
总结
目前 Xcode 已经把项目打包成 ipa,但是由于我还没有越狱机,真相到底是不是就是这样配置呢?还有待最后的考验。
参考
http://www.360doc.com/content/13/1029/13/110467_325036445.shtml
http://jingyan.baidu.com/article/1709ad80af62f84634c4f0bb.html