pindo 5.6.6 → 5.7.0

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: a103f5b0b21922ee65ea260859524a5d28e3d51e51d261f422a49e2c05e5d28a
4
- data.tar.gz: 2e369bea1dd6cce3d79090818bda9a76fa7f09be3421cd1258a9f078e7603509
3
+ metadata.gz: b2c0a15b51042f5ec552927e91ec27520410303e55c09b649d34cf57f5368bb8
4
+ data.tar.gz: 3bd8415b61c8fa8628d0369740a68ab0e83fcaf30fae3e7b399a814e83d8aab0
5
5
  SHA512:
6
- metadata.gz: 50126fe316c91e26e05325badb5b85c3ec92ac5f03037bc14e694feea9d62ad31624cd42f0c85d5364e008294473db031eca50f48532b9b6a6b5dfc3c000d1c9
7
- data.tar.gz: 5a91cf5933357cff53735dbf7664f2df83e01bb6eb2afae3def775ca82a06903de611201532dcb8d63ea207e64f29ecba67b38066214cb37a17fc351136d610c
6
+ metadata.gz: 23d4e4087e51f318f48894781856534fb462f6cb476ac9e16104fb22e759dfa9a3ec4617fb4720798eaf1c6fd9f31b8da7fa91203fe6f339b70c9818bbdf365b
7
+ data.tar.gz: 80cb1d494c4f3913af733560f2492a0203a96ffc5e0ff7ace90b204d0ebd2c08f95d3c645f5fbc7e866e6365addd6444554c224d5d5fc4ecbba5291b1e4174f7
@@ -96,12 +96,48 @@ module Pindo
96
96
  private
97
97
 
98
98
  def android_autobuild
99
+ # 记录构建开始时间
100
+ build_start_time = Time.now
99
101
 
100
102
  pindo_project_dir = Dir.pwd
101
-
103
+
102
104
  app_info_obj = nil
105
+ workflow_info = nil
103
106
  proj_name = @args_proj_name
104
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
107
+ # 传入 package_type 获取 workflow_info
108
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
109
+ working_directory: Dir.pwd,
110
+ proj_name: proj_name,
111
+ package_type: 'apk'
112
+ )
113
+
114
+ # ===== 使用 workflow 配置修改 Android 配置 =====
115
+ if workflow_info && workflow_info[:package_name]
116
+ package_name = workflow_info[:package_name]
117
+
118
+ puts "\n使用工作流配置更新 Android 配置:"
119
+ puts " Package Name: #{package_name}"
120
+
121
+ # 修改 App Name
122
+ Pindo::AndroidBuildConfigHelper.update_app_name_with_packagename(
123
+ project_dir: pindo_project_dir,
124
+ package_name: package_name
125
+ )
126
+
127
+ # 修改 Application ID
128
+ Pindo::AndroidBuildConfigHelper.update_applicationid_with_packagename(
129
+ project_dir: pindo_project_dir,
130
+ package_name: package_name
131
+ )
132
+
133
+ # 添加基于 package_name 的 Scheme
134
+ Pindo::AndroidBuildConfigHelper.add_scheme_packagename(
135
+ project_dir: pindo_project_dir,
136
+ package_name: package_name
137
+ )
138
+ else
139
+ raise Informative, "未获取到工作流信息"
140
+ end
105
141
 
106
142
  build_helper = Pindo::BuildHelper.share_instance
107
143
  if @args_upload_flag
@@ -185,8 +221,18 @@ module Pindo
185
221
  end
186
222
  end
187
223
 
188
- # 只在构建成功完成时弹出目标文件夹
189
- puts "\e[32m构建完成!正在打开目标文件夹...\e[0m"
224
+ # 计算并显示总耗时
225
+ total_time = Time.now - build_start_time
226
+ minutes = (total_time / 60).to_i
227
+ seconds = (total_time % 60).to_i
228
+
229
+ if minutes > 0
230
+ puts "\e[32m构建完成!总耗时: #{minutes}分#{seconds}秒\e[0m"
231
+ else
232
+ puts "\e[32m构建完成!总耗时: #{seconds}秒\e[0m"
233
+ end
234
+
235
+ puts "\e[32m正在打开目标文件夹...\e[0m"
190
236
  system "open #{pindo_project_dir}"
191
237
 
192
238
  rescue => e
@@ -87,9 +87,43 @@ module Pindo
87
87
  end
88
88
 
89
89
  app_info_obj = nil
90
+ workflow_info = nil
90
91
  if @args_upload_flag
91
92
  proj_name = @args_proj_name
