fastlane 入门使用-程序员宅基地

640?wx_fmt=jpeg

黑客技术 点击右侧关注,了解黑客的世界! 640?wx_fmt=jpeg

640?wx_fmt=jpeg

Linux编程 点击右侧关注,免费入门到精通! 640?wx_fmt=jpeg


回想一下我们发布 iOS 应用,不仅步骤繁琐,非常耗时。一旦其中一步失误了,又得重新来。作为一名优秀的工程师不应该让这些重复的工作在浪费我们的人生。在软件工程里面,我们一直都推崇把重复、流程化的工作交给程序完成。这次的文章主角就是为了解放我们而来—— fastlane,这个明星库在 github 已经高达 1w 多的start量,得到了广大码农们的认为。


Fastlane


fastlane 是 iOS (还有 Android ) 布署和发布最好的一套工具。它处理了所有重复的工作,例如生成截图,处理签名和发布应用。


安装


fastlane实际是由Ruby写的,使用Ruby的Gem安装是我们的不二选择



sudo gem install fastlane -NV


接着在终端进入项目里面(目前fastlane swift 正在测试,就以之前的版本讲解)



fastlane  init


按照提示初始化完成之后,在项目下面生成 fastlane 文件夹


基本介绍


先普及两个重要的文件,初始化后在./fastlane文件件即可找到


Appfile


存放着 AppleID 或者 BundleID 等一些fastlane需要用到的信息。基本上我们不需要改动这个文件的内容。


它放到你项目下面的 ./fastlane文件夹下面,默认生成的文件如下:



app_identifier "net.sunapps.1" # The bundle identifier of your app
apple_id "felix@krausefx.com"  # Your Apple email address

# 如果账号里面有多个team,可以指定所有的team
# team_name "Felix Krause"
# team_id "Q2CBPJ58CA"

# 指定 App Store Connect 使用的team
# itc_team_name "Company Name"
# itc_team_id "18742801"


更多详细的配置,可以参考一下文档


Appfile Doc


FastFile


一开始生成的Fastlane文件大概如下:



platform :ios do
  before_all do

  end

  desc "Runs all the tests"
  lane :test do
    scan
  end

  # You can define as many lanes as you want

  after_all do |lane|

  end

  error do |lane, exception|
    # slack(
    #   message: "Error message"
    # )
  end
end


Fastfile里面包含的块类型有四种:


  • before_all 用于执行任务之前的操作,比如使用cocopods更新pod库

  • after_all 用于执行任务之后的操作,比如发送邮件,通知之前的

  • error 用于发生错误的操作

  • lane 定义用户的主要任务流程。例如打包ipa,执行测试等等


如下面,来讲解一下lane的组成。



