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自动化打包上传的踩坑记
iOS自动化打包上传的踩坑记的更多相关文章
- 使用Windows下的git工具往github上传代码 踩坑记录
使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...
- iOS APP打包上传到APPstore的最新步骤
一.前言: 作为一名iOS开发者,把辛辛苦苦开发出来的App上传到App Store是件必要的事.但是很多人还是不知道该怎么上传到App Store上 下面就来详细讲解一下具体流程步骤. 二.准备: ...
- Windows环境下IOS APP打包上传AppStore详细流程
我们知道在上架苹果应用过程中,申请发布证书需要用到钥匙串,上传ipa需要用到xcode或Application loader提交构建版本,这都需要Mac苹果机. 本文介绍如何在Windows环境下申请 ...
- Xcode打包上传遇到的坑
1.安装测试包的时候提示APIInternalError ①是否增加了测试设备的UUID ②是否使用adhoc证书打包 2.打包错误:error: couldn't remove '/Users/xx ...
- 在React中使用WebUploader实现大文件分片上传的踩坑日记!
前段时间公司项目有个大文件分片上传的需求,项目是用React写的,大文件分片上传这个功能使用了WebUploader这个组件. 具体交互是: 1. 点击上传文件button后出现弹窗,弹窗内有选择文件 ...
- ios app 打包上传 app store(Application Loader)
背景:使用Xcode 上传APP, 这个 有时候很慢,构建版本需要等很长时间,所以我推荐使用Application Loader 1.使用xocd 打包,导出.ipa文件 2. OK ,跟着上面做, ...
- iOS: xcode打包上传iTunes失败,iTunes Store operation failed,this action can not complete .try again
通过xcode点击“upload to app store”上传到itunes,结果一直提示“itunes store operation failed” 原因:网速的问题,我之前也遇到过,网速好的时 ...
- iOS 打包上传AppStore相关(3)-iTunes相应配置以及使用蒲公英网站进行应用托管分发(链接/二维码)
上一篇讲到我们最终生成了一个格式为 .xcarchive 的文件(可以右键并Show in Finder)查看.本篇我们就进行最后的设置,打包上传.另外,还有一个小福利,那就是打测试包分发链接测试. ...
- iOS 打包上传AppStore相关(2)-Xcode相应配置
上一篇描述了如何在AppleDeveloper创建Certificates.App IDs和Provisioning Profiles的过程.本篇将详细描述在Xcode部分我们需要做的配置. 1.配置 ...
随机推荐
- HLog工作原理
- Vue:$route 和 $router 的区别
参考: https://uzshare.com/view/788446 https://router.vuejs.org/zh/ $route 是“路由信息对象”,包括 path,params,has ...
- BZOJ4383/LuoGuP3588 Pustynia/PUS 线段树建图优化
我会告诉你我看了很久很久才把题目看懂吗???怀疑智商了 原来他给的l,r还有k个数字都是下标... 比如给了一个样例 l, r, k, x1,x2,x3...xk,代表的是一个数组num[l]~num ...
- Ionic login简单登录页面
1.login.html <ion-view view-title="登录" hide-nav-bar="true"> <div class= ...
- JavaSE_06_Collection、泛型
1.Collection集合 1.1 集合概述 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致.在开发中一 ...
- python基础---递归函数 知识点自查填空题
什么是递归函数:在函数中调()叫递归函数. 递归函数最大递归深度是997或998----是()设的限制. 注:如果递归次数太多,就不适合使用递归来解决问题. 递归的缺点: 占(). 递归的优点:会让代 ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---工厂模式之工厂方法[转]
1 2{<HeadFirst设计模式>工厂模式之工厂方法 } 3{ 产品类 } 4{ 编译工具 :Delphi20 ...
- 软件-DiskSpeekUp:DiskSpeekUp(磁盘整理工具)
ylbtech-软件-DiskSpeekUp:DiskSpeekUp(磁盘整理工具) Disk SpeedUP是一个完全自由和极快的碎片整理工具来分析,碎片整理和优化计算机性能的峰值磁盘. 它是安全没 ...
- JEECMS的几个细节
最近想自己写一些标签,看了一下JEECMS,感觉有些标签还是很值得学习的. 1.图片新闻:可以实现类似于flash切换图片的那种效果 效果: 代码: [@cms.ArtiList chnlId='' ...
- DSP日志打印 LOG_printf
LOG_printf 依托BIOS环境,需要引用下列头文件: #include <std.h> #include <log.h> 并且,要在.tcf环境中添加一个LOG ...