Xcode无开发者账号生成IPA
前提: IOS设备需要越狱, Mac OS X 10.9 , Xcode 5.1.1
一、创建证书
打开Utilities-Keychain Access。然后在菜单栏里点击KeychainAccess-Certificates Assistant-Create a Certificate来打开向导。第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为Code Signing,将"Let me overridedefaults"选中。之后的步骤无需更改,一路点击“Submit”和“Continue”来完成这个向导就可以!
二、修改XCode配置文件
1. 修改配置文件:
按照该路径找到SDKSettings.plist然后进行编辑:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/SDKSettings.plist
将以下两段中的键值YES改为NO:CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED
按照该路径找到Info.plist然后进行编辑:
Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
将Info.plist中全部的XCiPhoneOSCodeSignContext修改成 XCCodeSignContext,他们分别在DefaultProperties分支下、OverrideProperties分支下和RuntimeRequirements分支下。
2.添加文件:
连接互联网后在终端执行:
mkdir/Applications/Xcode.app/Contents/Developer/iphoneentitlements
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
curl-O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mvgen_entitlements.txt gen_entitlements.py
chmod 777gen_entitlements.py
2. 修改Derived Data目录
默认设置下,Build后的*.app文件是在/Users/用户名/Library/Developer/Xcode/DerivedData/以工程名打头的文件夹/Build/Products/Release-iphoneos目录下,为了方面获取生成的*.app,我们可以修改Derived Data路径,
三、 修改工程设置
1. 禁用Xcode自动的签名操作
将工程配置中所有的Code Signing选项全部设为Don't Code Sign,如图。可能需要先点击“All”让这个选项显示出来。
2.添加自定义的生成后脚本
在Build Phases中添加一个Phase,菜单栏Editor- AddBuild Phase,然后单击Add Run Script,输入以下脚本:
exportCODESIGN_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 "iPhoneDeveloper"--entitlements"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent""${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
四、打包IPA
将生成的*.app文件拖到itunes下,然后拖回桌面,这样就生成好了IPA文件。