ios自动打包-fastlane 安装、使用、更新和卸载
ios自动打包使用fastlane
1、首先安装xcode
首先检查是否已经安装 Xcode 命令行工具,fastlane 使用 xcodebuild
命令进行打包,运行 xcode-select --install
命令,根据你的情况进行不同处理。
2、没有弹出提示,命令行提示 xcode-select: note: install requested for command line developer tools
, 则需要运行下面命令,指定 Xcode 命令行工具所在的路径。
$ xcode-select -p // 打印 Xcode 开发目录
/Applications/Xcode.app/Contents/Developer
$ xcode-select --switch /Applications/Xcode.app/Contents/Developer //进行选择
安装 fastlane:
sudo gem install fastlane --verbose 安装成功后查看版本:fastlane --version
初始化:fastlane
进入项目目录,进行初始化操作 fastlane init 选择4、进行自定义操作
补充:
1.fastlane 初始化默认会创建三个文件:Fastfile、Appfile、Deliverfile;两个文件夹:metadata、screenshots
2.Fastfile : 核心文件,主要用于 命令行调用和处理具体的流程,lane相对于一个方法或者函数
3.Appfile : 存储有关开发者账号相关信息
4.Deliverfile: deliver工具的配置文件
安装蒲公英的 fastlane 插件
$ fastlane add_plugin pgyer
安装g工具
sudo gem install gym
bundle install --path vendor/bundle
gem install xcode-select
security unlock-keychain -p 1234 /Users/shangying/Library/Keychains/Login.keychain
打包前,需要开发进行xcode证书配置完成
配置完成后,mac电脑上需要进行一次完整打包过程才可以
脚本是初始化生成的文件,如
/Users/shangying/ios-workspace/syhospital-p-ios/fastlane
脚本配置:
macos:fastlane SY$ vim Fastfile
default_platform(:ios)
platform :ios do
desc "Description of what the lane does"
lane :p do
gym(
clean:true,
scheme:"sy_user_ios_qa",
export_method:"ad-hoc",
#output_name: output_name,
output_directory:"./build",
)
pgyer(api_key: "9b0d93c5............5d0", user_key: "e60b..............b2f4275df4d31")
end
end
appfile文件里写id
如:
app_identifier "com.syxxxxxx.user"
编写脚本进行执行如:
macos:scripts SY$ cat ios-p-app.sh
#!/bin/bash
cd /Users/shangying/ios-workspace/syhospital-p-ios
git checkout qa
git pull
/usr/local/bin/fastlane p
curl -F "file=@/Users/shangying/ios-workspace/syhospital-d-ios/build/sy_doctor_ios_qa.ipa" \
-F "uKey=e60baa4e2c80**********1" \
-F "_api_key=9b0d9****************" \
https://www.pgyer.com/apiv1/app/upload
说明: jenkins执行shell脚本需要注意,环境变量需要带上
#!/bin/bash
export LANG=zh_CN.UTF-8
source ~/.bash_profile
export PATH=$PATH:/Library/Ruby/Gems/2.3.0/gems/xcpretty-0.3.0/bin
sh /Users/shangying/scripts/ios-d-app.sh*
异常: 如果打包出现异常,提示权限不正确解决方案: 添加命令security unlock-keychain -p password /Users/username/Library/Keychains/Login.keychain
https://www.jianshu.com/p/b03e59560d31
lane的名称一定不能有特殊符号如-等,需要为str字符串类型(巨坑)
参考文档: http://www.cocoachina.com/ios/20180516/23396.html
https://www.jianshu.com/p/9d53836a3b64http://www.cocoachina.com/ios/20150728/12733.html
ios自动打包-fastlane 安装、使用、更新和卸载的更多相关文章
- 40、IOS自动打包-Python脚本
第一种:基于编译的打包 编译工程--找到.app文件--新建Payload文件夹--拷贝.app到Payload文件夹--压缩成zip--更改后缀名为ipa--完成! 第二种(有问题,暂时不需要看) ...
- linux软件的安装,更新与卸载
Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类. 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件: 第二:对应的有管理 ...
- Linux实践篇--linux软件的安装,更新与卸载
本文出处:http://www.cnblogs.com/lhj588/archive/2012/07/17/2595328.html,感谢作者分享. Linux常见的安装为tar,zip,gz,rpm ...
- CentOS软件的安装,更新与卸载命令
Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类. 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件: 第二:对应的有管理 ...
- Robot Framework的安装、更新与卸载
Robot Framework的安装.更新与卸载 一,安装RF前的准备 一般就三种执行环境 Python, Jython (JVM) 和 IronPython (.NET): 安装python: #T ...
- VS C#程序打包覆盖安装不能更新的解决方法
最近写个小程序,打包覆盖安装更新时老是不起作用,还是原来的程序. 在网上四处查找,productcode和ersion都已经更改,removepreviousversions也设置成true了,可就是 ...
- Anaconda:指令 安装、更新、卸载库
学习总结自:如何使用anaconda安装或更新自己想要的库_xiexu911的博客-CSDN博客_anaconda 安装库 打开Anaconda Prompt后,输入指令及响应 conda list: ...
- iOS客户端的在线安装和更新——针对ADHoc证书
这篇文章纯给自己留个备份,所以对AdHoc证书内部分发和对iOS客户端开发不了解的请直接无视. 一般在iOS游戏或应用开发过程中,正式发布到App Store之前,都需要内部的测试,客户端的安装是个不 ...
- jenkins iOS自动打包
1.Jenkins配置 采用命令行下载配置Jenkins,防止产生权限问题 1)先安装brew,打开命令行,输入:/usr/bin/ruby -e "$(curl -fsSL https:/ ...
随机推荐
- CentOS7 systemctl tomcat常用配置
开始配置tomcat 1.环境准备,安装java 在生产环境上,我一般使用oracle java,不使用openjdk,所以先卸载系统自带的openjdk yum remove java 下载orac ...
- 用PMML实现机器学习模型的跨平台上线
在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...
- docker 常用命令和使用
首先安装Docker CE 在ubantu上,参照https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-reposito ...
- MySQL 笔记整理(7) --行锁功能:怎么减少行锁对性能的影响?
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 7) --行锁功能:怎么减少行锁对性能的影响? MySQL的行锁是在引擎层由各个引擎自己实现的.因此,并不是所有的引擎都支持行锁,如 ...
- 持续集成配置之Nuget
持续集成配置之Nuget Intro 本文是基于微软的 VSTS(Visual Studio Team Service) 做实现公众类库的自动打包及发布. 之前自己的项目有通过 Github 上的 T ...
- JavaScript 循环语句
while while循环由两个代码块组成,分别是条件语句和循环体. while ( [条件] ) { [循环体] } while循环类似于if语句,不同的是while循环将不断地执行循环体直 ...
- Oracle day04 DML_事务_序列_视图_数据类型_DDL
DMLinsert关键字作用:往表中插入一条(多条)数据 语法1:元祖值式的插入语法1: insert into tablename(column1,column2,...,columnN) valu ...
- Java开发笔记(十四)几种运算符的优先级顺序
到目前为止,我们已经学习了Java语言的好几种运算符,包括算术运算符.赋值运算符.逻辑运算符.关系运算符等基础运算符,并且在书写赋值语句时都没添加圆括号,显然是默认了先完成算术.逻辑.关系等运算,最后 ...
- 面试题之(HTTP协议)【转】
转自:http://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协 ...
- Chrome 下input的默认样式
一.去除默认边框以及padding border: none;padding:0 二.去除聚焦蓝色边框 outline: none; 三.form表单自动填充变色 1.给input设置内置阴影,至少要 ...