92
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
93
+ # 传入 package_type 获取 workflow_info
94
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
95
+ working_directory: Dir.pwd,
96
+ proj_name: proj_name,
97
+ package_type: 'apk'
98
+ )
99
+
100
+ # ===== 使用 workflow 配置修改 Android 配置 =====
101
+ if workflow_info && workflow_info[:package_name]
102
+ package_name = workflow_info[:package_name]
103
+
104
+ puts "\n使用工作流配置更新 Android 配置:"
105
+ puts " Package Name: #{package_name}"
106
+
107
+ # 修改 App Name
108
+ Pindo::AndroidBuildConfigHelper.update_app_name_with_packagename(
109
+ project_dir: pindo_project_dir,
110
+ package_name: package_name
111
+ )
112
+
113
+ # 修改 Application ID
114
+ Pindo::AndroidBuildConfigHelper.update_applicationid_with_packagename(
115
+ project_dir: pindo_project_dir,
116
+ package_name: package_name
117
+ )
118
+
119
+ # 添加基于 package_name 的 Scheme
120
+ Pindo::AndroidBuildConfigHelper.add_scheme_packagename(
121
+ project_dir: pindo_project_dir,
122
+ package_name: package_name
123
+ )
124
+ else
125
+ raise Informative, "未获取到工作流信息"
126
+ end
93
127
  end
94
128
 
95
129
 
@@ -79,9 +79,43 @@ module Pindo
79
79
 
80
80
 
81
81
  app_info_obj = nil
82
+ workflow_info = nil
82
83
  if @upload_flag
83
84
  proj_name = @proj_name
84
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
85
+ # 传入 package_type 获取 workflow_info
86
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
87
+ working_directory: Dir.pwd,
88
+ proj_name: proj_name,
89
+ package_type: 'apk'
90
+ )
91
+
92
+ # ===== 使用 workflow 配置修改 Android 配置 =====
93
+ if workflow_info && workflow_info[:package_name]
94
+ package_name = workflow_info[:package_name]
95
+
96
+ puts "\n使用工作流配置更新 Android 配置:"
97
+ puts " Package Name: #{package_name}"
98
+
99
+ # 修改 App Name
100
+ Pindo::AndroidBuildConfigHelper.update_app_name_with_packagename(
101
+ project_dir: pindo_project_dir,
102
+ package_name: package_name
103
+ )
104
+
105
+ # 修改 Application ID
106
+ Pindo::AndroidBuildConfigHelper.update_applicationid_with_packagename(
107
+ project_dir: pindo_project_dir,
108
+ package_name: package_name
109
+ )
110
+
111
+ # 添加基于 package_name 的 Scheme
112
+ Pindo::AndroidBuildConfigHelper.add_scheme_packagename(
113
+ project_dir: pindo_project_dir,
114
+ package_name: package_name
115
+ )
116
+ else
117
+ raise Informative, "未获取到工作流信息"
118
+ end
85
119
  end
86
120
 
87
121
  begin
@@ -76,7 +76,43 @@ module Pindo
76
76
  end
77
77
 
78
78
  def run
79
-
79
+
80
+ project_dir = Dir.pwd
81
+
82
+ app_info_obj = nil
83
+ workflow_info = nil
84
+ if @args_upload_flag
85
+ proj_name = @args_proj_name
86
+ # 传入 package_type 获取 workflow_info
87
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
88
+ working_directory: Dir.pwd,
89
+ proj_name: proj_name,
90
+ package_type: 'ipa'
91
+ )
92
+
93
+ # ===== 使用 workflow 配置修改 plist =====
94
+ if workflow_info && workflow_info[:package_name]
95
+ package_name = workflow_info[:package_name]
96
+
97
+ puts "\n使用工作流配置更新 Info.plist:"
98
+ puts " Package Name: #{package_name}"
99
+
100
+ # 修改 Display Name
101
+ Pindo::XcodeBuildConfig.update_display_name_with_packagename(
102
+ project_dir: project_dir,
103
+ package_name: package_name
104
+ )
105
+
106
+ # 修改 Bundle ID
107
+ Pindo::XcodeBuildConfig.update_bundleid_with_packagename(
108
+ project_dir: project_dir,
109
+ package_name: package_name
110
+ )
111
+ else
112
+ raise Informative, "未获取到工作流信息"
113
+ end
114
+ end
115
+
80
116
  mainapp_bundleid= nil
81
117
  if @args_deploy_flag
82
118
  mainapp_bundleid = get_selected_deploy_bundleid()
@@ -84,22 +120,33 @@ module Pindo
84
120
  mainapp_bundleid = get_selected_dev_bundleid()
85
121
  end
