pindo 5.13.2 → 5.13.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.
@@ -4,6 +4,7 @@ require 'pindo/module/build/version_helper'
4
4
  require 'pindo/module/build/git_repo_helper'
5
5
  require 'pindo/module/xcode/xcode_build_config'
6
6
  require 'pindo/module/xcode/xcode_build_helper'
7
+ require 'pindo/module/xcode/cocoapods_helper'
7
8
  require 'pindo/module/pgyer/pgyerhelper'
8
9
 
9
10
  module Pindo
@@ -45,12 +46,13 @@ module Pindo
45
46
  update_version_info
46
47
  pull_config
47
48
  update_entitlements
48
- handle_cocoapods
49
+
49
50
  end
50
51
 
51
52
  def execute_build
52
53
  configure_certificate
53
54
  update_url_schemes_final
55
+ handle_cocoapods
54
56
  build_ios_project
55
57
  end
56
58
 
@@ -92,14 +94,6 @@ module Pindo
92
94
  end
93
95
  end
94
96
 
95
- # 清理 Firebase Shell Script
96
- def cleanup_firebase_shell
97
- project_fullname = Dir.glob(File.join(@project_path, "/*.xcodeproj")).max_by { |f| File.mtime(f) }
98
- if !project_fullname.nil? && File.exist?(project_fullname)
99
- Pindo::XcodeBuildHelper.delete_libtarget_firebase_shell(@project_path)
100
- end
101
- end
102
-
103
97
  # 更新工程配置
104
98
  def update_project_config
105
99
  workflow_packname = @workflow_info[:package_name]
@@ -146,23 +140,15 @@ module Pindo
146
140
  end
147
141
  end
148
142
 
149
- # 拉取配置
143
+ # 检查配置
150
144
  def pull_config
151
- return unless @bundle_id
152
-
153
- build_helper = Pindo::BuildHelper.share_instance
154
- build_helper.pull_appconfig_with_reponame(
155
- repo_name: @bundle_id,
156
- target_dir: @project_path
157
- )
158
-
159
- # 重新加载配置到 IosConfigParser
160
- config_file = File.join(@project_path, "config.json")
161
- if File.exist?(config_file)
162
- Pindo::IosConfigParser.instance.load_config(config_file: config_file)
163
- else
164
- raise Informative, "配置文件不存在: #{config_file}"
145
+ # 检查 IosConfigParser 单例中是否已加载配置
146
+ config_parser = Pindo::IosConfigParser.instance
147
+ if config_parser.config_json.nil?
148
+ raise Informative, "IosBuildDevTask 配置未加载,请确保在命令层已正确加载 config.json"
165
149
  end
150
+
151
+ puts " 使用已加载的配置..."
166
152
  end
167
153
 
168
154
  # 更新 Entitlements
@@ -176,29 +162,14 @@ module Pindo
176
162
  def handle_cocoapods
177
163
  return unless File.exist?(File.join(@project_path, "Podfile"))
178
164
 
179
- Dir.chdir(@project_path)
180
- Pindo::Command::Ios::Podupdate::run([])
181
-
182
- begin
183
- # 清理现有 Pods
184
- FileUtils.rm_rf(File.join(@project_path, "Podfile.lock")) if File.exist?(File.join(@project_path, "Podfile.lock"))
185
- FileUtils.rm_rf(File.join(@project_path, "Pods")) if File.exist?(File.join(@project_path, "Pods"))
186
-
187
- puts "正在执行 pod deintegrate..."
188
- system 'pod deintegrate'
189
-
190
- puts "正在执行 pod install..."
191
- system 'pod install'
192
- rescue => error
193
- puts(error.to_s)
194
- raise Informative, "pod install 失败!!先 pod install 完成后再编译!"
195
- end
165
+ # 1. 更新私有索引库
166
+ Pindo::CocoaPodsHelper.update_pod_repo(
167
+ install: false,
168
+ project_dir: @project_path
169
+ )
196
170
 
