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


推荐阅读
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
  • Linux下Google Test (GTest)测试环境搭建步骤
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • [译]  OS X 和 iOS 的测绘框架Core Plot 入门教程
    [译] OS X 和 iOS 的测绘框架Core Plot 入门教程 ... [详细]
  • 使用R语言进行Foodmart数据的关联规则分析与可视化
    本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。 ... [详细]
  • 本文介绍如何使用R语言中的相关包来解析和转换搜狗细胞词库(.scel格式),并将其导出为CSV文件,以便于后续的数据分析和文本挖掘任务。 ... [详细]
  • 本文介绍了在 CentOS 7 系统中如何查看所有活动进程及其运行时间。通过使用 `netstat` 和 `ps` 命令,您可以轻松获取进程的详细信息,包括启动时间、用户、终端和命令等。 ... [详细]
  • 解决Jenkins编译过程中ERROR: Failed to Parse POMs的问题
    在使用Jenkins进行自动化构建时,有时会遇到“ERROR: Failed to parse POMs”的错误。本文将详细分析该问题的原因,并提供有效的解决方案。 ... [详细]
  • 本文介绍了如何处理在Xcode构建过程中出现的多个命令生成相同文件的问题,特别是当这些文件与Info.plist无关时。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 在 Tomcat 上部署 Jenkins 实现持续集成环境搭建
    本文介绍了如何在Tomcat服务器上部署Jenkins以构建持续集成环境。首先,需下载并解压Tomcat压缩包,例如 `apache-tomcat-8.5.37.tar.gz`。接着,为Tomcat创建一个管理用户,并对相关文件目录进行权限配置,确保Jenkins能够顺利运行于Tomcat之上。此外,还详细阐述了环境配置、服务启动及基本的故障排查技巧,为用户提供了一套完整的部署指南。 ... [详细]
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社区 版权所有