fast_pack 0.3.3 → 0.3.4

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: e61f1caa8b1813df1588ded6692135f24b6a075e5efb0195010ea8141adafc9d
4
- data.tar.gz: 5ef5980b8b344555d9cc568a9e82e30fd6e10a82d9ac3309c33210465a645742
3
+ metadata.gz: 56b76321cbc99b6332e24ff16d35aa00200a23bccea0288640e97929c9bc4733
4
+ data.tar.gz: 990894a1d13a216970560cef95f4c240552d25b7ed3bf270f3b252862512f915
5
5
  SHA512:
6
- metadata.gz: 25301cc42ce4ff9814190f05e0a2d8cc9bb650e9e8b079b95d0e7aa25b4fd000bc5c2b972d78b60f950d4607c8e3bf68fbf74e3d39830241ee9ddb60e598f8af
7
- data.tar.gz: 801f9a88e127489a647dc5149454344ec2a057e832b7145113e146b650defc0ffed8ee4e6147ba90cec2358b3d081c97ce221b76bc8871dc9db62db10902cca9
6
+ metadata.gz: f6c15ba3e8418a94201d88bd419e406531e1ff5d8c9df4c7baf7f8472ff6f486df13ecfdf8145ebbb0f86f82a70711cec11c743ef5fa92088ca92cad037b59d9
7
+ data.tar.gz: b068e5065c2122006903ebbd0f427e020f30fa6552bf4a30b7398bba5f222450194edf1145b16654ac694164c7570d19888bc2115d5b81ea031b678814f5eaea
@@ -48,6 +48,8 @@ module Pod
48
48
 
49
49
  def run
50
50
  if verify_workspace_exists?
51
+ shell.export_xcode_env
52
+
51
53
  if uki_config.no_build
52
54
  #直接导出
53
55
  shell.export
@@ -64,7 +66,7 @@ module Pod
64
66
  uki_config.auto_work_space_name
65
67
  unless uki_config.workspace_name
66
68
  puts("大兄弟,请前往xxxx.workspace同级目录执行哦")
67
- return false
69
+ exit
68
70
  end
69
71
 
70
72
  return true
@@ -10,38 +10,71 @@ class Shell_Command
10
10
 
11
11
  include Uki_config::Mixin
12
12
 
13
- def build
14
-
15
- puts %x{echo "********************************************************* 开始编译"}
16
-
17
- log = %x{
13
+ def export_xcode_env
14
+ puts("********************************************************* 开始导出Xcode环境变量")
15
+
16
+ log = %x{
17
+ rootPath=`pwd`
18
+ fireName="xcode_env.json"
19
+ full_path="${rootPath}/${fireName}"
20
+ if [ -f "$full_path" ]
21
+ then
22
+ echo "存在xcode_env.json"
23
+ else
24
+ echo "不存在xcode_env.json 创建一个"
25
+ touch ${full_path}
26
+ fi
27
+
28
+ if [ -f "$full_path" ]
29
+ then
30
+ echo `xcodebuild -showBuildSettings -json` > "$full_path"
31
+ fi
32
+ }
33
+
34
+ if !File.exist?(uki_config.xcode_env_path)
35
+ puts("当前目录未查找到xcode_env.json文件, 请检查执行目录")
36
+ exit
37
+ end
38
+
39
+ json_from_file = File.read(uki_config.xcode_env_path)
40
+ uki_config.xcode_envs = JSON.parse(json_from_file).first
41
+
42
+ if uki_config.verbose?
43
+ puts(log)
44
+ end
18
45
 
19
- xcodebuild build -workspace #{uki_config.workspace} -scheme #{uki_config.scheme} -destination generic/platform=iOS -configuration #{uki_config.configuration} DEBUG_INFORMATION_FORMAT=#{uki_config.dsym_config} DWARF_DSYM_FOLDER_PATH=#{uki_config.dsym_path}
46
+ end
20
47
 
21
- if [[ $? -ne 0 ]]; then
22
- echo "************************************* 编译失败 *************************************"
23
- exit 1
24
- fi
25
- }
48
+ def build
26
49
 