197
- # 检查 pod install 是否成功
198
- pod_lock_file = File.join(@project_path, "Podfile.lock")
199
- unless File.exist?(pod_lock_file)
200
- raise Informative, "pod install 失败!!先 pod install 完成后再编译!"
201
- end
171
+ # 2. 清理并重新安装
172
+ Pindo::CocoaPodsHelper.deintegrate_and_install(@project_path)
202
173
  end
203
174
 
204
175
  # 配置证书
@@ -1,4 +1,5 @@
1
1
  require_relative '../build_task'
2
+ require 'pindo/module/xcode/xcode_build_helper'
2
3
 
3
4
  module Pindo
4
5
  module TaskSystem
@@ -6,8 +7,17 @@ module Pindo
6
7
  # 所有 iOS 平台构建任务的抽象基类
7
8
  # 子类包括:IosBuildDevTask、IosBuildAdhocTask、IosBuildAppStoreTask
8
9
  class IosBuildTask < BuildTask
9
- # 空基类,仅用于类型标识
10
- # 所有具体实现由子类完成
10
+
11
+ protected
12
+
13
+ # 清理 Firebase Shell Script
14
+ # 删除 Xcode 项目中的 Firebase Shell Script Build Phase
15
+ def cleanup_firebase_shell
16
+ project_fullname = Dir.glob(File.join(@project_path, "/*.xcodeproj")).max_by { |f| File.mtime(f) }
17
+ if !project_fullname.nil? && File.exist?(project_fullname)
18
+ Pindo::XcodeBuildHelper.delete_libtarget_firebase_shell(@project_path)
19
+ end
20
+ end
11
21
  end
12
22
  end
13
23
  end
