iOS自动化打包上传的踩坑记
http://www.cocoachina.com/ios/20160624/16811.html
很久以前就看了很多关于iOS
自动打包ipa
的文章, 看着感觉很简单, 但是因为一直没有AppleDeveloper
账号可以给我用, 到了真的要搞自动打包的时候, 才发现到处都是坑。
基本命令
-
xcedebuild: 生成
Archive
、导出ipa
, 还有其它功能… -
xcrun: 把
*.app
打包成ipa
, 还有其它功能…
基本使用
一. xcedebuild
打包Archive
文件
1
|
xcedebuild -workspace ${path to *.xcworkspace} -scheme ${scheme} -destination generic/platform=iOS archive -configuration Release ONLY_ACTIVE_ARCH=NO -archivePath ${export path *.arichive} |
-
-workspace 你的
*.xcworkspace
文件 -
-scheme 项目文件里面的
scheme
-
-archivePath 生成的
*.arichive
文件路径
二. xcedebuild
从*.archive
导出ipa
1
|
xcedebuild -exportArchive -exportFormat IPA -archivePath ${path to *.archive} -exportPath ${export path *.ipa} -exportProvisioningProfile ${ProvisioningProfileName} |
-
-archivePath 你的
*.archive
文件, 可以使用上一个命令导出 -
-exportPath 导出的
ipa
路径 -
exportProvisioningProfile 你的Distribution发布证书的名称(只需要名称)
三. xcrun
打包ipa
"xcrun -sdk iphoneos PackageApplication -v ${path to *.app} -o ${package path *.ipa}"
-
-v 你的
*.app
文件, 生成的*.archive
里面有 -
-o 打包生成的
*.ipa
文件路径, 注意!!!这里是不能填相对路径, 因为这里的路径环境变量不是当前执行命令的路径了
踩坑
坑一
使用第一个命令前, 需要确保你的项目的签名配置好, 证书下好最新的
坑二
第二个命令的-exportProvisioningProfile
填的只是你的发布证书的名称, 不是那一串id
坑三
第二个命令打包出来的*.ipa
不能用来上传到AppStore
, 一直报CocoaPods里面的第三方库签名错误
坑四
打包出来的*.ipa
需要上传到AppSotre
的话, 可以使用第三个命令, xcrun
那一个
坑五
使用第三个命令打包出来的*.ipa
, 上传到AppStore
之后, 登录到iTunes Connect-APP-所有构建版本
查看到上传的*.ipa
正在构建。但是过了一会儿, AppleDeveloper
账号的邮箱就会收到一封报错的邮件, 大概是说你的*.ipa
包里面, 缺少了一个SwiftSupport
文件夹
经过各种搜索之后, 原来需要把xcrun
打包出来的*.ipa
解压, 然后新建一个文件夹, *.archive
里面的SwiftSupport
文件夹copy
进去, 还有把ipa
解压出来的move
进入, 最后打个zip包, 再改成ipa
后缀就可以上传到AppStore
了(应该吧, 还没测试????)
番外篇
在踩到了第五个坑之后, 在github
发现了一个iOS
的打包、发布库…
上地址: https://github.com/nomad/shenzhen
懒得自己搞的可以使用这个库, 感觉还是挺不错的
原文地址: iOS自动化打包上传的踩坑记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2015-06-24 iOS 9适配系列教程:后台定位
2015-06-24 入行几年后,互联网人的未来应该在哪里?