ocean_package 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +22 -1
- data/lib/ocean_package.rb +1 -0
- data/lib/ocean_package/command.rb +4 -1
- data/lib/ocean_package/constants.rb +0 -1
- data/lib/ocean_package/package.rb +67 -4
- data/lib/ocean_package/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: 9b372a1a30d54bb10b757aecbf207cea5f235f7144e0a7e020f8b24f73ba48fc
|
4
|
+
data.tar.gz: b95ed7d2ba0abeb4aa9f6c02f2e39e60270526e631ee24a536f2ce6f4520bd0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dfc40afd770778ea67c6424e63b549a43240b843b4d738c186cff7730852f64af6baa7e5fdb726e7add2993f4e86ec058e1d9e39747155007c38fc418441cdd
|
7
|
+
data.tar.gz: dddfa48f512062b1f6ed3e331a9f9da28fad466bb4d7af4a687a84199f69eb471ec60e9dbea45293a1b3ac262da3a245d17280c1b04e9dd3a9909086d5810dc3
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -39,8 +39,11 @@ sudo gem install multipart-post
|
|
39
39
|
|
40
40
|
## Usage
|
41
41
|
|
42
|
+
> 打包 - 上传到 fir 或 蒲公英平台 - 发送消息到钉钉群
|
43
|
+
|
44
|
+
|
42
45
|
```
|
43
|
-
oceanpackage --workspace-path=/Users/ocean/Desktop/code/iOS/MyApp.xcworkspace --scheme=MyApp --configuration=Debug --archive-path=/Users/ocean/Documents/myipas --export-options-plist=/Users/ocean/Desktop/code/iOS/Company/MyApp/AdHocExportOptions.plist --company-name=MyCompany --fir-token=fir平台的token --pgy-api-key=蒲公英平台的apikey --change-log=测试一下 --oss-bucket-name=bucket名称 --oss-bucket-path=bucket路径 --oss-endpoint=oss的endpoint --ding-token=钉钉群机器人token --at-mobiles=需要@的人手机号
|
46
|
+
oceanpackage --workspace-path=/Users/ocean/Desktop/code/iOS/MyApp.xcworkspace --scheme=MyApp --configuration=Debug --archive-path=/Users/ocean/Documents/myipas --export-options-plist=/Users/ocean/Desktop/code/iOS/Company/MyApp/AdHocExportOptions.plist --company-name=MyCompany --fir-token=fir平台的token --pgy-api-key=蒲公英平台的apikey --change-log=测试一下 --oss-bucket-name=bucket名称 --oss-bucket-path=bucket路径 --oss-endpoint=oss的endpoint --ding-token=钉钉群机器人token --at-mobiles=需要@的人手机号 --extra-export-params="-allowProvisioningUpdates,IPHONEOS_DEPLOYMENT_TARGET=11.0"
|
44
47
|
```
|
45
48
|
|
46
49
|
- `--workspace-path`: `.xcworkspace` 文件路径
|
@@ -57,7 +60,25 @@ oceanpackage --workspace-path=/Users/ocean/Desktop/code/iOS/MyApp.xcworkspace --
|
|
57
60
|
- `--oss-endpoint`: `oss` 的 `endpoint`
|
58
61
|
- `--ding-token`: 钉钉群机器人的`token`
|
59
62
|
- `--at-mobiles`: 钉钉群需要 @ 的人手机号,多个用 `,` 拼接
|
63
|
+
- `--extra-export-params`: 打包的额外参数,多个用 `,` 拼接,例如 `"-allowProvisioningUpdates,IPHONEOS_DEPLOYMENT_TARGET=11.0"`
|
64
|
+
- `--open-finder`: 打包完成是否打开对应的文件目录,`--no-open-finder`表示`false`, `--open-finder` 表示 `true`
|
65
|
+
|
60
66
|
|
67
|
+
> 指定 ipa 文件
|
68
|
+
|
69
|
+
- 上传到蒲公英平台命令格式如下:
|
70
|
+
|
71
|
+
```
|
72
|
+
oceanpackage --configuration=Debug --ipa-file-path=/Users/ocean/Documents/myipas/test.ipa --company-name=company2 --pgy-api-key=蒲公英平台apikey --change-log=测试一下 --oss-bucket-name=bucket名称 --oss-bucket-path=bucket路径 --oss-endpoint=oss的endpoint --ding-token=钉钉群机器人token --at-mobiles=需要@的人手机号
|
73
|
+
```
|
74
|
+
|
75
|
+
> 只用到上传ipa
|
76
|
+
|
77
|
+
```
|
78
|
+
oceanpackage --ipa-file-path=${ipa_file_path} \
|
79
|
+
--pgy-api-key=${pgy_api_key} \
|
80
|
+
--change-log="${update_desc}" \
|
81
|
+
```
|
61
82
|
|
62
83
|
## Development
|
63
84
|
|
data/lib/ocean_package.rb
CHANGED
@@ -58,10 +58,13 @@ module OceanPackage
|
|
58
58
|
extra_export_params = argv.option("extra-export-params", "")
|
59
59
|
Log.info("extra-export-params: #{extra_export_params}")
|
60
60
|
|
61
|
+
open_finder = argv.flag?("open-finder", false )
|
62
|
+
Log.info("open-finder: #{open_finder}")
|
63
|
+
|
61
64
|
# 自定义ipa文件,使用该文件作为 archive path
|
62
65
|
tmp_archive_path = has_custom_ipa_file ? File.dirname("#{ipa_file_path}") : archive_path
|
63
66
|
Log.info("tmp_archive_path: #{tmp_archive_path}")
|
64
|
-
@package = OceanPackage::Package.new(workspace_path, scheme, configuration, tmp_archive_path, company_name, export_options_plist, extra_export_params)
|
67
|
+
@package = OceanPackage::Package.new(workspace_path, scheme, configuration, tmp_archive_path, company_name, export_options_plist, extra_export_params, open_finder)
|
65
68
|
|
66
69
|
fir_token = argv.option("fir-token", "")
|
67
70
|
Log.info("fir_token: #{fir_token}")
|
@@ -27,7 +27,12 @@ module OceanPackage
|
|
27
27
|
# 结束时间
|
28
28
|
attr_accessor :end_time
|
29
29
|
|
30
|
-
|
30
|
+
# ipa 最大保存的数目
|
31
|
+
attr_accessor :ipa_max_retain_number
|
32
|
+
# 打包完成是否打开文件夹
|
33
|
+
attr_accessor :open_finder
|
34
|
+
|
35
|
+
def initialize(workspace_path, scheme, configuration, archive_path, company_name, export_options_plist, extra_export_params, open_finder)
|
31
36
|
@workspace_path = workspace_path
|
32
37
|
@scheme = scheme
|
33
38
|
@configuration = configuration
|
@@ -37,6 +42,8 @@ module OceanPackage
|
|
37
42
|
@export_options_plist = export_options_plist
|
38
43
|
@extra_export_params = extra_export_params
|
39
44
|
|
45
|
+
@ipa_max_retain_number = 3
|
46
|
+
@open_finder = open_finder
|
40
47
|
# 预设置开始时间
|
41
48
|
@start_time = Time.now
|
42
49
|
end
|
@@ -61,6 +68,8 @@ module OceanPackage
|
|
61
68
|
@start_time = Time.now
|
62
69
|
# 检查必须参数
|
63
70
|
check
|
71
|
+
# 清理历史的ipa
|
72
|
+
clean_history_ipa
|
64
73
|
# clean 项目
|
65
74
|
clean
|
66
75
|
# 打包项目
|
@@ -70,7 +79,9 @@ module OceanPackage
|
|
70
79
|
@end_time = Time.now
|
71
80
|
# 返回打包成功的 ipa 文件路径
|
72
81
|
ipa_file_path
|
73
|
-
|
82
|
+
if @open_finder
|
83
|
+
open_ipa_file_path
|
84
|
+
end
|
74
85
|
end
|
75
86
|
|
76
87
|
# 一些校验
|
@@ -109,6 +120,51 @@ module OceanPackage
|
|
109
120
|
|
110
121
|
end
|
111
122
|
|
123
|
+
# **************************************
|
124
|
+
# clean history
|
125
|
+
# **************************************
|
126
|
+
|
127
|
+
def clean_history_ipa
|
128
|
+
path = final_archive_path_company_pro
|
129
|
+
|
130
|
+
sub_paths = Array.new
|
131
|
+
Dir.each_child(path) do |x|
|
132
|
+
unless "#{x}".eql?(".DS_Store")
|
133
|
+
sub_paths.push("#{x}")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
if sub_paths.length > @ipa_max_retain_number
|
138
|
+
Log.divider
|
139
|
+
Log.info("clean history ipas: begin =======")
|
140
|
+
|
141
|
+
count = sub_paths.length - @ipa_max_retain_number
|
142
|
+
deleted_paths = sub_paths.first(count)
|
143
|
+
|
144
|
+
deleted_paths.each do |p|
|
145
|
+
new_path = path + p
|
146
|
+
Log.info(new_path)
|
147
|
+
delete_directory(new_path)
|
148
|
+
end
|
149
|
+
|
150
|
+
Log.info("clean history ipas: end =======")
|
151
|
+
Log.divider
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def delete_directory(dirPath)
|
156
|
+
if File.directory?(dirPath)
|
157
|
+
Dir.foreach(dirPath) do |subFile|
|
158
|
+
if subFile != '.' and subFile != '..'
|
159
|
+
delete_directory(File.join(dirPath, subFile));
|
160
|
+
end
|
161
|
+
end
|
162
|
+
Dir.rmdir(dirPath)
|
163
|
+
else
|
164
|
+
File.delete(dirPath)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
112
168
|
# **************************************
|
113
169
|
# clean
|
114
170
|
# **************************************
|
@@ -152,8 +208,8 @@ module OceanPackage
|
|
152
208
|
end
|
153
209
|
end
|
154
210
|
|
155
|
-
#
|
156
|
-
def
|
211
|
+
# 最终的打包路径,包含了公司,项目名称
|
212
|
+
def final_archive_path_company_pro
|
157
213
|
path = processed_archive_path
|
158
214
|
unless "#{@company_name}".empty?
|
159
215
|
path += @company_name + '/'
|
@@ -161,6 +217,13 @@ module OceanPackage
|
|
161
217
|
unless "#{project_name}".empty?
|
162
218
|
path += project_name + '/'
|
163
219
|
end
|
220
|
+
|
221
|
+
path
|
222
|
+
end
|
223
|
+
|
224
|
+
# 最终的打包路径
|
225
|
+
def final_archive_path
|
226
|
+
path = final_archive_path_company_pro
|
164
227
|
path += @date_time + '/'
|
165
228
|
|
166
229
|
Log.info("final archive path: #{path}")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ocean_package
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ocean
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dingbot
|