@@ -0,0 +1,271 @@
1
+ require 'fileutils'
2
+ require 'json'
3
+ require 'faraday'
4
+ require 'xcodeproj'
5
+ require 'pindo/base/git_handler'
6
+ require 'pindo/config/pindoconfig'
7
+
8
+ module Pindo
9
+ # Applovin Xcode 辅助类
10
+ # 封装 Applovin 相关的操作,包括:
11
+ # - 获取 SKAdNetwork IDs
12
+ # - 更新 Info.plist 文件
13
+ # - 运行 Applovin 安装脚本
14
+ class ApplovinXcodeHelper
15
+
16
+ class << self
17
+ # 更新 Xcode 工程的 Applovin 配置
18
+ # @param project_dir [String] 项目目录,默认为当前目录
19
+ # @param appstore_mode [Boolean] 是否为 AppStore 模式
20
+ # @param install_script [Boolean] 是否运行安装脚本
21
+ # @param upload_config [Boolean] 是否保存配置到远程
22
+ # @return [Boolean] 是否成功
23
+ def update_applovin_config(project_dir: nil, appstore_mode: false, install_script: false, upload_config: false)
24
+ project_dir ||= Dir.pwd
25
+
26
+ # 1. 获取 SKAdNetwork IDs
27
+ skadnetwork_ids = fetch_skadnetwork_ids(upload_config: upload_config)
28
+
29
+ if skadnetwork_ids.nil? || skadnetwork_ids.empty?
30
+ puts "⚠ 未能获取 SKAdNetwork IDs"
31
+ return false
32
+ end
33
+
34
+ puts "✓ 获取到 #{skadnetwork_ids.size} 条 SKAdNetwork IDs"
35
+
36
+ # 2. 更新 Info.plist
37
+ update_info_plist(project_dir: project_dir, skadnetwork_ids: skadnetwork_ids)
38
+
39
+ # 3. 运行安装脚本(可选)
40
+ if install_script
41
+ run_applovin_install_script(project_dir: project_dir, appstore_mode: appstore_mode)
42
+ end
43
+
44
+ true
45
+ end
46
+
47
+ # 获取 SKAdNetwork IDs
48
+ # @param upload_config [Boolean] 是否保存配置到远程
49
+ # @return [Array<String>] SKAdNetwork IDs 数组
50
+ def fetch_skadnetwork_ids(upload_config: false)
51
+ skadnetwork_ids = []
52
+
53
+ puts "正在请求 Applovin 数据..."
54
+
55
+ # 1. 请求 Applovin SKAdNetwork IDs
56
+ applovin_data = request_applovin_skadnetwork_ids
57
+ if applovin_data && applovin_data["skadnetwork_ids"]
58
+ applovin_data["skadnetwork_ids"].each do |network_id|
59
+ skadnetwork_ids << network_id["skadnetwork_id"]
60
+ end
61
+ end
62
+
63
+ # 2. 请求 Applovin Mediation SKAdNetwork IDs
64
+ mediation_data = request_applovin_mediation_skadnetwork_ids
65
+ if mediation_data && mediation_data["mediationSKAdnetworkIdsSpecs"]
66
+ mediation_data["mediationSKAdnetworkIdsSpecs"].each do |media_item|
67
+ skadnetwork_ids += media_item["skAdnetworkIds"]
68
+ end
69
+ end
70
+
71
+ # 3. 去重
72
+ skadnetwork_ids = skadnetwork_ids.uniq
73
+
74
+ puts "✓ 从网络获取到 #{skadnetwork_ids.size} 条数据"
75
+
76
+ # 4. 如果数据太少,从配置文件读取
77
+ if skadnetwork_ids.size <= 50
78
+ puts "网络数据太少,从缓存中获取..."
79
+ cached_ids = load_cached_skadnetwork_ids
80
+ skadnetwork_ids += cached_ids
81
+ skadnetwork_ids = skadnetwork_ids.uniq
82
+ puts "✓ 从缓存获取到 #{skadnetwork_ids.size} 条数据"
83
+ elsif upload_config
84
+ # 5. 保存到配置文件
85
+ save_skadnetwork_ids_to_config(skadnetwork_ids)
86
+ end
87
+
88
+ skadnetwork_ids
89
+ end
90
+
91
+ # 更新 Info.plist 文件
92
+ # @param project_dir [String] 项目目录
93
+ # @param skadnetwork_ids [Array<String>] SKAdNetwork IDs
94
+ def update_info_plist(project_dir:, skadnetwork_ids:)
95
+ puts "正在更新 Xcode Info.plist..."
96
+
97
+ # 1. 查找 Info.plist 文件
98
+ plist_file = find_info_plist(project_dir: project_dir)
99
+
100
+ unless File.exist?(plist_file)
101
+ puts "⚠ 未找到 Info.plist 文件: #{plist_file}"
102
+ return false
103
+ end
104
+
105
+ # 2. 读取 Info.plist
106
+ info_plist_dict = Xcodeproj::Plist.read_from_path(plist_file)
107
+
108
+ # 3. 更新配置
109
+ info_plist_dict["NSAdvertisingAttributionReportEndpoint"] ||= "https://postbacks-app.com"
110
+
111
+ if !info_plist_dict.has_key?("NSAppTransportSecurity")
112
+ info_plist_dict["NSAppTransportSecurity"] = {}
113
+ info_plist_dict["NSAppTransportSecurity"]["NSAllowsArbitraryLoads"] = true
114
+ end
115
+
116
+ # 4. 更新 SKAdNetworkItems
117
+ if skadnetwork_ids && skadnetwork_ids.size > 0
118
+ info_plist_dict["SKAdNetworkItems"] = []
119
+ skadnetwork_ids.each do |network_id|
120
+ item = { "SKAdNetworkIdentifier" => network_id }
121
+ info_plist_dict["SKAdNetworkItems"] << item
122
+ end
123
+ end
124
+
125
+ # 5. 写回 Info.plist
126
+ Xcodeproj::Plist.write_to_path(info_plist_dict, plist_file)
127
+
128
+ puts "✓ Info.plist 更新完成"
129
+ true
130
+ end
131
+
132
+ # 运行 Applovin 安装脚本
133
+ # @param project_dir [String] 项目目录
134
+ # @param appstore_mode [Boolean] 是否为 AppStore 模式
135
+ def run_applovin_install_script(project_dir:, appstore_mode: false)
136
+ xcodeproj_file = Dir.glob(File.join(project_dir, "/*.xcodeproj")).max_by { |f| File.mtime(f) }
137
+ return unless xcodeproj_file && File.exist?(xcodeproj_file)
138
+
139
+ pindo_common_dir = Pindoconfig.instance.pindo_common_configdir
140
+
141
+ # 选择脚本文件
142
+ script_name = appstore_mode ? "AppLovinQualityServiceSetup-ios.rb" : "AppLovinQualityServiceSetup-ios-dev.rb"
143
+ source_script = File.join(pindo_common_dir, script_name)
144
+
145
+ return unless File.exist?(source_script)
146
+
147
+ # 复制脚本到项目目录
148
+ project_script = File.join(project_dir, "AppLovinQualityServiceSetup-ios.rb")
149
+ FileUtils.cp_r(source_script, project_script)
150
+
151
+ # 运行脚本
152
+ puts "正在运行 Applovin 安装脚本..."
153
+ system("ruby #{project_script}")
154
+ puts "✓ Applovin 安装脚本执行完成"
155
+ end
156
+
157
+ private
158
+
159
+ # 请求 Applovin SKAdNetwork IDs
160
+ # @return [Hash, nil] JSON 数据
161
+ def request_applovin_skadnetwork_ids
162
+ begin
163
+ url = "https://dash.applovin.com/docs/v1/skadnetwork_ids.json"
164
+ conn = Faraday.new
165
+ response = conn.get do |req|
166
+ req.url url
167
+ req.headers['Content-Type'] = 'application/json'
168
+ end
169
+
170
+ JSON.parse(response.body)
171
+ rescue => e
172
+ puts "⚠ 请求 Applovin SKAdNetwork IDs 失败: #{e.message}"
173
+ nil
174
+ end
175
+ end
176
+
177
+ # 请求 Applovin Mediation SKAdNetwork IDs
178
+ # @return [Hash, nil] JSON 数据
179
+ def request_applovin_mediation_skadnetwork_ids
180
+ begin
181
+ url = "https://dash.applovin.com/docs/v1/mediation_sk_adnetwork_ids"
182
+ conn = Faraday.new
183
+ response = conn.get do |req|
184
+ req.url url
185
+ req.headers['Content-Type'] = 'application/json'
186
+ end
187
+
188
+ JSON.parse(response.body)
189
+ rescue => e
190
+ puts "⚠ 请求 Applovin Mediation SKAdNetwork IDs 失败: #{e.message}"
191
+ nil
192
+ end
193
+ end
194
+
195
+ # 从配置文件加载缓存的 SKAdNetwork IDs
196
+ # @return [Array<String>] SKAdNetwork IDs
197
+ def load_cached_skadnetwork_ids
198
+ config_file = File.join(Pindoconfig.instance.pindo_common_configdir, "applovin_client_config.json")
199
+ return [] unless File.exist?(config_file)
200
+
201
+ begin
202
+ config_json = JSON.parse(File.read(config_file))
203
+ config_json["SKAdNetworkItems"] || []
204
+ rescue => e
205
+ puts "⚠ 读取缓存配置失败: #{e.message}"
206
+ []
207
+ end
208
+ end
209
+
210
+ # 保存 SKAdNetwork IDs 到配置文件
211
+ # @param skadnetwork_ids [Array<String>] SKAdNetwork IDs
212
+ def save_skadnetwork_ids_to_config(skadnetwork_ids)
213
+ config_dir = Pindoconfig.instance.pindo_common_configdir
214
+ config_file = File.join(config_dir, "applovin_client_config.json")
215
+
216
+ # 读取原有配置
217
+ origin_json = {}
218
+ if File.exist?(config_file)
219
+ origin_json = JSON.parse(File.read(config_file))
220
+ end
221
+
222
+ # 更新配置
223
+ origin_json["SKAdNetworkItems"] = skadnetwork_ids
224
+
225
+ # 写入文件
226
+ File.write(config_file, JSON.pretty_generate(origin_json))
227
+
228
+ # 提交到 Git
229
+ begin
230
+ Pindo::GitHandler.git_addpush_repo(
231
+ path: config_dir,
232
+ message: "Applovin SKAdNetworkItems",
233
+ commit_file_params: ["applovin_client_config.json"]
234
+ )
235
+ puts "✓ 配置已保存到远程仓库"
236
+ rescue => e
237
+ puts "⚠ 提交配置到 Git 失败: #{e.message}"
238
+ end
239
+ end
240
+
241
+ # 查找 Info.plist 文件路径
242
+ # @param project_dir [String] 项目目录
243
+ # @return [String] Info.plist 文件路径
244
+ def find_info_plist(project_dir:)
245
+ # 默认路径
246
+ default_plist = File.join(project_dir, "AppEntry/Info.plist")
247
+
248
+ # 查找 .xcodeproj 文件
249
+ xcodeproj_file = Dir.glob(File.join(project_dir, "/*.xcodeproj")).max_by { |f| File.mtime(f) }
250
+ return default_plist unless xcodeproj_file
251
+
252
+ # 从 Xcode 工程中查找 Info.plist
253
+ begin
254
+ proj_name = File.basename(xcodeproj_file, ".xcodeproj")
255
+ project_obj = Xcodeproj::Project.open(xcodeproj_file)
256
+
257
+ project_obj.targets.each do |target|
258
+ if target.product_type.to_s == "com.apple.product-type.application"
259
+ temp_info = target.build_configurations.first.build_settings['INFOPLIST_FILE']
260
+ return File.join(project_dir, temp_info) if temp_info
261
+ end
262
+ end
263
+ rescue => e
264
+ puts "⚠ 解析 Xcode 工程失败: #{e.message}"
265
+ end
266
+
267
+ default_plist
268
+ end
269
+ end
270
+ end
271
+ end
@@ -0,0 +1,153 @@
1
+ require 'cocoapods'
2
+ require 'fileutils'
3
+ require 'pindo/base/git_handler'
4
+ require 'pindo/config/pindoconfig'
5
+
6
+ module Pindo
7
+ # CocoaPods 操作辅助类
8
+ # 封装 CocoaPods 相关的操作,包括:
9
+ # - 更新私有索引库
10
+ # - 同步 podspec
11
+ # - 执行 pod install
12
+ class CocoaPodsHelper
13
+
14
+ class << self
15
+ # 更新私有 Pod 索引库
16
+ # @param install [Boolean] 是否执行 pod install
17
+ # @param project_dir [String] 项目目录,默认为当前目录
18
+ # @return [Boolean] 是否成功
19
+ def update_pod_repo(install: false, project_dir: nil)
20
+ project_dir ||= Dir.pwd
21
+
22
+ # 获取私有 Pod 索引地址
23
+ pod_index_url = get_private_pod_index_url
24
+ raise "私有Pod索引地址未知!!" if pod_index_url.nil?
25
+
26
+ # 更新私有索引库
27
+ update_private_repo(pod_index_url)
28
+
29
+ # 如果需要,执行 pod install
30
+ if install
31
+ install_pods(project_dir)
32
+ end
33
+
34
+ true
35
+ end
36
+
37
+ # 执行 pod install
38
+ # @param project_dir [String] 项目目录
39
+ # @return [Boolean] 是否成功
40
+ def install_pods(project_dir)
41
+ podfile_path = File.join(project_dir, "Podfile")
42
+ return false unless File.exist?(podfile_path)
43
+
44
+ begin
45
+ puts "正在执行 pod install..."
46
+ Dir.chdir(project_dir) do
47
+ Pod::Command::Install.run(['--clean-install'])
48
+ end
49
+ true
50
+ rescue => e
51
+ puts "Pod install 失败: #{e.message}"
52
+ false
53
+ end
54
+ end
55
+
56
+ # 清理并重新安装 CocoaPods
57
+ # @param project_dir [String] 项目目录
58
+ def deintegrate_and_install(project_dir)
59
+ return unless File.exist?(File.join(project_dir, "Podfile"))
60
+
61
+ Dir.chdir(project_dir) do
62
+ begin
63
+ # 清理现有 Pods
64
+ FileUtils.rm_rf("Podfile.lock") if File.exist?("Podfile.lock")
65
+ FileUtils.rm_rf("Pods") if File.exist?("Pods")
66
+
67
+ puts "正在执行 pod deintegrate..."
68
+ system 'pod deintegrate'
69
+
70
+ puts "正在执行 pod install..."
71
+ system 'pod install'
72
+
73
+ # 检查 pod install 是否成功
74
+ unless File.exist?("Podfile.lock")
75
+ raise "pod install 失败!!先 pod install 完成后再编译!"
76
+ end
77
+ rescue => error
78
+ puts error.to_s
79
+ raise "pod install 失败!!先 pod install 完成后再编译!"
80
+ end
81
+ end
82
+ end
83
+
84
+ # 检查是否使用了特定的 Pod
85
+ # @param project_dir [String] 项目目录
86
+ # @param pod_names [Array<String>] Pod 名称列表
87
+ # @return [Boolean] 是否使用了任一指定的 Pod
88
+ def using_pods?(project_dir, pod_names)
89
+ pod_lock_file = File.join(project_dir, "Podfile.lock")
90
+ return false unless File.exist?(pod_lock_file)
91
+
92
+ begin
93
+ pod_lock_json = Pod::YAMLHelper.load_file(pod_lock_file)
94
+ pods_array = []
95
+
96
+ if !pod_lock_json["SPEC REPOS"].nil?
97
+ pod_lock_json["SPEC REPOS"].each do |source, pod_items|
98
+ pods_array += pod_items
99
+ end
100
+ end
101
+
102
+ pod_names.any? { |name| pods_array.include?(name) }
103
+ rescue => e
104
+ puts "检查 Podfile.lock 失败: #{e.message}"
105
+ false
106
+ end
107
+ end
108
+
109
+ private
110
+
111
+ # 获取私有 Pod 索引地址
112
+ # @return [String, nil] 索引地址
113
+ def get_private_pod_index_url
114
+ config = Pindoconfig.instance
115
+ pod_array = config.pod_repo_dict
116
+ return nil if pod_array.nil?
117
+
118
+ pod_array['podindex']
119
+ end
120
+
121
+ # 更新私有索引库
122
+ # @param pod_index_url [String] 索引库地址
123
+ def update_private_repo(pod_index_url)
124
+ sources = Pod::Config.instance.sources_manager.all
125
+ repos_path = File.expand_path("~/.cocoapods/repos")
126
+
127
+ puts "私有Pod地址: #{pod_index_url}"
128
+ puts "私有Pod目录: ~/.cocoapods"
129
+
130
+ # 查找已存在的私有源
131
+ private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url) }.first
132
+
133
+ if !private_source.nil?
134
+ # 更新已存在的私有源
135
+ repo_name = File.basename(private_source.repo)
136
+ Pindo::GitHandler.getcode_to_dir(
137
+ reponame: repo_name,
138
+ remote_url: pod_index_url,
139
+ path: repos_path
140
+ )
141
+ else
142
+ # 添加新的私有源
143
+ repository_name = pod_index_url.split("/").last.chomp(".git")
144
+ Pindo::GitHandler.getcode_to_dir(
145
+ reponame: repository_name,
146
+ remote_url: pod_index_url,
147
+ path: repos_path
148
+ )
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end
@@ -221,7 +221,7 @@ module Pindo
221
221
  require_relative '../../base/funlog'