27
- puts %x{echo "********************************************************* 编译完成"}
50
+ puts("********************************************************* 开始编译")
28
51
 
29
52
  if uki_config.verbose?
30
- # puts(log)
53
+ puts("xcodebuild build -workspace #{uki_config.workspace} -scheme #{uki_config.scheme} -destination generic/platform=iOS -configuration #{uki_config.configuration} DEBUG_INFORMATION_FORMAT=#{uki_config.dsym_config} DWARF_DSYM_FOLDER_PATH=#{uki_config.dsym_path}")
31
54
  end
55
+
56
+ log = %x{
57
+ xcodebuild build -workspace #{uki_config.workspace} -scheme #{uki_config.scheme} -destination generic/platform=iOS -configuration #{uki_config.configuration} DEBUG_INFORMATION_FORMAT=#{uki_config.dsym_config} DWARF_DSYM_FOLDER_PATH=#{uki_config.dsym_path}
58
+ }
32
59
 
33
- # 直接开始导出
34
- self.export
35
-
60
+ if log[/BUILD SUCCEEDED/]
61
+ puts("********************************************************* 编译完成")
62
+ # 直接开始导出
63
+ self.export
64
+ elsif
65
+ puts("********************************************************* 失败")
66
+ exit
67
+ end
36
68
  end
37
69
 
38
70
  # 暂时先不copy到跟目录, 防止Git提交代码时提交上去
39
71
  # 需安装Fir 不太友好
40
72
  # 安装命令 sudo gem install fir-cli
41
73
  def export
74
+
42
75
  unless uki_config.build_exe_path
43
76
  puts "未生成目标文件目录"
44
- return
77
+ exit
45
78
  end
46
79
 
47
80
  puts %x{echo "********************************************************* 开始导出ipa"}
@@ -83,7 +116,8 @@ class Shell_Command
83
116
 
84
117
  sizeM=`echo "scale=2; ${size}/1024.0/1024" | bc`
85
118
  #sizeM="$((${size}/1000.0))
86
- echo -e "===size=${sizeM}m==="
119
+
120
+ echo -e "包体积=${sizeM}m\n"
87
121
 
88
122
  notification="Did uploaded to fir caost time:${SECONDS}s"
89
123
  echo "===$notification===%"
@@ -93,18 +127,26 @@ class Shell_Command
93
127
  echo "upload_time=${SECONDS}"
94
128
  }
95
129
 
96
- puts("恭喜打包完成")
97
-
98
- if uki_config.verbose?
99
- puts(log)
100
- end
130
+ ipa_size = log[/包体积.*$/].split('=').last
101
131
 
102
132
  url = log[/http:.*$/]
103
133
  array = log.split('%')
104
134
  uki_config.upload_time = array.last.split("=").last.to_i
105
135
  uki_config.build_time = Time.now.to_i - uki_config.build_time - uki_config.upload_time
106
136
  uki_config.fir_url = url
137
+ uki_config.ipa_size = ipa_size
107
138
 
139
+ unless !url.empty?
140
+ puts("导出失败")
141
+ exit
142
+ end
143
+
144
+ puts("恭喜打包完成")
145
+
146
+ if uki_config.verbose?
147
+ puts(log)
148
+ end
149
+
108
150
  send_notifi
109
151
  end
110
152
 
@@ -120,7 +162,7 @@ class Shell_Command
120
162
  }
121
163
 
122
164
  hostname = Socket.gethostname
123
- project_name = uki_config.project_sea ? "iOS海外极速打包已完成": "iOS国内极速打包已完成"
165
+ project_name = uki_config.group_name
124
166
  project_env = uki_config.release ? "Release": "Debug"
125
167
  project_dsym = uki_config.dsym ? "已上传": "无符号表"
126
168
 
@@ -158,6 +200,20 @@ class Shell_Command
158
200
  "tag": "lark_md"
159
201
  }
160
202
  },
