热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Fastlane

Fastlane-应用上传方式1.苹果方法直接通过Xcode上传ipa通过Xcode自带开发工具ApplicationLoader(最新版本Xcode已经不支持该方式)通

应用上传方式

1. 苹果方法

  1. 直接通过 Xcode 上传 ipa
  2. 通过Xcode 自带开发工具 Application Loader (最新版本Xcode 已经不支持该方式)
  3. 通过altool上传ipa。
  4. 通过Transporter应用上传ipa。苹果新推出的应用
2. 其它方法
  1. Shell 脚本打包
  2. fastlane 快速打包
  3. Jenkins 可视化打包

Fastlane 打包

安装

cocoapods和fastlane一样,也是基于Ruby的开发脚本集合,所以看着很相似

  1. 首先安装正确的 Ruby 版本,在终端用命令行做确认
ruby -v
  1. 检查Xcode 命令行工具是否安装
xcode-select --install

  1. 以上依赖配置完成后就可以通过rubygem 进行安装
sudo gem install fastlane

  1. 安装成功后,cd 到你的工程目录,执行

fastlane init

基本文件介绍

初始化后./fastlane 文件 中有两个重要文件

1. Appfile

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

app_identifier("[[APP_IDENTIFIER]]")  # The bundle identifier of your app
apple_id("[[APPLE_ID]]")              # Your Apple email address

2. FastFile

默认生成文件内容:

# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# 如果希望fastlane 自动更新取消下面一行注释
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)

platform :ios do

    #1.用于执行任务之前的操作
    before_all do 
    
    end

    #2.定义用户的主要任务流程,比如打包ipa,执行测试等
    desc "Runs all the tests" 
    lane :test do 
        scan
     end

    #3.用于执行任务之后的操作
    after_all do |lane|
    
    end 

    #4.用于发生错误的操作
    error do |lane, exception| 
        # slack( # message: "Error message" # )
    end
  
end

关于务lane
desc "Push a new beta build to TestFlight"   //该任务的描述
lane :beta do                                //定义名字为 beta 的任务

       //构建App
       build_app(
                 workspace: "expample.xcworkspace", 
                 scheme: "example")
       
       //上传到testfilght
       upload_to_testflight  
end

其中两个 Action

  • build_app 生成 ipa 文件
  • upload_to_testflight 把 ipa 文件上传到 TestFilght

在控制台执行

fastlane beta 

即可执行任务,按照上面的任务,会生成 ipa并上传到 TestFilght.

实践

编写自己的lane

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
  desc "生产环境包"
  lane :pro do
  
  //时间函数
  currentTime = Time.new.strftime("%Y-%m-%d-%H-%")
  
  build_app(
            export_method    :  "ad-hoc",        //用于导出归档的方法
            workspace        :  "EWDemo.xcworkspace", //工作区文件的路径
            scheme           :  "EWDemo",         //该项目的计划,确保它被标记为Shared
            include_symbols  :  false,           //ipa文件应该包含符号
            output_directory :  "./fastlane")    //ipa文件应该存储在的目录
            output_name: "#{currentTime}#{'EWDemo.ipa'}",
  end

详解

cocoapods : Runs pod install for the project

gym : Alias for the build_app action 别名

build_app : Easily build and sign your app 方便地生成和签名ipa

build_ios_app : Alias for the build_app action but only for iOS

注意
app-store,    #AppStore正式生产环境包
ad-hoc,       #生产测试包
enterprise,   #企业包(299美刀账号)
development   #开发测试包

Fastlane 打包上蒲公英

  1. 安装蒲公英的Fastlane 插件
fastlane add_plugin pgyer
  1. 进入项目目录 ,初始化Fastlane
fastlane init

  1. 修改fastfile 文件
lane :beta do
  build_app(export_method: "ad-hoc")
  pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e")
end

Xcode 8.3 和 Xcode 8.3 以后的版本中, export_method 的值,需要根据开发者的打包类型进行设置,可选的值有app-store、ad-hoc、development、enterprise

  1. 执行fastlane 命令
fastlane beta


推荐阅读
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • python3.7 安装pip3_python3的pip3安装
    ---恢复内容开始---pip3的安装需要对应一整套python的编译工具库,所以安装好的pip3是这个样子:inearAi:~$pip3-Vpi ... [详细]
  • 1jdk去网站下载,然后拷贝到linux上;或直接wgethttp:download.oracle.comotn-pubjavajdk8u181-b1 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Firefox火狐浏览器关闭到http://detectportal.firefox.com的流量问题解决办法
    本文介绍了使用Firefox火狐浏览器时出现关闭到http://detectportal.firefox.com的流量问题,并提供了解决办法。问题的本质是因为火狐默认开启了Captive portal技术,当连接需要认证的WiFi时,火狐会跳出认证界面。通过修改about:config中的network.captive-portal-service.en的值为false,可以解决该问题。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • jdk jenkins 配置ant_Jenkins系列之—04 节点配置
    一、节点配置1.进入【系统管理】-【节点管理】-【新建节点】,录入节点名,选择PermanentAgent,下一步录入节点详细配置信息&# ... [详细]
author-avatar
mobiledu2502877091
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有