222
222
 
223
223
  begin
224
- pindo_dir = File.expand_path(Pindo::PindoConfig.pindo_single_config.pindo_dir)
224
+ pindo_dir = File.expand_path(Pindo::Pindoconfig.instance.pindo_dir)
225
225
  app_config_dir = File.join(pindo_dir, bundle_id)
226
226
 
227
227
  # 如果指定了要删除的 tag
@@ -150,8 +150,8 @@ module Pindo
150
150
 
151
151
  # 1. 设置 Swark 环境
152
152
  require 'pindo/config/pindoconfig'
153
- pindo_dir = Pindo::PindoConfig.pindo_single_config.pindo_dir
154
- swark_git_url = Pindo::PindoConfig.pindo_single_config.deploy_swark_giturl
153
+ pindo_dir = Pindo::Pindoconfig.instance.pindo_dir
154
+ swark_git_url = Pindo::Pindoconfig.instance.deploy_swark_giturl
155
155
  setup_swark_env(pindo_dir: pindo_dir, swark_git_url: swark_git_url)
156
156
 
157
157
  # 2. 运行 Swark 授权
@@ -225,8 +225,8 @@ module Pindo
225
225
 
226
226
  # 1. 设置 Quark 环境
227
227
  require 'pindo/config/pindoconfig'
