fast_pack 0.3.3 → 0.3.6

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: 57564d0d088604fcf177eef93edf7e18fd9c1dfa0eb51fe78c19df72acbc35b7
4
+ data.tar.gz: f3d989bc8a641e116aef07b1fde859c30622a0f809223b8e3254482a1ba31f4d
5
5
  SHA512:
6
- metadata.gz: 25301cc42ce4ff9814190f05e0a2d8cc9bb650e9e8b079b95d0e7aa25b4fd000bc5c2b972d78b60f950d4607c8e3bf68fbf74e3d39830241ee9ddb60e598f8af
7
- data.tar.gz: 801f9a88e127489a647dc5149454344ec2a057e832b7145113e146b650defc0ffed8ee4e6147ba90cec2358b3d081c97ce221b76bc8871dc9db62db10902cca9
6
+ metadata.gz: cba94d9e36d8af526f5a81b7aef2763b5ac0c5f89e0884261e675cc8c8bc0836a16fdf5af6edb9c8a0605c14fd59344fdf5dbc5146371192b206780d8eeb3396
7
+ data.tar.gz: 36013c8607defce3bb39e9c899eee82e685867f30b6984afb23009a646acb07e78bfc7e8ab7412fe08f48f46f64596351855c32b28fe12d0da3f1bc0b128dcae
data/bin/uki CHANGED
@@ -8,5 +8,6 @@ if $PROGRAM_NAME == __FILE__
8
8
 
9
9
 
10
10
  require "cocoapods-uki-packager/command/pack"
11
+ # require 'cocoapods'
11
12
 
12
13
  Pod::Command.run(ARGV)
@@ -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
- puts "未生成目标文件目录"
44
- return
76
+ puts "未找到目标文件目录"
77
+ exit
45
78
  end
46
79
 
47
80
  puts %x{echo "********************************************************* 开始导出ipa"}
@@ -76,14 +109,20 @@ class Shell_Command
76
109
  #计时
77
110
  SECONDS=0
78
111
 
79
- fir_token="207c7aad886da8009a73486d5154a7a6"
80
- fir publish "$APP.ipa" -T $fir_token -c "$fir_log" -R
112
+ # fir_token="207c7aad886da8009a73486d5154a7a6"
113
+ # fir publish "$APP.ipa" -T $fir_token -c "$fir_log" -R
114
+
115
+ apiKey="2b73b132408ae0145c5e7cb871c37036"
116
+ uKey="3bd6eb4f50db762b0d83fabb6692713f"
117
+
118
+ curl -F "file=@$APP.ipa" -F "uKey=$uKey" -F "_api_key=$apiKey" -F "updateDescription=$log" https://www.pgyer.com/apiv1/app/upload
81
119
 
82
120
  size=$(ls -l $APP.ipa | awk '{ print $5 }')
83
121
 
84
122
  sizeM=`echo "scale=2; ${size}/1024.0/1024" | bc`
85
123
  #sizeM="$((${size}/1000.0))
86
- echo -e "===size=${sizeM}m==="
124
+
125
+ echo -e "包体积=${sizeM}m\n"
87
126
 
88
127
  notification="Did uploaded to fir caost time:${SECONDS}s"
89
128
  echo "===$notification===%"
@@ -93,18 +132,33 @@ class Shell_Command
93
132
  echo "upload_time=${SECONDS}"
94
133
  }
95
134
 
96
- puts("恭喜打包完成")
135
+ ipa_size = log[/包体积.*$/].split('=').last
136
+
137
+ # url = log[/http:.*$/].to_s
97
138
 
98
- if uki_config.verbose?
99
- puts(log)
139
+ url = if uki_config.workspace == "miaohong.xcworkspace"
140
+ "https://www.pgyer.com/K70I"
141
+ else
142
+ "https://www.pgyer.com/uGp4"
100
143
  end
101
144
 
102
- url = log[/http:.*$/]
103
145
  array = log.split('%')
104
146
  uki_config.upload_time = array.last.split("=").last.to_i
105
147
  uki_config.build_time = Time.now.to_i - uki_config.build_time - uki_config.upload_time
106
148
  uki_config.fir_url = url
149
+ uki_config.ipa_size = ipa_size
107
150
 
151
+ unless !url.empty?
152
+ puts("导出失败")
153
+ exit
154
+ end
155
+
156
+ puts("恭喜打包完成")
157
+
158
+ if uki_config.verbose?
159
+ puts(log)
160
+ end
161
+
108
162
  send_notifi
109
163
  end
110
164
 
@@ -120,7 +174,7 @@ class Shell_Command
120
174
  }
121
175
 
122
176
  hostname = Socket.gethostname
123
- project_name = uki_config.project_sea ? "iOS海外极速打包已完成": "iOS国内极速打包已完成"
177
+ project_name = uki_config.group_name
124
178
  project_env = uki_config.release ? "Release": "Debug"
125
179
  project_dsym = uki_config.dsym ? "已上传": "无符号表"
126
180
 
@@ -158,6 +212,20 @@ class Shell_Command
158
212
  "tag": "lark_md"
159
213
  }
160
214
  },
215
+ {
216
+ "is_short": true,
217
+ "text": {
218
+ "content": "**App版本**\n#{uki_config.app_version}.#{uki_config.build_version}",
219
+ "tag": "lark_md"
220
+ }
221
+ },
222
+ {
223
+ "is_short": true,
224
+ "text": {
225
+ "content": "**包体积**\n#{uki_config.ipa_size}",
226
+ "tag": "lark_md"
227
+ }
228
+ },
161
229
  {
162
230
  "is_short": true,
163
231
  "text": {
@@ -203,13 +271,19 @@ class Shell_Command
203
271
  }
204
272
  }
205
273
 
274
+ # https://open.feishu.cn/open-apis/bot/v2/hook/68c47d38-fc65-4cc5-a386-885a1fbff11b 测试机器人
275
+ # https://open.feishu.cn/open-apis/bot/v2/hook/68c47d38-fc65-4cc5-a386-885a1fbff11b 打包群机器人
276
+
206
277
  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"
278
+ 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
279
  }
209
280
 
210
281
  if uki_config.verbose?
211
282
  puts(log)
212
283
  end
284
+
285
+ exit
286
+
213
287
  end
214
288
 
215
289
  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.6"
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.6
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-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods