ITPub博客

首页 > IT职业 > IT图书 > iOS 使用fastlane实现打包,上传到fir.im、pgyer及

iOS 使用fastlane实现打包,上传到fir.im、pgyer及

IT图书 作者:lyqcrh 时间:2021-09-09 10:21:40 0 删除 编辑

二、操作步骤

  1. 安装fastlane

  • 确保安装了最新版的Xcode command line tools
    xcode-select --install

  • 安装fastlane
    [sudo] gem install fastlane -NV
    或者也可以使用brew cask 来安装fastlane

初始化fastlane

  • 打开terminal(终端),进入项目根目录下,初始化fastlane
    fastlane init
    出现如下选项,选择4:

    图片描述

    DB610C68-5EC2-4FBF-8E3D-FDF8261444A1.png


    ① 自动化截图
    ② 将测试版分发自动化到TestFlight
    ③ 自动上传、发布到App Store
    ④ 手动设置 - 手动设置您的项目以使您的任务自动化
    然后,输入开发者账号密码

    图片描述

    76080789-2B98-4218-9F67-EEEF0DD4F93F.png


    如果开发者账号上没有对应的bundle id的App,会提示是否创建一个新的App,这里我们选择否(n),因为这样快速创建的App设置的信息有限,只能设置App名称等一些基本信息,我们可以通过produce工具创建一个可以设置更多信息的App

    图片描述

    image.png

使用produce,在iTunes Connect或者Apple Developer Center上创建新的iOS应用程序
进入项目根目录,找到fastlane文件夹下的Fastfile文件, 编辑文件,内容如下:

platform :ios do
 desc "create new app"
 lane :produce_app do
   produce(     username: "xxxx@gmail.com",# APPle ID
     app_name: "小鱼小鱼吃虾米",#App 名称
     app_identifier: "com.test.www.FastlaneTest",#App bundle id
     app_version: "1.0",#App 版本
     sku: "10023500",#App sku
     language: "Simplified Chinese",#App 语言,默认English
   ) endend

图片描述

2F7D1732-1771-41E4-A2AA-F9F20EFA4C8C.png

备注:language这个选项不能直接写Chinese,语言选项如下
["Brazilian Portuguese", "Danish", "Dutch", "English", "English_Australian", "English_CA", "English_UK", "Finnish", "French", "French_CA", "German", "Greek", "Indonesian", "Italian", "Japanese", "Korean", "Malay", "Norwegian", "Portuguese", "Russian", "Simplified Chinese", "Spanish", "Spanish_MX", "Swedish", "Thai", "Traditional Chinese", "Turkish", "Vietnamese"]

在terminal中执行fastlane produce_app命令,创建成功提示如下:


图片描述

938F5AFA-738A-44A0-82D2-B3AD2CC30279.png


图片描述

95F95FAC-7B1C-4297-8732-D49B74E9C543.png

  1. 使用cert创建签名证书(Certificates)
    ① 在Fastfile中添加以下内容,生成开发证书:

  lane :create_certificates do
    cert(      username: "xxxx@gmail.com",# APPle ID
      development: true,# 创建一个开发证书
      force: "false",#即使存在现有证书,也要创建证书,默认为false
      output_path: "./certs/development",#存储所有证书和私钥的目录的路径
    )  end

结果如下:


图片描述

6D2519C1-D251-4028-BFD5-F315CE0F90AE.png


② 生成生产证书

  lane :create_dcertificates do
    cert(      username: "xxxx@gmail.com",# APPle ID
      development: false,# 创建一个开发证书
      force: "false",#即使存在现有证书,也要创建证书,默认为false
      output_path: "./certs/distribution",#存储所有证书和私钥的目录的路径
    )  end

图片描述

A252E1CE-C95F-4E4E-83DD-136BB7CD1E4E.png

开发和生产证书,修改development的boolean值及output_path路径即可

  1. 使用sigh 生成描述文件(mobileprovision)
    在Fastfile中
    ①生成开发mobileprovision

lane :get_dev_provisioningProfile do
  get_provisioning_profile(    username: "xxxx@gmail.com",# APPle ID
    development: true,# 创建一个开发mobileprovision
    app_identifier: "com.test.www.FastlaneTest",#bundle identifier
    output_path: "./certs/development",#存储mobileprovision的目录的路径
    filename: "fastlane_dev.mobileprovision",#用于生成的供应配置文件的文件名(必须包含.mobileprovision)
  )end

图片描述

24FAC5E3-77CC-411F-8203-69EBCACF1A51.png

② 生成生产mobileprovision

 lane :get_provisioningProfile do
   get_provisioning_profile(     username: "xxxx@gmail.com",# APPle ID
     development: false,# 创建一个开发证书
     app_identifier: "com.test.www.FastlaneTest",#bundle identifier
     output_path: "./certs/distribution",#存储mobileprovision的目录的路径
     filename: "fastlane_distr.mobileprovision",#用于生成的供应配置文件的文件名(必须包含.mobileprovision)
   ) end


图片描述

47590B9B-5772-4C5F-93BF-4B6C843BEDB7.png


找到certs/development&&distribution目录下的证书及.mobileprovision文件,并安装到电脑上

图片描述

