fast_pack 0.3.3 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
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