86
122
 
87
- app_info_obj = nil
88
- if @args_upload_flag
89
- proj_name = @args_proj_name
90
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
91
- end
92
-
93
123
  args_temp = []
94
124
  args_temp << mainapp_bundleid
95
125
  Pindo::Command::Deploy::Pullconfig::run(args_temp)
96
126
 
97
- project_dir = Dir.pwd
98
127
  Dir.chdir(project_dir)
128
+
99
129
  config_json_file = File.join(project_dir,"config.json")
100
130
  # 处理entitlements配置
101
131
  Pindo::XcodeBuildConfig.update_entitlements_config(project_dir: project_dir, config_file: config_json_file)
102
132
 
133
+ # 添加URL Scheme(基于 package_name)
134
+ if @args_upload_flag && workflow_info && workflow_info[:package_name]
135
+ Pindo::XcodeBuildConfig.add_url_scheme_packagename(
136
+ project_dir: project_dir,
137
+ package_name: workflow_info[:package_name]
138
+ )
139
+ end
140
+
141
+ # 添加URL Schemes(基于 scheme_name 和 Bundle ID)
142
+ if @args_upload_flag
143
+ scheme_name = @args_proj_name
144
+ Pindo::XcodeBuildConfig.add_url_schemes(
145
+ project_dir: project_dir,
146
+ scheme_name: scheme_name
147
+ )
148
+ end
149
+
103
150
  if File.exist?(File.join(project_dir, "Podfile"))
104
151
 
105
152
  args_temp = []
@@ -118,6 +118,8 @@ module Pindo
118
118
  end
119
119
 
120
120
  def ios_autobuild
121
+ # 记录构建开始时间
122
+ build_start_time = Time.now
121
123
 
122
124
  pindo_project_dir = Dir.pwd
123
125
  build_helper = Pindo::BuildHelper.share_instance
@@ -146,9 +148,36 @@ module Pindo
146
148
  end
147
149
 
148
150
  app_info_obj = nil
151
+ workflow_info = nil
149
152
  proj_name = @args_proj_name
150
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
151
-
153
+ # 传入 package_type 获取 workflow_info
154
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
155
+ working_directory: Dir.pwd,
156
+ proj_name: proj_name,
157
+ package_type: 'ipa'
158
+ )
159
+
160
+ # ===== 使用 workflow 配置修改 plist =====
161
+ if workflow_info && workflow_info[:package_name]
162
+ package_name = workflow_info[:package_name]
163
+
164
+ puts "\n使用工作流配置更新 Info.plist:"
165
+ puts " Package Name: #{package_name}"
166
+
167
+ # 修改 Display Name
168
+ Pindo::XcodeBuildConfig.update_display_name_with_packagename(
169
+ project_dir: pindo_project_dir,
170
+ package_name: package_name
171
+ )
172
+
173
+ # 修改 Bundle ID
174
+ Pindo::XcodeBuildConfig.update_bundleid_with_packagename(
175
+ project_dir: pindo_project_dir,
176
+ package_name: package_name
177
+ )
178
+ else
179
+ raise Informative, "未获取到工作流信息"
180
+ end
152
181
 
153
182
  args_temp = []
154
183
  args_temp << mainapp_bundleid
@@ -156,7 +185,7 @@ module Pindo
156
185
 
157
186
  Dir.chdir(pindo_project_dir)
158
187
  config_json_file = File.join(pindo_project_dir,"config.json")
159
-
188
+
160
189
  scheme_name = @args_proj_name if @args_proj_name
161
190
  if !app_info_obj.nil? && !app_info_obj["scheme"].nil? && !app_info_obj["scheme"].empty?
162
191
  scheme_name = app_info_obj["scheme"]
@@ -174,8 +203,19 @@ module Pindo
174
203
  # 处理entitlements配置
175
204
  Pindo::XcodeBuildConfig.update_entitlements_config(project_dir: pindo_project_dir, config_file: config_json_file)
176
205
 
177
- # 添加URL Schemes
178
- Pindo::XcodeBuildConfig.add_url_schemes(project_dir: pindo_project_dir, scheme_name: scheme_name)
206
+ # 添加URL Scheme(基于 package_name)
207
+ if workflow_info && workflow_info[:package_name]
208
+ Pindo::XcodeBuildConfig.add_url_scheme_packagename(
209
+ project_dir: pindo_project_dir,
210
+ package_name: workflow_info[:package_name]
211
+ )
212
+ end
213
+
214
+ # 添加URL Schemes(基于 scheme_name 和 Bundle ID)
215
+ Pindo::XcodeBuildConfig.add_url_schemes(
216
+ project_dir: pindo_project_dir,
217
+ scheme_name: scheme_name
218
+ )
179
219
 