228
- pindo_dir = Pindo::PindoConfig.pindo_single_config.pindo_dir
229
- quark_git_url = Pindo::PindoConfig.pindo_single_config.deploy_quark_giturl
228
+ pindo_dir = Pindo::Pindoconfig.instance.pindo_dir
229
+ quark_git_url = Pindo::Pindoconfig.instance.deploy_quark_giturl
230
230
  setup_quark_env(pindo_dir: pindo_dir, quark_git_url: quark_git_url)
231
231
 
232
232
  # 2. 运行 quark host 命令
@@ -290,7 +290,7 @@ module Pindo
290
290
  begin
291
291
  Funlog.instance.fancyinfo_start("正在执行 Swark 授权...")
292
292
 
293
- pindo_dir = Pindo::PindoConfig.pindo_single_config.pindo_dir
293
+ pindo_dir = Pindo::Pindoconfig.instance.pindo_dir
294
294
  app_config_dir = File.join(File.expand_path(pindo_dir), bundle_id)
295
295
  swark_authorize_file = File.join(app_config_dir, "swark_authorize.json")
296
296
 
data/lib/pindo/version.rb CHANGED
@@ -6,7 +6,7 @@ require 'time'
6
6
 
7
7
  module Pindo
8
8
 
9
- VERSION = "5.13.2"
9
+ VERSION = "5.13.3"
10
10
 
11
11
  class VersionCheck
12
12
  RUBYGEMS_API = 'https://rubygems.org/api/v1/gems/pindo.json'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pindo
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.13.2
4
+ version: 5.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - wade
@@ -456,6 +456,8 @@ files:
456
456
  - lib/pindo/module/webserver/responsive_preview_handler.rb
457
457
  - lib/pindo/module/webserver/webgl_page_handler.rb
458
458
  - lib/pindo/module/webserver/webgl_server_helper.rb
459
+ - lib/pindo/module/xcode/applovin_xcode_helper.rb
460
+ - lib/pindo/module/xcode/cocoapods_helper.rb
459
461
  - lib/pindo/module/xcode/ipa_resign_helper.rb
460
462
  - lib/pindo/module/xcode/res/xcode_res_constant.rb
461
463
  - lib/pindo/module/xcode/res/xcode_res_handler.rb