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.配置 ...
随机推荐
- putty开源的ssh软件工具
# 登录远程服务器需要ip和端口即可:还是开源工具用起来无忧无虑.无拘无束,这种感觉实在太舒服了,比起xshell开始免费.后来收费好太多太多,不用担心哪天过期了,想干嘛就干嘛. 软件下载地址:htt ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi代码---工厂模式之抽象工厂[转]
1 2 {<HeadFirst设计模式>工厂模式之抽象工厂 } 3 { 抽象工厂的产品 } 4 { 编译工具:Delphi7.0 ...
- HTML入门:Tag学习
即使 <br> 在所有浏览器中的显示都没有问题,使用 <br /> 也是更长远的保障. 标签 描述 <html> 定义 HTML 文档. <body> ...
- 用sqoop抽取oracle 表到hbase的例子
sqoop import \-Doraoop.disabled=true \--connect jdbc:oracle:thin:@"(DESCRIPTION=(ADDRESS=(PROTO ...
- yum与rpm常用选项
rpm常用的命令组合: rpm 1.对系统中已安装软件的查询-q:查询系统已安装的软件-qa:查询系统所有已安装包-qf:查询一个已经安装的文件属于哪个软件包-ql:查询已安装软件包都安装到何处-qi ...
- 2019-5-21-asp-dotnet-core-图片在浏览器没访问可能原因
title author date CreateTime categories asp dotnet core 图片在浏览器没访问可能原因 lindexi 2019-05-21 11:24:43 +0 ...
- python使用matplotlib:subplot绘制多个子图
1 问题描述 matploglib 能够绘制出精美的图表, 有些时候, 我们希望把一组图放在一起进行比较, 有没有什么好的方法呢? matplotlib 中提供的 subplot 可以很好的解决这个问 ...
- vue项目中实现扫码功能
项目地址:https://github.com/wkl007/vue-scan-demo.git 项目主要是做的一个扫码的功能 核心代码为 <div class="scan" ...
- openCV图像合成
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.h ...
- golang的flag包源码解析与使用
当我们 import package时,package内的全局常量和全局变量会进行初始化,并且紧接着init函数会执行.因此我们先看一下flag包的全局常量和全局变量. 一.flag包的全局常量.全 ...