FC980321-CAF1-4DCA-81DF-8C246C449AF7.png


  1. 使用gym来打包ipa

  • 插件(Plugins)
    可以在fastlane1.3.0以及更高版本的添加插件,通过添加插件,可以增加一些扩展功能,以便更好的使用
    查看所有可用插件
    fastlane search_plug
    查找插件
    fastlane search_plugins [query]
    添加插件
    fastlane add_plugin [name]
    这里介绍两个将会用到插件:
    ① astlane-plugin-versioning => 用来修改build版本号和version版本号。
    Fastlane内嵌的actionincrement_build_number使用的是苹果提供的agvtool,agvtool在更改Build的时候会改变所有target的版本号。这时如果你在一个工程里有多个产品的话,每次编译,所有的Build都要加1。
    有了fastlane-plugin-versioning不仅可以指定target增加Build,而且可以按照「语义化版本」规范增加Version,当然也可以直接设定Version。
    ② fastlane-plugin-firim => 直接把AdHoc或者InHouse打包的ipa上传到fir.im,供测试下载。
    安装以上两个插件

   fastlane add_plugin versioning
   fastlane add_plugin firim

使用gym打包ipa

  • 打包之前,先使用xcode的archive一下,保证项目可以运行起来

  • 打包企业版

  lane :inhouse do
  # 以下两个action来自fastlane-plugin-versioning,
  # 第一个递增 Build,第二个设定Version。
  # 如果你有多个target,就必须指定target的值,否则它会直接找找到的第一个plist修改
    increment_build_number_in_plist(target: 'FastlaneTest')
    increment_version_number_in_plist(      target: 'FastlaneTest',      version_number: '1.0'
    )    # gym用来编译ipa
    gym(scheme: 'FastlaneTest',#打包scheme
    export_method:"enterprise",#打包类型app-store, ad-hoc, enterprise, development
    output_directory: "./build",#ipa打包存放路径
    output_name: 'inhouse.ipa'#ipa名称
    )  end
  • 上传到firim
    firim(firim_api_token:'38536e6737457d269979734fdsfdsfa')
    打包其他版本只需要把export_method方法改成对应的字段即可,这里就一一叙述了

  1. 通过deliver 上传截图、App的元数据、二进制(ipa)文件到iTunes Connect
    ①在Deliverfile中填写要上传的App元数据

# For more information, check out the docs# https://docs.fastlane.tools/actions/deliver/# bundle identifierapp_identifier "com.test.www.FastlaneTest"# Apple ID用户名username "xxxx@gmail.com"# 版权声明copyright "#{Time.now.year} xiaoyuchixiami"# 支持的语言supportedLanguages = {    "cmn-Hans" => "zh-Hans"}# 副标题subtitle(  'zh-Hans' => "小鱼小鱼,虾米虾米")# App应用名称name(  'zh-Hans' => "小鱼小鱼吃虾米")# 关键字keywords(  'zh-Hans' => "小鱼小鱼吃虾米,小鱼,吃虾米")# 营销地址marketing_url({  'zh-Hans' => "https:"})# 隐私地址privacy_url({  'zh-Hans' => "https:"})# 支持网址support_url({  'zh-Hans' => "https:"})# 发行说明release_notes({  'zh-Hans' => "这是第一个版本哦"})# 应用说明description({  'zh-Hans' => "小鱼小鱼吃虾米, 虾米被小鱼吃",
})# App价格price_tier 0# 应用程序图标的路径app_icon './fastlane/metadata/AppIcon.png'# 屏幕截图的文件夹的路径screenshots_path './fastlane/screenshots'# ipa路径ipa './build/release.ipa'# 自动发布 app: false,则需要手动发布automatic_release false# 提交审核信息:加密, idfa 等submission_information({    
    export_compliance_encryption_updated: false,
    export_compliance_uses_encryption: false,
    content_rights_contains_third_party_content: false,
    add_id_info_uses_idfa: false})# 应用审核小组的联系信息 app 审核信息app_review_information(
  first_name: "杨",
  last_name: "过",
  phone_number: "13522945883",
  email_address: "10023500@gmial.com",
  demo_user: "测试账号",
  demo_password: "测试密码",
  notes: "account needed")

② 在Fastfile中编写上传元数据action

  lane :upload_message do
    deliver  end

③ 在terminal中执行fastlane upload_message,会生成一份app元数据确认的htm,输入y上传


图片描述

FEB6D95E-B214-41EF-83DF-861912D7CD90.png


图片描述

925FDCDF-DB5D-4ADA-AA91-CE62D6DA539D.png


上传成功截图:


图片描述

38C53584-7A71-4EE6-8E11-3BF6C08915AB.png


图片描述

image.png


图片描述

image.png


图片描述

image.png


通过以上截图,可以看到,我们打包的ipa包和其他元数据都上传到了iTunes Connect

④ 发布应用
在Deliverfile文件中添加以下内容即可

# 上传完成后提交新版本进行审查submit_for_review: true# 跳过HTML报告文件验证force: true

注意事项:

  1. 截图文件需要区分语言,所以一个文件夹对应一种语言,以下是简体中文对应的截图,另外,同一个分辨率的图片排序顺序是根据字母顺序排列的。


    图片描述

    image.png


    2.Deliverfile文件元数据是区分语言的,所以app名称等信息需要加上语言标识,如下图:


    图片描述

    image.png



作者:小胖QAQ
链接:https://www.jianshu.com/p/ecaca8ac86e3


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1680/viewspace-2820970/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    76
  • 访问量
    850