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:/ ...
随机推荐
- [ Java面试题 ]框架篇二
1.Hibernate工作原理及为什么要使用Hibernate? 工作原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Tr ...
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(13)- 从Serial(1-bit SPI) EEPROM/NOR恢复启动
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Serial EEPROM/NOR恢复启动. 在前几篇里痞子衡介绍的Boot Device都属于主动启 ...
- Python之在函数中使用列表作为默认参数
本文将介绍笔者在工作中遇到的Python的一个坑,那就是使用列表作为默认参数. 我们知道,在Python中,列表(list)是可变对象,所以列表的内容可能会在函数内改变.另一个需要注意的是,使 ...
- 常用H5
HTML5笔记 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!! 例如: video 标签和 audio 及 canvas ...
- Ambari Agent 源码分析
一.ambari-agent 启动方式 Ambari-Agent的启动脚本为/etc/init.d/ambari-agent.该脚本主要实现了start,stop,status,restart,res ...
- 如何解决Dynamics 365的错误:用户身份验证无效,MSIS0006
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复246或者20170312可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- arcgis for js学习之Graphic类
arcgis for js学习之Graphic类 <title>Graphic类</title> <meta charset="utf-8" /> ...
- C#1到C#4使用委托的几种方式
using System; namespace DelegateDemo { class Program { private delegate int Cacu(string str); static ...
- 【Linux】【Apatch Tomcat】Linux、CentOS7安装最新版Apartch Tomcat环境
1.前言 相当嫌弃,博客园搞掉了我快写完的 Tomcat. 请先安装 :[Linux][Java]CentOS7安装最新版Java1.8.191运行开发环境 虽然安装Tomcat没啥技术,但是还是记录 ...
- sed 查找文件的某一行内容
1,查找文件text中第三行的内容 命令: sed -n '3p' text 2,查找文件text中第二行到第四行的内容 命令: sed -n '2,4p' text