180
220
  if File.exist?(File.join(pindo_project_dir, "Podfile"))
181
221
 
@@ -278,6 +318,18 @@ module Pindo
278
318
  end
279
319
  end
280
320
 
321
+ # 计算并显示总耗时
322
+ total_time = Time.now - build_start_time
323
+ minutes = (total_time / 60).to_i
324
+ seconds = (total_time % 60).to_i
325
+
326
+ if minutes > 0
327
+ puts "\e[32m构建完成!总耗时: #{minutes}分#{seconds}秒\e[0m"
328
+ else
329
+ puts "\e[32m构建完成!总耗时: #{seconds}秒\e[0m"
330
+ end
331
+
332
+ puts "\e[32m正在打开目标文件夹...\e[0m"
281
333
  system "open #{pindo_project_dir}"
282
334
 
283
335
  end
@@ -94,7 +94,7 @@ module Pindo
94
94
  end
95
95
 
96
96
  def ios_build
97
-
97
+
98
98
  pindo_project_dir = Dir.pwd
99
99
  build_helper = Pindo::BuildHelper.share_instance
100
100
  if @args_upload_flag
@@ -111,9 +111,50 @@ module Pindo
111
111
  end
112
112
 
113
113
  app_info_obj = nil
114
- if @args_upload_flag
114
+ workflow_info = nil
115
+ if @args_upload_flag
115
116
  proj_name = @args_proj_name
116
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
117
+ # 传入 package_type 获取 workflow_info
118
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
119
+ working_directory: Dir.pwd,
120
+ proj_name: proj_name,
121
+ package_type: 'ipa'
122
+ )
123
+
124
+ # ===== 使用 workflow 配置修改 plist =====
125
+ if workflow_info && workflow_info[:package_name]
126
+ package_name = workflow_info[:package_name]
127
+
128
+ puts "\n使用工作流配置更新 Info.plist:"
129
+ puts " Package Name: #{package_name}"
130
+
131
+ # 修改 Display Name
132
+ Pindo::XcodeBuildConfig.update_display_name_with_packagename(
133
+ project_dir: pindo_project_dir,
134
+ package_name: package_name
135
+ )
136
+
137
+ # 修改 Bundle ID
138
+ Pindo::XcodeBuildConfig.update_bundleid_with_packagename(
139
+ project_dir: pindo_project_dir,
140
+ package_name: package_name
141
+ )
142
+
143
+ # 添加URL Scheme(基于 package_name)
144
+ Pindo::XcodeBuildConfig.add_url_scheme_packagename(
145
+ project_dir: pindo_project_dir,
146
+ package_name: package_name
147
+ )
148
+
149
+ # 添加URL Schemes(基于 scheme_name 和 Bundle ID)
150
+ scheme_name = @args_proj_name
151
+ Pindo::XcodeBuildConfig.add_url_schemes(
152
+ project_dir: pindo_project_dir,
153
+ scheme_name: scheme_name
154
+ )
155
+ else
156
+ raise Informative, "未获取到工作流信息"
157
+ end
117
158
  end
118
159
 
119
160
 
@@ -101,8 +101,14 @@ DESC
101
101
  puts
102
102
 
103
103
  app_info_obj = nil
104
+ workflow_info = nil
104
105
  proj_name = @args_proj_name
105
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
106
+ # 传入 package_type 获取 workflow_info
107
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
108
+ working_directory: Dir.pwd,
109
+ proj_name: proj_name,
110
+ package_type: 'apk'
111
+ )
106
112
 
107
113
  isLibrary = @args_base_flag
108
114
 
@@ -121,8 +121,14 @@ DESC
121
121
  puts
122
122
 
123
123
  app_info_obj = nil
124
+ workflow_info = nil
124
125
  proj_name = @args_proj_name
125
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
126
+ # 传入 package_type 获取 workflow_info
127
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
128
+ working_directory: Dir.pwd,
129
+ proj_name: proj_name,
130
+ package_type: 'ipa'
131
+ )
126
132
 
127
133
  mainapp_bundleid= nil
128
134
  if @args_bundle_id
@@ -151,12 +157,12 @@ DESC
151
157
  ipa_count = app_info_obj&.dig("ipaCount") || -1
152
158
 
153
159
  unity_helper.build_project(unity_exe_full_path:unity_exe_path, project_path:pindo_project_dir, platform:'iOS', isLibrary:isLibrary, indexNo:ipa_count)
154
-
155
-
160
+
161
+
156
162
  args_temp = []
