fast_pack 0.4.1 → 0.4.3
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/lib/cocoapods-uki-packager/Test.rb +5 -3
- data/lib/cocoapods-uki-packager/command/pack.rb +2 -2
- data/lib/cocoapods-uki-packager/shell.rb +143 -26
- data/lib/cocoapods-uki-packager/uki_config.rb +16 -15
- data/lib/cocoapods-uki-packager/version.rb +1 -1
- metadata +7 -27
- /data/bin/{uki → dy} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f61059915433f7cdd932e3916d3da1d9f01d259771699441d388b9e792b053f
|
4
|
+
data.tar.gz: 840006a4627926c91c42209d9c6ee0e6e9dbc5a01d8c308b907a03e63f86bf96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a4b61a93f913d6ee42ed7789396a41694de5587ae28c3672a40648e76a8aadbfa88c4477ee9d1044ee0aaee2c6f9fe1617015f3dd0beb9cbc0518b534ee7ae6
|
7
|
+
data.tar.gz: a51d1c6cb321ddae69c91e2d5c70c8f30103c4b121a5f1c513696a4e999e1f7636165b99bf7d914fa1a5ddbd52506484ec525f877b21a7419fc271eaa9e0f113
|
@@ -4,6 +4,7 @@ require 'net/https'
|
|
4
4
|
require 'uri'
|
5
5
|
require 'json'
|
6
6
|
require 'socket'
|
7
|
+
require 'cli/ui'
|
7
8
|
|
8
9
|
|
9
10
|
class Shell_Command
|
@@ -15,8 +16,10 @@ class Shell_Command
|
|
15
16
|
|
16
17
|
log = %x{
|
17
18
|
rootPath=`pwd`
|
18
|
-
|
19
|
-
|
19
|
+
fileName="xcode_env.json"
|
20
|
+
work_path="${rootPath}/huxue"
|
21
|
+
full_path="${work_path}/${fileName}"
|
22
|
+
cd $work_path
|
20
23
|
if [ -f "$full_path" ]
|
21
24
|
then
|
22
25
|
echo "存在xcode_env.json"
|
@@ -111,7 +114,7 @@ class Shell_Command
|
|
111
114
|
echo -e "包体积=${sizeM}m\n"
|
112
115
|
}
|
113
116
|
|
114
|
-
|
117
|
+
|
115
118
|
if !File.exist?(uki_config.ipa_path)
|
116
119
|
puts("*********************************************************导出失败")
|
117
120
|
exit
|
@@ -126,38 +129,61 @@ class Shell_Command
|
|
126
129
|
puts(log)
|
127
130
|
end
|
128
131
|
|
129
|
-
|
132
|
+
getCOSToken
|
130
133
|
|
131
134
|
end
|
132
135
|
|
133
|
-
def
|
136
|
+
def ding_notifi(par)
|
137
|
+
|
138
|
+
uki_config.upload_time = Time.now.to_i - uki_config.s_time
|
134
139
|
|
135
|
-
|
140
|
+
branch = %x{
|
141
|
+
if branch=$(git symbolic-ref --short -q HEAD)
|
142
|
+
then
|
143
|
+
echo $branch
|
144
|
+
else
|
145
|
+
echo "未知分支"
|
146
|
+
fi
|
147
|
+
}
|
148
|
+
|
149
|
+
hostname = Socket.gethostname
|
150
|
+
project_name = uki_config.group_name
|
151
|
+
project_env = uki_config.configuration
|
152
|
+
project_dsym = uki_config.dsym ? "已上传": "无符号表"
|
153
|
+
qrUrl = par["buildQRCodeURL"]
|
154
|
+
|
155
|
+
message = {
|
156
|
+
"msgtype": "actionCard",
|
157
|
+
"actionCard": {
|
158
|
+
"title": "打包成功",
|
159
|
+
"text": "  # 沪学习iOS打包成功 \n\n #### 打包分支: #{branch} \n\n #### 打包环境: #{project_env} \n\n #### 打包机器: #{hostname} \n\n #### dsym: #{project_dsym} \n\n #### App版本: #{uki_config.app_version} \n\n #### build版本: #{uki_config.build_version} \n\n #### 包体积: #{uki_config.ipa_size} \n\n #### 编译耗时: #{uki_config.build_time}s \n\n #### 上传耗时: #{uki_config.upload_time}s",
|
160
|
+
"btnOrientation": "0",
|
161
|
+
"btns": [
|
162
|
+
{
|
163
|
+
"title": "去下载",
|
164
|
+
"actionURL": "#{uki_config.fir_url}"
|
165
|
+
}
|
166
|
+
]
|
167
|
+
}
|
168
|
+
}
|
136
169
|
|
137
|
-
|
138
|
-
|
170
|
+
log = %x{
|
171
|
+
curl -X POST -H 'Content-Type: application/json' -d '#{message.to_json}' "https://oapi.dingtalk.com/robot/send?access_token=878146b6cef93f214feef79879fa4fb1d1c643a36cf314822aaea7eeac4298fe"
|
172
|
+
}
|
139
173
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
"6WCf" # 海外
|
144
|
-
end
|
174
|
+
if uki_config.verbose?
|
175
|
+
puts(log)
|
176
|
+
end
|
145
177
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
}
|
178
|
+
local_notfi = %x{
|
179
|
+
notification="Did uploaded to fir caost time:#{uki_config.upload_time}s"
|
180
|
+
osascript -e 'display notification "size:'#{uki_config.ipa_size}'m\ncaost:'#{uki_config.upload_time}'s" with title "Uploaded Success" sound name "default" '
|
181
|
+
}
|
182
|
+
|
183
|
+
puts("********************************************************* 打包结束已通知钉钉请下载")
|
153
184
|
|
154
|
-
|
155
|
-
url = data["data"]
|
156
|
-
url_code = url.split('code/').last.to_s
|
157
|
-
uki_config.fir_url = "https://appsmanager.neoclub.cn/s/#{myshort}?id=#{url_code}"
|
158
|
-
uki_config.upload_time = Time.now.to_i - s_time
|
185
|
+
exit
|
159
186
|
|
160
|
-
send_notifi
|
161
187
|
end
|
162
188
|
|
163
189
|
def send_notifi
|
@@ -290,6 +316,97 @@ class Shell_Command
|
|
290
316
|
|
291
317
|
end
|
292
318
|
|
319
|
+
|
320
|
+
def getCOSToken
|
321
|
+
# 开始上传时间
|
322
|
+
uki_config.s_time = Time.now.to_i
|
323
|
+
puts("********************************************************* 获取蒲公英上传地址")
|
324
|
+
#application/json
|
325
|
+
url = URI('https://www.pgyer.com/apiv2/app/getCOSToken')
|
326
|
+
http = Net::HTTP.new(url.host, url.port)
|
327
|
+
http.use_ssl = true
|
328
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
329
|
+
# 设置请求参数
|
330
|
+
data = URI.encode_www_form({'_api_key': uki_config.pgyer_apiKey, 'buildType':'ios', 'buildInstallType': 2, 'buildPassword': '1234'})
|
331
|
+
# 设置请求头
|
332
|
+
header = {'content-type':'application/x-www-form-urlencoded'}
|
333
|
+
response = http.post(url, data, header)
|
334
|
+
resbody = JSON.parse(response.body)
|
335
|
+
|
336
|
+
upload_ipa(resbody["data"])
|
337
|
+
|
338
|
+
end
|
339
|
+
|
340
|
+
def upload_ipa(par)
|
341
|
+
puts("********************************************************* 开始上传")
|
342
|
+
CLI::UI::StdoutRouter.enable
|
343
|
+
spinner = CLI::UI::Spinner::Async.start('')
|
344
|
+
|
345
|
+
# multipart/form-data
|
346
|
+
url = URI(par["endpoint"])
|
347
|
+
http = Net::HTTP.new(url.host, url.port)
|
348
|
+
http.use_ssl = true
|
349
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
350
|
+
|
351
|
+
file = File.open(uki_config.ipa_path, 'rb')
|
352
|
+
|
353
|
+
# 设置请求参数
|
354
|
+
data = par["params"]
|
355
|
+
data["file"] = file.read
|
356
|
+
|
357
|
+
request = Net::HTTP::Post.new(par["endpoint"])
|
358
|
+
request.set_form(data, 'multipart/form-data')
|
359
|
+
response = http.request(request)
|
360
|
+
|
361
|
+
file.close
|
362
|
+
spinner.stop()
|
363
|
+
|
364
|
+
if response.code.to_i == 204
|
365
|
+
puts("********************************************************* 上传成功正在获取包处理信息,请稍等...")
|
366
|
+
getBuildInfo(par["params"])
|
367
|
+
else
|
368
|
+
puts("*********************************************************上传失败 code = #{response.code} message = #{response.message}")
|
369
|
+
exit
|
370
|
+
end
|
371
|
+
end
|
372
|
+
|
373
|
+
def getBuildInfo(par)
|
374
|
+
puts("********************************************************* 别着急大兄弟 官方建议睡3秒,等待蒲公英构建发布")
|
375
|
+
sleep(3)
|
376
|
+
puts("********************************************************* 帅的人已醒来")
|
377
|
+
|
378
|
+
buildKey = par["key"]
|
379
|
+
|
380
|
+
url = URI('https://www.pgyer.com/apiv2/app/buildInfo')
|
381
|
+
# 设置请求参数
|
382
|
+
params = {"_api_key": uki_config.pgyer_apiKey, "buildKey": buildKey}
|
383
|
+
url.query = URI.encode_www_form(params)
|
384
|
+
http = Net::HTTP.new(url.host, url.port)
|
385
|
+
http.use_ssl = true
|
386
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
387
|
+
response = http.get(url, params)
|
388
|
+
resbody = JSON.parse(response.body)
|
389
|
+
code = resbody["code"]
|
390
|
+
|
391
|
+
if uki_config.verbose?
|
392
|
+
puts("打印#{resbody}")
|
393
|
+
end
|
394
|
+
|
395
|
+
if code.to_i == 1247 || code.to_i == 1246 # 正在解析中
|
396
|
+
getBuildInfo(par)
|
397
|
+
end
|
398
|
+
|
399
|
+
if code.to_i == 0
|
400
|
+
uki_config.fir_url = "https://www.pgyer.com/#{resbody["data"]["buildShortcutUrl"]}"
|
401
|
+
else
|
402
|
+
puts("*********************************************************上传失败 code = #{resbody["code"]} message = #{resbody["message"]}")
|
403
|
+
exit
|
404
|
+
end
|
405
|
+
|
406
|
+
ding_notifi(resbody["data"])
|
407
|
+
|
408
|
+
end
|
409
|
+
|
293
410
|
def self.instance
|
294
411
|
@instance ||= new
|
295
412
|
end
|
@@ -1,10 +1,6 @@
|
|
1
1
|
|
2
2
|
class Uki_config
|
3
3
|
|
4
|
-
# scheme info
|
5
|
-
PROJECT_SCHEME = ['UkiOverseas', 'miaohong'].freeze
|
6
|
-
|
7
|
-
|
8
4
|
# 是否展示详细信息
|
9
5
|
attr_accessor :verbose
|
10
6
|
# 是否海外
|
@@ -21,6 +17,8 @@ class Uki_config
|
|
21
17
|
attr_accessor :build_time
|
22
18
|
# 上传耗时
|
23
19
|
attr_accessor :upload_time
|
20
|
+
# 开始上传时间
|
21
|
+
attr_accessor :s_time
|
24
22
|
# 上传Url
|
25
23
|
attr_accessor :fir_url
|
26
24
|
# xcode环境变量
|
@@ -62,11 +60,11 @@ class Uki_config
|
|
62
60
|
end
|
63
61
|
|
64
62
|
def dsym_path
|
65
|
-
return
|
63
|
+
return Pathname.new(huxue_target).join("dsym")
|
66
64
|
end
|
67
65
|
|
68
66
|
def ipa_path
|
69
|
-
return
|
67
|
+
return File.join(build_exe_path.to_s, "#{self.xcode_envs["target"]}.ipa")
|
70
68
|
end
|
71
69
|
|
72
70
|
def verbose(v)
|
@@ -85,15 +83,18 @@ class Uki_config
|
|
85
83
|
|
86
84
|
def auto_work_space_name
|
87
85
|
installation_root
|
88
|
-
|
89
86
|
Dir.foreach(@installation_root) do |entry|
|
90
|
-
if entry.end_with?('xcworkspace')
|
87
|
+
if entry.end_with?('ios.xcworkspace')
|
91
88
|
@workspace_name = entry
|
92
89
|
next
|
93
90
|
end
|
94
91
|
end
|
95
92
|
end
|
96
93
|
|
94
|
+
def huxue_target
|
95
|
+
return File.join(@installation_root, "huxue")
|
96
|
+
end
|
97
|
+
|
97
98
|
def app_version
|
98
99
|
buildSettings = self.xcode_envs["buildSettings"]
|
99
100
|
return buildSettings["MARKETING_VERSION"]
|
@@ -106,7 +107,7 @@ class Uki_config
|
|
106
107
|
|
107
108
|
# 读取产物记录文件
|
108
109
|
def app_file_path
|
109
|
-
return
|
110
|
+
return Pathname.new(huxue_target).join("app_path")
|
110
111
|
end
|
111
112
|
|
112
113
|
# 产物路径
|
@@ -115,21 +116,21 @@ class Uki_config
|
|
115
116
|
end
|
116
117
|
|
117
118
|
def group_name
|
118
|
-
|
119
|
-
return "iOS海外极速打包已完成"
|
120
|
-
end
|
121
|
-
|
122
|
-
return "iOS国内极速打包已完成"
|
119
|
+
return "沪学习打包已完成"
|
123
120
|
end
|
124
121
|
|
125
122
|
def xcode_env_path
|
126
|
-
return
|
123
|
+
return Pathname.new(huxue_target).join("xcode_env.json")
|
127
124
|
end
|
128
125
|
|
129
126
|
def self.instance
|
130
127
|
@instance ||= new
|
131
128
|
end
|
132
129
|
|
130
|
+
def pgyer_apiKey
|
131
|
+
"12c406fb60a9b3f83f65b349ab48771e"
|
132
|
+
end
|
133
|
+
|
133
134
|
class << self
|
134
135
|
attr_writer :instance
|
135
136
|
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.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 耿磊
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|
@@ -24,36 +24,16 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
|
28
|
-
name: fir-cli
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '2.0'
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 2.0.14
|
37
|
-
type: :runtime
|
38
|
-
prerelease: false
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - "~>"
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '2.0'
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 2.0.14
|
47
|
-
description: 支持国内海外一键快速出包
|
27
|
+
description: 支持一键快速出包
|
48
28
|
email:
|
49
29
|
- glworkfine@gmail.com
|
50
30
|
executables:
|
51
|
-
-
|
31
|
+
- dy
|
52
32
|
extensions: []
|
53
33
|
extra_rdoc_files: []
|
54
34
|
files:
|
55
35
|
- README.md
|
56
|
-
- bin/
|
36
|
+
- bin/dy
|
57
37
|
- lib/cocoapods-uki-packager/Test.rb
|
58
38
|
- lib/cocoapods-uki-packager/command/pack.rb
|
59
39
|
- lib/cocoapods-uki-packager/shell.rb
|
@@ -79,8 +59,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
59
|
- !ruby/object:Gem::Version
|
80
60
|
version: '0'
|
81
61
|
requirements: []
|
82
|
-
rubygems_version: 3.
|
62
|
+
rubygems_version: 3.1.4
|
83
63
|
signing_key:
|
84
64
|
specification_version: 4
|
85
|
-
summary:
|
65
|
+
summary: 砥翼快速打包工具
|
86
66
|
test_files: []
|
/data/bin/{uki → dy}
RENAMED
File without changes
|