陈斌彬的技术博客

Stay foolish,stay hungry

Xcode6.3+iOS 8.1免证书开发+真机调试+生成ipa(原创)

一直以来都是用 Xcode 开发的程序都是在 iOS Simulator上面运行,如果进行真机测试,就要苹果开发者账号,就得花$99美元,这里给出在没有开放者账号情况下,免费在真机运行自己的ipa文件,前提是iphone手机是越狱机。

一.创建证书

1.打开 Finder -> 实用工具 -> 钥匙串访问

2.点击 钥匙串访问 -> 证书 -> 创建证书

3.证书名称必须添加 :“iPhone Developer”,过程如下:

img

img

img

img

img

img

img

img

img

二.修改 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_REQUIREDENTITLEMENTS_REQUIRED这两个键值 YES 改为 NO

3.修改 Info.plist 文件。

Command + Shift + G查找/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/文件夹,在该目录下找到Info.plist文件,打开该文件,将文件中的XCiPhoneOSCodeSignContext 全部修改为 XCCodeSignContext,分别在DefaultProperties 分支下、OverrideProperties 分支下和 RuntimeRequirements分支下。

img

img

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 Signimg

2.添加自定义的生成后脚本 在Build Phases中添加一个PhaseEitor -> 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 选项。

img

四.生成IPA文件

将代码先生成 Release 目标.点击img项目demo,找到Manage Schemes选项, 在Build Configuration,把 RunTestDebug 改为 Releaseimg img

然后打开工程的输出文件夹,一般目录是 /Users/用户名/Library/Developer/Xcode/DerivedData/以工程名打头的文件夹/Build/Products/Release-iphonesimulator 该目录下有xxx.app 文件。把xxx.app 拉入 iTunes 中 -> 我的应用程序, img

再把它从 iTunes 列表拉到桌面,就是 xxx.ipa 了。最后把这个 ipa 文件放到 iphone 越狱机,就可以免费测试了。

img

总结

目前 Xcode 已经把项目打包成 ipa,但是由于我还没有越狱机,真相到底是不是就是这样配置呢?还有待最后的考验。

参考

http://www.360doc.com/content/13/1029/13/110467_325036445.shtml

http://jingyan.baidu.com/article/1709ad80af62f84634c4f0bb.html