热门标签 | 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


推荐阅读
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
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社区 版权所有