iOS 自动打包 - fastlane

1 本文只是fastlane的基本使用. 2 使用fastlane前,确保你已经可以使用Xcode手动打包成功(说明你已经配置好证书)

1.配置环境

1.安装HomeBrew

#安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

#更新到最新版
brew update

#更新包
brew upgrade

2.安装ruby

#安装
brew install ruby

#查看版本
ruby -v  

ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]

3.安装fastlane

#安装
sudo gem install fastlane -NV

#查看版本
fastlane -v 

fastlane installation at path:
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.102.0/bin/fastlane
-----------------------------
[✔] ? 
fastlane 2.102.0

配置环境结束,应该没什么难度.

2.使用 fastlane

1.先cd到项目路径

cd /Users/yu/Documents/MyApp

2.初始化 fastlane (一个项目的第一次需要)

fastlane init 

[✔] ? 
[✔] Looking for iOS and Android projects in current directory...
[17:22:06]: Created new folder './fastlane'.
[17:22:06]: Detected an iOS/macOS project in the current directory: 'Daily.xcworkspace'
[17:22:06]: -----------------------------
[17:22:06]: --- Welcome to fastlane ? ---
[17:22:06]: -----------------------------
[17:22:06]: fastlane can help you with all kinds of automation for your mobile app
[17:22:06]: We recommend automating one task first, and then gradually automating more over time
[17:22:06]: What would you like to use fastlane for?
1. ?  Automate screenshots
2. ?‍✈️  Automate beta distribution to TestFlight
3. ?  Automate App Store distribution
4. ?  Manual setup - manually setup your project to automate your tasks

我们选择4,输入4,然后回车就可以了。

?  4
[17:22:17]: ------------------------------------------------------------
[17:22:17]: --- Setting up fastlane so you can manually configure it ---
[17:22:17]: ------------------------------------------------------------
[17:22:17]: Installing dependencies for you...
[17:22:17]: $ bundle update

看到上面的输出后,在我们项目路径下已经生成fastlane文件了。 点开发现有2个文件 Appfile 和 Fastfile 2个文件。

Appfile 和 Fastfile.png

3.编写Appfile和Fastfile 文件 Appfile文件

# app_identifier("yu.xx.MyApp") # The bundle identifier of your app
# apple_id("appld@outlook.com") # Your Apple email address

# itc_team_id
team_id "43XXXXXX9K" # Developer Portal Team ID


# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

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
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :keji do
    build_app(workspace:"MyApp.xcworkspace",
          scheme:"MyApp",
          export_method:"development",
          output_directory:"./fastlane/ipadFile",
          configuration:"Debug")
  end
end

?注意 查找team_id:在你用Xcode手动打包后,生成的文件中(MyApp 2018-08-17 14-33-14)。ExportOptions.plist这个文件中包含team_id。

4.打包 最后的时候我们执行打包就可以了

fastlane MyApp

MyApp是你的项目文件名 显示打包成功后,在MyApp/fastlane/ipadFile中就能看到ipa包了。?

3.扩展

1.ipa自动发布

自动打包成功后,当然需要自动发布到蒲公英,或者fir了。以蒲公英为例子: 1 安装蒲公英的 Fastlane 插件:

fastlane add_plugin pgyer

2 修改Fastfile文件

default_platform(:ios)
platform :ios do
  desc "Description of what the lane does"
  lane :keji do
    build_app(workspace:"MyApp.xcworkspace",
          scheme:"MyApp",
          export_method:"development",
          output_directory:"./fastlane/ipadFile",
          configuration:"Debug")
    pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e", update_description: "update by fastlane")
  end
end

使用 Fastlane 上传 App 到蒲公英API https://www.pgyer.com/doc/view/fastlane

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Brian

Mac 配置终端环境

Mac 配置终端开发环境 ---- 概述 作为一个服务端开发人员基本上都是通过终端和服务器打交道,所以一个好个开发人员那么他的终端配置也是高效的。“工欲善事必先...

44311
来自专栏运维

linux下自动备份脚本并上传到ftp服务器

#!/bin/bash #设置日志文件,前提建好了/backup/log目录 LogFile=/backup/log/`date +"%Y-%m"`.log...

2303
来自专栏本立2道生

bootsect及setup

硬件逻辑设计为加电瞬间强行设置:CS=0xF000,IP=0xFFF0,CS:IP=0xFFFF0

1033
来自专栏Golang语言社区

gRPC服务发现&负载均衡

构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:

7692
来自专栏行者常至

数据库连接池简单连接

模型      -----     Model 视图      -----     View 控制器  -----     Controller

963
来自专栏刘远飞的专栏

CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

2.4K1
来自专栏Netkiller

Linux 系统安全与优化配置

Linux 系统安全与优化配置 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验证重试次数 1.3. 禁止证书登陆 ...

3675
来自专栏Keegan小钢

App环境分离的实现:iOS篇

说到App环境分离在iOS的实现,我曾在iOS技术群里问过:如何实现在同一台手机能同时安装同个应用的测试和生产版本?应用名称要有区分,图标也要有所区别。不要手动...

1283
来自专栏進无尽的文章

工程管理篇 | APP环境分离的实现

如何实现在同一台手机能同时安装同个应用的测试和生产版本?应用名称要有区分,图标也要有所区别。不要手动修改Bundle id和应用名称,也不要手动替换图标,更不要...

1162
来自专栏ionic3+

【技巧】ionic3视频上传

有人问到视频上传这个问题,那我还是写一下吧,其实基本参考《ionic3多文件上传》这文章也行,不过对于单文件上传就不用那么复杂了,步骤如下:

882

扫码关注云+社区

领取腾讯云代金券