返回首页
当前位置: 主页 > 精通Office > Ubuntu教程 >

如何使用 xcodebuild 从 archive 导出 ipa

时间:2017-11-15 21:21来源:2018年最新注册送彩金www.zhixing123.cn 编辑:麦田守望者

Xcode 6.0 从 Archive 导出 ipa 会要求输入开发者账号,如下图所示,使用xcodebuild这个命令行工具可以绕开这个限制。

add_apple_accountXcode 在导出 ipa 时提示输入开发者账号

命令
清理项目
 


1
2
3 xcodebuild clean -project ${PROJECT_NAME}.xcodeproj \
-configuration ${CONFIGURATION} \
-alltargets

 

Archive
 


1
2
3
4 xcodebuild archive -project ${PROJECT_NAME}.xcodeproj \
-scheme ${SCHEME_NAME} \
-destination generic/platform=iOS \
-archivePath bin/${PROJECT_NAME}.xcarchive

 

Export ipa
 


1
2
3
4 xcodebuild -exportArchive -archivePath bin/${PROJECT_NAME}.xcarchive \
-exportPath bin/${PROJECT_NAME} \
-exportFormat ipa \
-exportProvisioningProfile ${PROFILE_NAME}

 

说明
${PROJECT_NAME}
project_name

${SCHEME_NAME}
scheme_name

${PROFILE_NAME}
profile_name

FAQ
xcodebuild archive 时卡住
在调用上面的 xcodebuild archive 命令时卡住,

xcodebuild archive 卡住xcodebuild archive 卡住

可能是由于 scheme 文件不存在造成的。

一般只将 Xcode 项目文件中的 project.pbxproj 文件加入到版本控制,而忽略和用户相关的 scheme 文件。Xcode 会自动生成 scheme 文件,但是 xcodebuild 工具不会,在执行 archive 的时候会卡死。

用户相关的 scheme用户相关的 scheme

为了将 scheme 文件加入版本控制,需要将 scheme 改为共享类型。

管理 scheme

 

管理 scheme

 

共享 scheme

 

共享 scheme

 

共享的 scheme

 

共享的 scheme

Code signing failed或执行codesign命令时卡住
一种可能的情况如下图所示。

codesign failed

 

codesign failed

有两种解决办法:

第一种是将所用的私钥从Login Keychain移动到System Keychain,并设置成允许codesign访问或者允许所有的应用访问;
第二种是在命令行解锁Keychain,但也需要将私钥设置成允许codesign访问或者允许所有的应用访问。
设置私钥允许codesign访问私钥或者允许所有的应用访问私钥
keychain-access-allow-codesign

 

允许codesign访问私钥

 

允许所有应用访问私钥

 

允许所有应用访问私钥

在执行xcodebuild前,在命令行解锁keychain
 


1
2
3
4
5 LOGIN_KEYCHAIN=~/Library/Keychains/login.keychain
# 用户密码
LOGIN_PASSWORD=xxx

security unlock-keychain -p ${LOGIN_PASSWORD} ${LOGIN_KEYCHAIN}

 

no provisioning profile matches ‘xxx’
${PROFILE_NAME} 不是 .mobileprovision 的文件名,也不是 profile 的 UUID,而是 profile 的 Name 字段,可以在 Xcode 中查看:

Xcode 中查看 profile name

 

Xcode 中查看 profile name

也可以在 .mobileprovision 文件中查看:

mobileprovision 文件中查看 profile name

 

mobileprovision 文件中查看 profile name

脚本
GitHub:spritefly/ios-builder
 

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):xcodebuild
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣
博聚网