203
+ {
204
+ "is_short": true,
205
+ "text": {
206
+ "content": "**App版本**\n#{uki_config.app_version}.#{uki_config.build_version}",
207
+ "tag": "lark_md"
208
+ }
209
+ },
210
+ {
211
+ "is_short": true,
212
+ "text": {
213
+ "content": "**包体积**\n#{uki_config.ipa_size}",
214
+ "tag": "lark_md"
215
+ }
216
+ },
161
217
  {
162
218
  "is_short": true,
163
219
  "text": {
@@ -204,12 +260,15 @@ class Shell_Command
204
260
  }
205
261
 
206
262
  log = %x{
207
- curl -X POST -H "Content-Type: application/json" -d '#{message.to_json}' "https://open.feishu.cn/open-apis/bot/v2/hook/d150c5fa-7522-448a-9424-60f40c001720"
263
+ curl -X POST -H "Content-Type: application/json" -d '#{message.to_json}' "https://open.feishu.cn/open-apis/bot/v2/hook/68c47d38-fc65-4cc5-a386-885a1fbff11b"
208
264
  }
209
265
 
210
266
  if uki_config.verbose?
211
267
  puts(log)
212
268
  end
269
+
270
+ exit
271
+
213
272
  end
214
273
 
215
274
  def self.instance
@@ -4,8 +4,6 @@ class Uki_config
4
4
  # scheme info
5
5
  PROJECT_SCHEME = ['UkiOverseas', 'miaohong'].freeze
6
6
 
7
- # workspace name
8
- PROJECT_WORKSPACENAME = ['UkiOverseas.xcworkspace', 'miaohong.xcworkspace']
9
7
 
10
8
  # 是否展示详细信息
11
9
  attr_accessor :verbose
@@ -25,22 +23,19 @@ class Uki_config
25
23
  attr_accessor :upload_time
26
24
  # 上传Url
27
25
  attr_accessor :fir_url
26
+ # xcode环境变量
27
+ attr_accessor :xcode_envs
28
+ # 包体积
29
+ attr_accessor :ipa_size
28
30
 
29
31
  alias_method :verbose?, :verbose
30
32
 
31
33
  def scheme
32
- unless project_sea
33
- return PROJECT_SCHEME.last
34
- end
35
- return PROJECT_SCHEME.first
34
+ return self.xcode_envs["target"]
36
35
  end
37
36
 
38
37
  def workspace
39
- unless project_sea
40
- return PROJECT_WORKSPACENAME.last
41
- end
42
-
43
- return PROJECT_WORKSPACENAME.first
38
+ return self.workspace_name
44
39
  end
45
40
 
46
41
  def configuration
@@ -89,22 +84,44 @@ class Uki_config
89
84
 
90
85
  Dir.foreach(@installation_root) do |entry|
91
86
  if entry.end_with?('xcworkspace')
92
- @workspace_name = entry.split('.').first
87
+ @workspace_name = entry
93
88
  next
94
89
  end
95
90
  end
96
91
  end
97
92
 
93
+ def app_version
94
+ buildSettings = self.xcode_envs["buildSettings"]
95
+ return buildSettings["MARKETING_VERSION"]
96
+ end
97
+
98
+ def build_version
99
+ buildSettings = self.xcode_envs["buildSettings"]
100
+ return buildSettings["CURRENT_PROJECT_VERSION"]
101
+ end
102
+
98
103
  # 读取产物记录文件
99
104
  def app_file_path
100
105
  return File.join(@installation_root, "app_path")
101
106
  end
102
107
 
103
- # 产物路径
104
- def build_exe_path
108
+ # 产物路径
109
+ def build_exe_path
105
110
  return IO.readlines(app_file_path).first
106
111
  end
107
112
 
113
+ def group_name
114
+ unless @workspace_name == "miaohong.xcworkspace"
115
+ return "iOS海外极速打包完成"
116
+ end
117
+
118
+ return "iOS国内极速打包完成"
119
+ end
120
+
121
+ def xcode_env_path
122
+ return File.join(@installation_root, "xcode_env.json")
123
+ end
124
+
108
125
  def self.instance
109
126
  @instance ||= new
110
127
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Packager
4
- VERSION = "0.3.3"
4
+ VERSION = "0.3.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - 耿磊
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-02 00:00:00.000000000 Z
11
+ date: 2022-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods