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 安装、使用、更新和卸载的更多相关文章

  1. 40、IOS自动打包-Python脚本

    第一种:基于编译的打包 编译工程--找到.app文件--新建Payload文件夹--拷贝.app到Payload文件夹--压缩成zip--更改后缀名为ipa--完成! 第二种(有问题,暂时不需要看) ...

  2. linux软件的安装,更新与卸载

    Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类. 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件: 第二:对应的有管理 ...

  3. Linux实践篇--linux软件的安装,更新与卸载

    本文出处:http://www.cnblogs.com/lhj588/archive/2012/07/17/2595328.html,感谢作者分享. Linux常见的安装为tar,zip,gz,rpm ...

  4. CentOS软件的安装,更新与卸载命令

    Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类. 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件: 第二:对应的有管理 ...

  5. Robot Framework的安装、更新与卸载

    Robot Framework的安装.更新与卸载 一,安装RF前的准备 一般就三种执行环境 Python, Jython (JVM) 和 IronPython (.NET): 安装python: #T ...

  6. VS C#程序打包覆盖安装不能更新的解决方法

    最近写个小程序,打包覆盖安装更新时老是不起作用,还是原来的程序. 在网上四处查找,productcode和ersion都已经更改,removepreviousversions也设置成true了,可就是 ...

  7. Anaconda:指令 安装、更新、卸载库

    学习总结自:如何使用anaconda安装或更新自己想要的库_xiexu911的博客-CSDN博客_anaconda 安装库 打开Anaconda Prompt后,输入指令及响应 conda list: ...

  8. iOS客户端的在线安装和更新——针对ADHoc证书

    这篇文章纯给自己留个备份,所以对AdHoc证书内部分发和对iOS客户端开发不了解的请直接无视. 一般在iOS游戏或应用开发过程中,正式发布到App Store之前,都需要内部的测试,客户端的安装是个不 ...

  9. jenkins iOS自动打包

    1.Jenkins配置 采用命令行下载配置Jenkins,防止产生权限问题 1)先安装brew,打开命令行,输入:/usr/bin/ruby -e "$(curl -fsSL https:/ ...

随机推荐

  1. Spring系列之手写一个SpringMVC

    目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 Spring系列之手写注解与配置文件的解析 引言 在前面的几个章节中我 ...

  2. 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个: 通过对一个对象进行加锁来实现同步,如下面代码. synchr ...

  3. 微服务架构:Eureka参数配置项详解

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能 ...

  4. 完美数据迁移-MongoDB Stream的应用

    目录 一.背景介绍 二.常见方案 1. 停机迁移 2. 业务双写 3. 增量迁移 三.Change Stream 介绍 监听的目标 变更事件 四.实现增量迁移 五.后续优化 小结 附参考文档 一.背景 ...

  5. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  6. 痞子衡嵌入式:第一本Git命令教程(4)- 转移(add/rm/mv)

    今天是Git系列课程第四课,上一课我们在Git空间里做了一些文件改动并且知道了如何利用Git查看这些变动,今天痞子衡要讲的是将这些变动提交到Git本地仓库前的准备工作. Git仓库目录下的文件改动操作 ...

  7. 聊聊数据库~3.SQL基础篇

    上篇回顾:聊聊数据库~SQL环境篇 扩展:为用户添加新数据库的权限 PS:先使用root创建数据库,然后再授权grant all privileges on 数据库.* to 用户名@"%& ...

  8. 第59章 IdentityServer交互服务 - Identity Server 4 中文文档(v1.0.0)

    IIdentityServerInteractionService接口旨在提供用户界面用于与IdentityServer通信的服务,主要与用户交互有关.它可以从依赖注入系统获得,通常作为构造函数参数注 ...

  9. PLSQL创建Oracle定时任务

    在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢?下面我简单介绍使用工具创建定时器的方法: 1.创建任务执行的存储过程,如名称为YxtestJob,向测试表中插入数据 cr ...

  10. Linux 查找最大文件

    1.使用命令df -h 查看硬盘空间  2.使用命令du -h –max-depth=1 /var/log/* 查看/var/log路径下文件的大小 du -sh /* 查看哪个目录最大,一步一步的查 ...