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 +4 -4
- data/bin/uki +1 -0
- data/lib/cocoapods-uki-packager/command/pack.rb +3 -1
- data/lib/cocoapods-uki-packager/shell.rb +101 -27
- data/lib/cocoapods-uki-packager/uki_config.rb +31 -14
- data/lib/cocoapods-uki-packager/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 57564d0d088604fcf177eef93edf7e18fd9c1dfa0eb51fe78c19df72acbc35b7
|
|
4
|
+
data.tar.gz: f3d989bc8a641e116aef07b1fde859c30622a0f809223b8e3254482a1ba31f4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cba94d9e36d8af526f5a81b7aef2763b5ac0c5f89e0884261e675cc8c8bc0836a16fdf5af6edb9c8a0605c14fd59344fdf5dbc5146371192b206780d8eeb3396
|
|
7
|
+
data.tar.gz: 36013c8607defce3bb39e9c899eee82e685867f30b6984afb23009a646acb07e78bfc7e8ab7412fe08f48f46f64596351855c32b28fe12d0da3f1bc0b128dcae
|
data/bin/uki
CHANGED
|
@@ -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
|
-
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
46
|
+
end
|
|
20
47
|
|
|
21
|
-
|
|
22
|
-
echo "************************************* 编译失败 *************************************"
|
|
23
|
-
exit 1
|
|
24
|
-
fi
|
|
25
|
-
}
|
|
48
|
+
def build
|
|
26
49
|
|
|
27
|
-
puts
|
|
50
|
+
puts("********************************************************* 开始编译")
|
|
28
51
|
|
|
29
52
|
if uki_config.verbose?
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
135
|
+
ipa_size = log[/包体积.*$/].split('=').last
|
|
136
|
+
|
|
137
|
+
# url = log[/http:.*$/].to_s
|
|
97
138
|
|
|
98
|
-
if uki_config.
|
|
99
|
-
|
|
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.
|
|
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/
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
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.
|
|
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-
|
|
11
|
+
date: 2022-08-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cocoapods
|