157
163
  args_temp << "--bundleid=#{mainapp_bundleid}"
158
164
 
159
- if @args_upload_flag
165
+ if @args_upload_flag
160
166
  args_temp << "--proj=#{app_info_obj["projectName"]}"
161
167
  args_temp << "--upload"
162
168
  end
@@ -220,7 +220,7 @@ module Pindo
220
220
  raise Informative, "JPS 中没有任何项目,请联系管理员创建"
221
221
  end
222
222
 
223
- nuget_project = projects.find { |p| p['projectName']&.downcase == 'nuget' }
223
+ nuget_project = projects.find { |p| p['projectName']&.downcase == 'nuget' || p['projectName']&.downcase == 'nuget 库' }
224
224
 
225
225
  if nuget_project.nil?
226
226
  puts
@@ -112,15 +112,15 @@ DESC
112
112
  puts
113
113
 
114
114
  app_info_obj = nil
115
+ workflow_info = nil
115
116
  proj_name = @args_proj_name
116
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
117
+ # 传入 package_type 获取 workflow_info
118
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
119
+ working_directory: Dir.pwd,
120
+ proj_name: proj_name,
121
+ package_type: 'zip'
122
+ )
117
123
 
118
- mainapp_bundleid= nil
119
- if @args_deploy_flag
120
- mainapp_bundleid = get_selected_deploy_bundleid()
121
- else
122
- mainapp_bundleid = get_selected_dev_bundleid()
123
- end
124
124
 
125
125
  isLibrary = @args_base_flag
126
126
 
@@ -140,21 +140,7 @@ DESC
140
140
  unity_helper.build_project(unity_exe_full_path:unity_exe_path, project_path:pindo_project_dir, platform:'iOS', isLibrary:isLibrary, indexNo:ipa_count)
141
141
 
142
142
 
143
- args_temp = []
144
- args_temp << "--bundleid=#{mainapp_bundleid}"
145
-
146
- if @args_upload_flag
147
- args_temp << "--proj=#{app_info_obj["projectName"]}"
148
- args_temp << "--upload"
149
- end
150
- if @args_send_flag
151
- args_temp << "--send"
152
- end
153
-
154
- Dir.chdir(pindo_ios_project_dir)
155
143
 
156
- Pindo::Command::Ios::Autobuild::run(args_temp)
157
-
158
144
 
159
145
  end
160
146
 
@@ -137,13 +137,50 @@ module Pindo
137
137
  puts
138
138
 
139
139
  app_info_obj = nil
140
+ workflow_info = nil
140
141
  proj_name = @args_proj_name
141
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
142
+ # 传入 package_type 获取 workflow_info
143
+ app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
144
+ working_directory: Dir.pwd,
145
+ proj_name: proj_name,
146
+ package_type: 'zip'
147
+ )
142
148
 
143
149
  web_export_dir = File.join(pindo_project_dir, "GoodPlatform/WebGL")
144
150
 
145
151
  # 获取 zipCount 用于传递给 Unity 构建
146
- zip_count = app_info_obj&.dig("zipCount") || -1
152
+ # 根据 workflow_info package_name 从 JPS API 获取 WebGL 包的 indexNo
153
+ zip_count = -1
154
+ if workflow_info && workflow_info[:package_name]
155
+ begin
156
+ jps_client = JPSClient::Client.share_client
157
+ project_id = jps_client.get_project_id
158
+
159
+ # 根据 workflow_info 的 package_name 获取 WebGL 包列表
160
+ result = jps_client.project_package.get_project_package_list(
161
+ projectId: project_id,
162
+ params: {
163
+ pageNo: 1,
164
+ pageSize: 1,
165
+ nativePackageType: 'zip',
166
+ packageName: workflow_info[:package_name]
167
+ }
168
+ )
169
+
170
+ # 从返回结果中获取 indexNo
171
+ if result && result['data'] && !result['data'].empty?
172
+ latest_package = result['data'].first
173
+ zip_count = latest_package['indexNo'] || 0
174
+ puts " ✓ 获取到WebGL包序号: #{zip_count}"
175
+ else
176
+ puts " ⚠ 未找到WebGL包,使用初始序号: 0"
177
+ zip_count = 0
178
+ end
179
+ rescue => e
180
+ puts " ⚠ 获取WebGL包序号失败: #{e.message},使用默认值: -1"
181
+ zip_count = -1
182
+ end
183
+ end
147
184
 
148
185
  unity_helper.build_project(unity_exe_full_path:unity_exe_path, project_path:pindo_project_dir, platform:'WebGL', indexNo:zip_count)
149
186