desc "Push a new beta build to TestFlight"   //该任务的描述
lane :beta do  //定义名字为 beta 的任务
  build_app(workspace: "expample.xcworkspace", scheme: "example"//构建App,又叫gym
  upload_to_testflight //上传到testfilght,
end


该任务的作用就是构建应用并上传到 TestFilght。下面有两个 Action


  • build_app 生成 ipa 文件

  • upload_to_testflight 把 ipa 文件上传到 TestFilght


在控制台进入项目所在的文件夹下面,执行下面命令



fastlane beta


即可执行任务,按照上面的任务,会生成 ipa 并上传到 TestFilght。其实很简单,定义好任务,控制台执行任务即可。


实践


那么如何写一个我们属于自己的 lane 呢? 就以发布 ipa 到 fir 为例



desc "发布到Fir"
lane :pulish_to_fir do
  # 运行 pod install 
  cocoapods 
  # 构建和打包ipa
  gym(
    clean: true,
    output_directory: './firim',
    scheme: 'xxxx',
    configuration: 'Test',
    export_options: {
      method: 'development',
      provisioningProfiles: {
          "xxx.xxx.xxx""match Development xxx.xxx.xxx"
      },
    }
  )
  # 上传ipa到fir.im服务器,在fir.im获取firim_api_token
  firim(firim_api_token: "fir_token")
end


下面解释一下上面的内容



cocoapods


在项目里执行 pod install,详细例子可见 Doc



sh "./update_version.sh"


这是由作者本地写的更新版本号的脚本



gym (又名build_app)


gym 是fastlane的里面一部分,它可以方便生成和签名ipa,能为开发者省下不少功夫。


Doc



firim


firim 是一个插件,执行 fastlane add_plugin firim 即可把插件装好


总结


fastlane里面内置很多常用的Action,具体的使用方法建议多看一下官方文档。


fastlane项目里面也有很多其他公司的 例子,在不清楚怎么使用的时候,看看这些例子也未尝不是一种方法。


【无门槛免费领】

535G超强程序员编程

0基础从入门到精通自学视频教程!

640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg

640?wx_fmt=png万水千山总是情,点个 “ 在看” 行不行
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/olsQ93038o99S/article/details/90455422

智能推荐

Unity接入高德定位sdk简单三步无需与安卓工程交互_高德地图 unity sdk-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏24次。欢迎加入Unity业内qq交流群:956187480qq扫描二维码加群源码,原工程下载地址:https://download.csdn.net/download/qq_37310110/10729281参考地址:https://blog.csdn.net/qq_37310110/article/details/83145193一:高德定位有效key的获取参考官方文档地址:获..._高德地图 unity sdk

groupby单字段分组_lambdaquery groupby-程序员宅基地

文章浏览阅读84次。人生不缺不堪回首的过去,也不缺自欺欺人的幻想,脚踏实地的做自己,做自己喜欢的自己。生活不会辜负你,辜负你的只有人心。_lambdaquery groupby

使用Filezilla在ubuntu与windows之间互传文件_win11用filezila连ubuntu传文件很慢。-程序员宅基地

文章浏览阅读393次。开启ubuntu下的FTP服务使用命令sudo apt-get install vsftpd安装FTP服务,当软件安装成功后使用命令sudo vi /etc/vsftpd.conf打开配置文件(文件编辑器可自行选择,推荐使用vscode),打开之后找到local_enable=YES以及write_enable=YES取消这两行的注释“#”。保存之后sudo /etc/init.d/vsfpd restart重启FTP服务。Filezilla的配置在Filezilla软件打开文件选择新建站点,自己_win11用filezila连ubuntu传文件很慢。

缺陷或负样本难以收集怎么办?使用生成式模型自动生成训练样本,image-to-image Stable diffusion_缺陷检测样本太少,如何生成样本-程序员宅基地

文章浏览阅读1.4k次。面对这种情况,工程师一般会利用PS工具,或在良品上人为制造缺陷,或在产线蹲守等方式来获取足量缺陷图。不同数据的形式(图像或者文本,是否有缺失),数据的规模(样本数和维度大小),数据中存在的结构信息(稀疏、低秩),选择的模型都应该不一样。数据增广,就是尽可能产生更多的样本,比如,一张图像,通过裁剪、变换、翻转、加噪声,获得更多样本;使用k折交叉验证训练模型,可以提供模型的精度,防止划分数据的随机性。缺陷检测实验中,基于学习的缺陷检测算法,受困于缺陷样本少。迁移其他数据进行模型学习,并根据任务微调模型。_缺陷检测样本太少,如何生成样本

SSH-sshd_config配置文件详解-xShell连接Linux服务器提示密码错误。_错误:sshd_config配置文件不存在,无法继续!-程序员宅基地

文章浏览阅读6.8k次。xShell连接Linux服务器提示密码错误。 1、检查虚拟机SSH服务是否开启: service sshd status,如果没有开启,请执行service sshd start启动该服务,或者通过service sshd restart重启该服务;2、检查 /etc/ssh/ssh_config文件: ssh服务端口是否为22,Protocol协议版本是否为2(一般为2安全。1为ss_错误:sshd_config配置文件不存在,无法继续!

使用docker安装mysql-程序员宅基地

文章浏览阅读5.7w次,点赞35次,收藏341次。1.在docker hub 上查看要下载的mysql镜像名称:docker hub镜像仓库中为我们开发要打开docker hub 网站dockerHub官网地址在上方搜索栏里输入mysql找到要拉取的镜像版本,在tag下找到版本回到虚拟机界面,执行下面命令来拉取mysql镜像不指定版本号,默认下载最新版本:sudo docker pull mysql指定版本号:sudo docker pull mysql:5.72.镜像拉取完成后,用该镜像创建mysql实例,使用下面的命令来_docker安装mysql

随便推点

Activiti7.0实战学习(七):流程定义信息之删除_activiti删除model表还要删除什么表-程序员宅基地

文章浏览阅读2.8k次。背景数据库中要有必要的数据信息。比如流程定义表,流程定义的部署,流程实例的启动。根据ID删除,根据的是act_ru_deployment表的id进行删除的。这个删除操作影响了哪些表中的数据记录呢?流程定义信息的删除,操作的是act_ru_deployment表。是因为我们部署流程定义的信息的时候,其实就是把bpmn中的数据写到数据库中而已。因此,它删除的时候,没有找act_ru_proc..._activiti删除model表还要删除什么表

Centos磁盘空间转移重新分配_centos重新分配磁盘空间-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏19次。重新分配centos磁盘空间,将其中一个挂载点的空间分配给另一个挂载点_centos重新分配磁盘空间

POJ 3683 Priest John's Busiest Day (2 - SAT) - from lanshui_Yang-程序员宅基地

文章浏览阅读1k次。题目大意:一个城镇里只有一个牧师,在国庆节这一天,他要为 n 对夫妇的婚礼祷告,这 n 对夫妇婚礼的开始时间 s 、结束时间 e 和祷告时间 d 不尽相同,但是祷告只能在每个婚礼的开始或结束时进行(如一个婚礼的开始时间为s , 结束时间为 e , 那么祷告的时间就为 s ~ s + d 或 e - d ~ e)。问:这个牧师是否能为所有的婚礼祷告,如果能,则输出为每个婚礼祷告的开始时间和结束时间。

解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误_java.io.filenotfoundexception: java.io.filenotfoun-程序员宅基地

文章浏览阅读6.6k次,点赞7次,收藏38次。解决java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems_java.io.filenotfoundexception: java.io.filenotfoundexception: hadoop_home an

vue工程build后css样式失效问题_vue为什么引入了antd使用npm run build-lib后的库引入以后样式却失效了-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏4次。项目开发完成后,执行 npm run build进行打包,将打包完成的dist文件部署在服务器。配置好域名解析,就可以实现工程上线。上线后,我们有时候会发现,它怎么和本地调试时长得不一样?长得不一样是样式问题,是打包的时候顺序先后问题,有一些样式没有生效,有一些样式被覆盖了。这时候可以考虑以下几种方法。1.main.js样式引入顺序问题有时候我们发现组件内的样式没有生效,可..._vue为什么引入了antd使用npm run build-lib后的库引入以后样式却失效了

文献速递:基于SAM的医学图像分割---在医学图像中进行任何分割-程序员宅基地

文章浏览阅读637次,点赞19次,收藏15次。这些模型通常被设计和训练用于特定的分割任务,当应用于新任务或不同类型的成像数据时,它们的性能可能会显著下降。我们通过汇总公开可用的医学图像分割数据集中的图像,策划了一个全面的数据集,这些数据集从互联网上的各种来源获得,包括癌症影像档案(TCIA)、Kaggle、Grand-Challenge、Scientific Data、CodaLab以及医学图像计算和计算机辅助干预学会(MICCAI)的分割挑战。然而,现有的方法通常是针对特定的模态或疾病类型定制的,缺乏在医学图像分割任务的多样性谱系中的普遍适用性。