fastlane-plugin-fastci 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc2ff5d0f6cd3421e117ad30b091e5138c34b8438d967fcb035cd2383f750041
4
- data.tar.gz: c41fa51ca79664423bc1b89b5f8248c7963a41db054095e4226aa31a9fc69d1d
3
+ metadata.gz: 6a340715cf257a5a83f02790ae0faa869ebded6542f18f2b9a98c0bf9d615dbb
4
+ data.tar.gz: 00c765576bc7b76e3a20b53c5b8068e878cbd4049e57517cc394f56695bb0c53
5
5
  SHA512:
6
- metadata.gz: 132de4650487971ef9c853787d5328ff4ac40f270ecb018abd0d42c1a730af4d3ff1a5b77a52d80880137cc206ab245a8ce5422b6f8aebfd5ce19226ffe20a94
7
- data.tar.gz: 25cba3b8703900c008547f3a2276a8412a5d7df53556cd81c57a4ad7f07e63cff433e13690ccafe2729ac0a967dc56ccb9d22297fe867ef8e0fb52591d013de1
6
+ metadata.gz: 3194fd930952e333988312b87867ef4c59d0c4ddc4c05c87eafdecf0b99ecffc40d044b1a4d53bcf48043b818c38e0d8782ff93b826c796452f17faa111c4197
7
+ data.tar.gz: 58c23ce8526521e838f0a2ed608895e9e891e8c2b518a3b7fb6f349c6d37d62fadd0700ee34af7e5e26149e6455ca9f4813898fba8425d7389f47a48257a735c
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-fastci)
5
5
 
6
- 一个集成 iOS CI 与多种自动化操作的 Fastlane 集合插件。
6
+ 一个集成 iOS 打包脚本与多种自动化操作的 Fastlane 聚合插件。
7
7
  简单快速的集成,5 分钟即可上手。
8
8
  配合 Jenkins 实现高度自定义。
9
9
 
@@ -26,9 +26,12 @@
26
26
  ## 使用方法
27
27
 
28
28
  参考 [` Fastfile `](fastlane/Fastfile) 和 [` .env.default `](fastlane/.env.default) 替换项目内 fastlane 文件夹下文件;
29
- 项目根目录新建 ` PACKAGE_FILE_FOLDER_NAME ` 配置对应名字文件夹,将描述文件、p12 证书、p8 密钥等文件放入该文件夹下。
29
+ 项目根目录新建 ` PACKAGE_FILE_FOLDER_NAME ` 配置对应名字文件夹,将描述文件、p12 证书、p8 密钥等文件放入该文件夹下;
30
30
  然后终端进入项目根目录即可使用 ` fastlane `
31
31
 
32
+ 如果是同一个 xcworkspace 多 xcodeproj 的情况,可以采用多配置文件的方式。同样也是参考 [` .env.default `](fastlane/.env.default) 根据多个 xcodeproj 创建多个配置文件 ` .env.project1 ` 、 ` .env.project2 `;
33
+ 执行的时候指定环境文件 ` fastlane package --env project1 ` 来运行
34
+
32
35
 
33
36
  ### 使用后会在项目根目录生成文件夹
34
37
 
@@ -47,12 +50,14 @@ fastlane_cache/ # 插件缓存文件夹
47
50
 
48
51
  ### 1. 自动打包
49
52
  功能:自动编译并导出 ipa 包,支持多种打包方式和集成多项检查。
50
- 生成完的 ipa 会放在桌面上,非 ` app-store ` 配置了蒲公英或 fir 参数会自动上传蒲公英或 fir` app-store ` 和 ` testFlight ` 配置了商店参数会自动上传商店。
53
+ 生成完的 ipa 会放在桌面上,非 ` app-store ` 配置了蒲公英或 fir 参数会自动上传蒲公英或 fir。` app-store ` 和 ` testFlight ` 配置了商店参数会自动上传商店。
51
54
 
52
55
  ` build `: 不指定的话内部有递增逻辑,格式为 ` 20250905.15(日期+当天包的次数) `
53
56
 
54
57
  ` version `: 在 Xcode13 之后创建的项目,不再支持脚本修改。需要兼容请在 ` Build settings ` 中将 ` GENERATE_INFOPLIST_FILE ` 设置为 ` NO `
55
58
 
59
+ 其他参数可以使用 ` fastlane action package ` 查看
60
+
56
61
  ```ruby
57
62
  package(
58
63
  configuration: "Debug", # 编译环境 Release/Debug
@@ -109,7 +114,9 @@ detect_unused_code(
109
114
  功能:检测项目中未被使用的图片资源,生成分析报告。
110
115
 
111
116
  ```ruby
112
- detect_unused_image()
117
+ detect_unused_image(
118
+ exclude: nil # 要排除的路径,多个路径用逗号分隔。默认会排除 Carthage 和 Pods 目录
119
+ )
113
120
  ```
114
121
 
115
122
  ---
@@ -8,16 +8,27 @@ module Fastlane
8
8
  def self.run(params)
9
9
  UI.message("*************| 开始无用图片检查 |*************")
10
10
 
11
- # 检查是否安装了 FengNiao
12
- unless system("which fengniao > /dev/null")
11
+ # 检查是否安装了 Mint
12
+ unless system("which mint > /dev/null")
13
13
  sh("brew install mint")
14
- sh("mint install onevcat/fengniao")
15
14
  end
15
+
16
+ # 检查是否安装了 FengNiao
17
+ unless system("mint list | grep -q onevcat/FengNiao")
18
+ sh("mint install onevcat/FengNiao")
19
+ end
20
+
21
+ # 构建排除参数
22
+ exclude_paths = ["Carthage", "Pods"]
23
+ if params[:exclude] && !params[:exclude].empty?
24
+ exclude_paths += params[:exclude].split(",").map(&:strip)
25
+ end
26
+ exclude_options = exclude_paths.join(" ")
16
27
 
17
28
  fengniao_output = sh("
18
- fengniao \
29
+ mint run onevcat/FengNiao fengniao \
19
30
  --list-only \
20
- --exclude Carthage Pods \
31
+ --exclude #{exclude_options}
21
32
  ")
22
33
 
23
34
  CommonHelper.write_cached_txt(Constants.UNUSED_IMAGE_FILE, fengniao_output)
@@ -38,7 +49,15 @@ module Fastlane
38
49
  end
39
50
 
40
51
  def self.available_options
41
- []
52
+ [
53
+ FastlaneCore::ConfigItem.new(
54
+ key: :exclude,
55
+ description: "要排除的路径,多个路径用逗号分隔。默认会排除 Carthage 和 Pods 目录",
56
+ optional: true,
57
+ default_value: nil,
58
+ type: String
59
+ )
60
+ ]
42
61
  end
43
62
 
44
63
  def self.is_supported?(platform)
@@ -183,7 +183,7 @@ module Fastlane
183
183
 
184
184
  # 重复代码检查
185
185
  if is_detect_duplicity_code && gym_method != "app-store"
186
- other_action.detect_code_duplicity(
186
+ other_action.detect_duplicity_code(
187
187
  is_all: true
188
188
  )
189
189
  # 结果复制到桌面
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Fastci
3
- VERSION = "0.0.14"
3
+ VERSION = "0.0.15"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-fastci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - watermelon