pindo 4.6.9 → 4.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pindo/base/aeshelper.rb +75 -0
- data/lib/pindo/base/funlog.rb +89 -0
- data/lib/pindo/base/githelper.rb +35 -18
- data/lib/pindo/base/plaininformative.rb +3 -0
- data/lib/pindo/base/standarderror.rb +1 -0
- data/lib/pindo/base/xcodeconst.rb +251 -0
- data/lib/pindo/client/applovinclient.rb +6 -3
- data/lib/pindo/client/aws3sclient.rb +33 -46
- data/lib/pindo/client/bossclient.rb +1 -1
- data/lib/pindo/client/bossconfigclient.rb +3 -3
- data/lib/pindo/client/pgyerclient.rb +159 -100
- data/lib/pindo/command/appstore/iap.rb +43 -0
- data/lib/pindo/command/appstore/itcapp.rb +41 -0
- data/lib/pindo/command/appstore/metadata.rb +43 -0
- data/lib/pindo/command/appstore/screenshots.rb +43 -0
- data/lib/pindo/command/appstore/upload.rb +40 -0
- data/lib/pindo/command/appstore.rb +17 -0
- data/lib/pindo/command/deploy/build.rb +109 -0
- data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
- data/lib/pindo/command/deploy/cert.rb +183 -0
- data/lib/pindo/command/deploy/configproj.rb +105 -0
- data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
- data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
- data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
- data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
- data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
- data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
- data/lib/pindo/command/deploy.rb +44 -0
- data/lib/pindo/{dev → command/dev}/autobuild.rb +28 -76
- data/lib/pindo/{dev → command/dev}/autoresign.rb +21 -64
- data/lib/pindo/command/dev/build.rb +94 -0
- data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
- data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
- data/lib/pindo/command/dev/pgyercert.rb +75 -0
- data/lib/pindo/command/dev.rb +26 -0
- data/lib/pindo/command/env.rb +17 -0
- data/lib/pindo/{ipa → command/ipa}/autoresign.rb +22 -70
- data/lib/pindo/{ipa → command/ipa}/import.rb +48 -103
- data/lib/pindo/{ipa → command/ipa}/output.rb +43 -135
- data/lib/pindo/command/ipa.rb +16 -0
- data/lib/pindo/{lib → command/lib}/update.rb +23 -14
- data/lib/pindo/command/lib.rb +16 -0
- data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
- data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
- data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
- data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
- data/lib/pindo/command/pgyer/resign.rb +111 -0
- data/lib/pindo/command/pgyer/upload.rb +123 -0
- data/lib/pindo/command/pgyer.rb +18 -0
- data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
- data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
- data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
- data/lib/pindo/command/utils/icon.rb +81 -0
- data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
- data/lib/pindo/command/utils.rb +26 -0
- data/lib/pindo/command.rb +23 -26
- data/lib/pindo/config/pindoconfig.rb +27 -0
- data/lib/pindo/module/appselect.rb +9 -8
- data/lib/pindo/module/build/swarkhelper.rb +95 -0
- data/lib/pindo/module/cert/certhelper.rb +187 -0
- data/lib/pindo/module/cert/keychainhelper.rb +150 -0
- data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
- data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
- data/lib/pindo/module/cert/xcodecerthelper.rb +326 -0
- data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -36
- data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
- data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
- data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
- data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
- data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
- data/lib/pindo/module/xcode/xcodereshelper.rb +119 -0
- data/lib/pindo/options/appconfigoptions.rb +1 -0
- data/lib/pindo/options/deployoptions.rb +38 -42
- data/lib/pindo/version.rb +1 -1
- metadata +110 -97
- data/lib/pindo/deploy/Fastfile +0 -233
- data/lib/pindo/deploy/build.rb +0 -167
- data/lib/pindo/deploy/cert.rb +0 -508
- data/lib/pindo/deploy/configproj.rb +0 -89
- data/lib/pindo/deploy.rb +0 -44
- data/lib/pindo/dev.rb +0 -23
- data/lib/pindo/env/flutter.rb +0 -59
- data/lib/pindo/env/flutter.sh +0 -116
- data/lib/pindo/env.rb +0 -17
- data/lib/pindo/ipa.rb +0 -22
- data/lib/pindo/lib.rb +0 -18
- data/lib/pindo/module/buildconfighelper.rb +0 -13
- data/lib/pindo/module/buildhelper.rb +0 -76
- data/lib/pindo/module/config_project.sh +0 -143
- data/lib/pindo/module/configprojhelper.rb +0 -631
- data/lib/pindo/module/icon_contents.json +0 -116
- data/lib/pindo/module/imessage_icon.json +0 -91
- data/lib/pindo/module/imgset_contents.json +0 -21
- data/lib/pindo/module/launchimg_contents.json +0 -21
- data/lib/pindo/module/xcodebuildpre.rb +0 -258
- data/lib/pindo/pgyer/upload.rb +0 -234
- data/lib/pindo/pgyer.rb +0 -17
- data/lib/pindo/utils/icon.rb +0 -91
- data/lib/pindo/utils/icon.sh +0 -133
- data/lib/pindo/utils/podindex.rb +0 -56
- data/lib/pindo/utils/podindex.sh +0 -30
- data/lib/pindo/utils.rb +0 -29
- /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
- /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
- /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
- /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
- /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
- /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
- /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
- /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
- /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
- /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
@@ -3,6 +3,8 @@ require 'xcodeproj'
|
|
3
3
|
require 'find'
|
4
4
|
require 'fileutils'
|
5
5
|
require 'pindo/base/executable'
|
6
|
+
require 'pindo/module/xcode/xcodebuildhelper'
|
7
|
+
require 'pindo/module/xcode/xcodeappconfig'
|
6
8
|
|
7
9
|
module Pindo
|
8
10
|
class Command
|
@@ -10,9 +12,11 @@ module Pindo
|
|
10
12
|
class Output < Ipa
|
11
13
|
|
12
14
|
include Command::DeployOptions
|
13
|
-
|
14
|
-
|
15
|
+
|
16
|
+
include XcodeBuildHelper
|
17
|
+
include XcodeAppConfig
|
15
18
|
include Appselect
|
19
|
+
|
16
20
|
|
17
21
|
self.summary = '测试时设置Xcode工程编译参数并自动编译及上传'
|
18
22
|
|
@@ -41,6 +45,11 @@ module Pindo
|
|
41
45
|
@args_send_flag = argv.flag?('send', false)
|
42
46
|
@args_increase_flag = argv.flag?('increase', false)
|
43
47
|
|
48
|
+
|
49
|
+
if @args_send_flag
|
50
|
+
@args_upload_flag = true
|
51
|
+
end
|
52
|
+
|
44
53
|
super
|
45
54
|
end
|
46
55
|
|
@@ -63,88 +72,42 @@ module Pindo
|
|
63
72
|
end
|
64
73
|
|
65
74
|
if @args_increase_flag
|
66
|
-
auto_increase_buildnumber
|
75
|
+
auto_increase_buildnumber(File.join(Dir.pwd, "config.json"))
|
76
|
+
app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
|
77
|
+
auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
|
78
|
+
git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
67
79
|
end
|
68
80
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
# puts err
|
77
|
-
# end
|
78
|
-
end
|
79
|
-
|
80
|
-
def prepare_for_upload
|
81
|
-
|
82
|
-
if @args_upload_flag
|
83
|
-
|
84
|
-
@pgyer_client = PgyerClient.new
|
85
|
-
app_info_obj = nil
|
86
|
-
login_success = @pgyer_client.do_login(force_login:@args_login_flag)
|
81
|
+
app_info_obj = nil
|
82
|
+
if @args_upload_flag || @args_send_flag
|
83
|
+
proj_name = @args_proj_name
|
84
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
|
85
|
+
end
|
86
|
+
|
87
|
+
|
87
88
|
|
88
|
-
|
89
|
+
output_fun()
|
89
90
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
end
|
94
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
95
|
-
|
96
|
-
|
97
|
-
if app_info_obj.nil?
|
98
|
-
xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
99
|
-
proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
|
100
|
-
if !proj_name.nil?
|
101
|
-
puts
|
102
|
-
answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
|
103
|
-
if answer
|
104
|
-
@args_proj_name = proj_name
|
105
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
91
|
+
pindo_new_project_dir = Dir.pwd
|
92
|
+
build_path = File.join(pindo_new_project_dir, "build", "*.ipa")
|
93
|
+
ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
109
94
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
95
|
+
if !ipa_file_upload.nil? && !app_info_obj.nil?
|
96
|
+
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:nil)
|
97
|
+
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
98
|
+
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
|
99
|
+
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
100
|
+
if @args_send_flag
|
101
|
+
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
114
102
|
end
|
115
|
-
|
116
103
|
end
|
117
|
-
|
118
|
-
if app_info_obj.nil?
|
119
|
-
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
120
|
-
end
|
121
|
-
|
122
104
|
end
|
123
|
-
end
|
124
105
|
|
125
|
-
|
126
|
-
|
127
|
-
if !pgyer_proj_name.nil? && !ipa_file_upload.nil?
|
128
|
-
|
129
|
-
|
130
|
-
args_temp = []
|
131
|
-
pgyer_proj_name = pgyer_proj_name.strip.gsub(/ /, '')
|
132
|
-
args_temp << "--proj=#{pgyer_proj_name}"
|
133
|
-
args_temp << "--ipa=\"#{ipa_file_upload}\""
|
134
|
-
|
135
|
-
if args_send_flag
|
136
|
-
args_temp << "--send"
|
137
|
-
end
|
138
|
-
|
139
|
-
if !description.nil?
|
140
|
-
args_temp << "--desc=\"#{description}\""
|
141
|
-
end
|
106
|
+
system "open #{pindo_new_project_dir}"
|
142
107
|
|
143
|
-
puts args_temp
|
144
|
-
Pindo::Command::Pgyer::Upload::run(args_temp)
|
145
|
-
end
|
146
108
|
end
|
147
109
|
|
110
|
+
|
148
111
|
def output_fun
|
149
112
|
|
150
113
|
currentDir = Dir.pwd
|
@@ -173,13 +136,13 @@ module Pindo
|
|
173
136
|
|
174
137
|
|
175
138
|
Dir.chdir(pindo_new_project_dir)
|
176
|
-
|
139
|
+
begin
|
177
140
|
FileUtils.rm_rf(File.join(pindo_new_project_dir, "Podfile.lock"))
|
178
|
-
end
|
179
|
-
if File.exist?(File.join(pindo_new_project_dir, "Pods"))
|
180
141
|
FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
|
142
|
+
rescue StandardError => e
|
181
143
|
end
|
182
144
|
|
145
|
+
|
183
146
|
Dir.chdir(pindo_new_project_dir)
|
184
147
|
modify_release_config(project_dir:pindo_new_project_dir, config_json:@config_json)
|
185
148
|
Pindo::Command::Deploy::Configproj::run(args_temp)
|
@@ -187,11 +150,11 @@ module Pindo
|
|
187
150
|
|
188
151
|
|
189
152
|
if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
|
190
|
-
Pindo::Command::
|
153
|
+
Pindo::Command::Lib::Update::run([])
|
191
154
|
|
192
155
|
begin
|
193
156
|
remove_test_pod_modue(project_dir:pindo_new_project_dir)
|
194
|
-
|
157
|
+
Pod::Command::Install::run([])
|
195
158
|
rescue => error
|
196
159
|
puts(error.to_s)
|
197
160
|
raise Informative, "pod install失败!!先pod install 完成后成编译 !"
|
@@ -246,19 +209,6 @@ module Pindo
|
|
246
209
|
end
|
247
210
|
end
|
248
211
|
|
249
|
-
if !ipa_file_upload.nil? && !@args_proj_name.nil?
|
250
|
-
|
251
|
-
description = nil
|
252
|
-
commit_id_info = git_latest_commit_id(local_repo_dir:pindo_new_project_dir)
|
253
|
-
description = "commit " + commit_id_info
|
254
|
-
start_upload(pgyer_proj_name:@args_proj_name, ipa_file_upload:ipa_file_upload, description:description, args_send_flag:@args_send_flag)
|
255
|
-
end
|
256
|
-
|
257
|
-
Dir.chdir(pindo_new_project_dir)
|
258
|
-
puts "Buiid Done !!!"
|
259
|
-
puts "#{pindo_new_project_dir}"
|
260
|
-
system "open #{pindo_new_project_dir}"
|
261
|
-
|
262
212
|
end
|
263
213
|
|
264
214
|
def get_release_build_args
|
@@ -299,7 +249,7 @@ module Pindo
|
|
299
249
|
|
300
250
|
pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
|
301
251
|
google_info_config_dir = File.join(pindo_dir, @args_bundle_id)
|
302
|
-
|
252
|
+
install_google_plist(project_dir:project_dir, app_config_dir:google_info_config_dir)
|
303
253
|
|
304
254
|
end
|
305
255
|
|
@@ -327,8 +277,8 @@ module Pindo
|
|
327
277
|
@config_json["app_info"]["applovin_app_id"] = @output_config_json["app_info"]["applovin_app_id"]
|
328
278
|
end
|
329
279
|
|
330
|
-
puts " @config_json[ app_setting] ================12"
|
331
|
-
puts @config_json["app_setting"]
|
280
|
+
# puts " @config_json[ app_setting] ================12"
|
281
|
+
# puts @config_json["app_setting"]
|
332
282
|
|
333
283
|
@config_json["app_setting"].each do |k, v|
|
334
284
|
if k.eql?("kGUKeyAppClientHost") || k.eql?("kGUKeyResBaseUrl") || k.eql?("app_web_host") || k.eql?("app_client_url") || k.eql?("app_client_url") then
|
@@ -347,48 +297,6 @@ module Pindo
|
|
347
297
|
|
348
298
|
end
|
349
299
|
|
350
|
-
def auto_increase_buildnumber
|
351
|
-
|
352
|
-
currentDir = Dir.pwd
|
353
|
-
|
354
|
-
pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
|
355
|
-
config_repo_dir = File.join(pindo_dir, @deploy_identifier)
|
356
|
-
app_build_version = @config_json['app_info']['app_build_version']
|
357
|
-
|
358
|
-
puts "old version #{app_build_version}"
|
359
|
-
build_version_array = app_build_version.split('.') || []
|
360
|
-
while build_version_array.size < 3 do
|
361
|
-
build_version_array << "0"
|
362
|
-
end
|
363
|
-
|
364
|
-
last_numer = build_version_array.pop.to_s
|
365
|
-
new_last_numer = last_numer.to_i + 1
|
366
|
-
build_version_array << new_last_numer.to_s
|
367
|
-
app_build_version = build_version_array.join(".")
|
368
|
-
puts "new version #{app_build_version}"
|
369
|
-
|
370
|
-
@config_json['app_info']['app_build_version'] = app_build_version
|
371
|
-
|
372
|
-
app_origin_config = File.join(config_repo_dir, "config.json")
|
373
|
-
config_json = JSON.parse(File.read(app_origin_config))
|
374
|
-
config_json['app_info']['app_build_version'] = app_build_version
|
375
|
-
File.open(app_origin_config, "w") do |file|
|
376
|
-
file.write(JSON.pretty_generate(config_json))
|
377
|
-
file.close
|
378
|
-
end
|
379
|
-
|
380
|
-
config_json = JSON.parse(File.read(@args_appconfig_fullname))
|
381
|
-
config_json['app_info']['app_build_version'] = app_build_version
|
382
|
-
File.open(@args_appconfig_fullname, "w") do |file|
|
383
|
-
file.write(JSON.pretty_generate(config_json))
|
384
|
-
file.close
|
385
|
-
end
|
386
|
-
|
387
|
-
|
388
|
-
git_addpush_repo(path:config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
389
|
-
end
|
390
|
-
|
391
|
-
|
392
300
|
|
393
301
|
end
|
394
302
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
require 'pindo/command/ipa/import'
|
4
|
+
require 'pindo/command/ipa/output'
|
5
|
+
require 'pindo/command/ipa/autoresign'
|
6
|
+
|
7
|
+
module Pindo
|
8
|
+
class Command
|
9
|
+
|
10
|
+
class Ipa < Command
|
11
|
+
self.abstract_command = true
|
12
|
+
self.summary = '发布阶段自动化相关命令'
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -19,13 +19,17 @@ module Pindo
|
|
19
19
|
|
20
20
|
def self.options
|
21
21
|
[
|
22
|
+
['--install', '更新完lib之后执行pod install, pindo lib update --install'],
|
23
|
+
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
22
24
|
].concat(super)
|
23
25
|
end
|
24
26
|
|
25
27
|
def initialize(argv)
|
28
|
+
@args_install_flag = argv.flag?('install', false)
|
29
|
+
@project_dir = argv.option('p')
|
26
30
|
|
27
|
-
super(argv)
|
28
31
|
@additional_args = argv.remainder!
|
32
|
+
super(argv)
|
29
33
|
end
|
30
34
|
|
31
35
|
def validate!
|
@@ -45,27 +49,32 @@ module Pindo
|
|
45
49
|
raise Informative, '私有Pod索引地址未知!!'
|
46
50
|
end
|
47
51
|
sources = Pod::Config.instance.sources_manager.all
|
52
|
+
repos_path = File.expand_path("~/.cocoapods/repos")
|
48
53
|
|
49
54
|
private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
|
50
55
|
if !private_source.nil?
|
51
|
-
|
52
|
-
puts "地址:#{
|
53
|
-
puts "
|
54
|
-
|
56
|
+
|
57
|
+
puts "私有Pod地址:#{pod_index_url}"
|
58
|
+
puts "私有Pod目录:~/.cocoapods"
|
59
|
+
getcode_to_dir(reponame:File.basename(private_source.repo), remote_url: pod_index_url, path:repos_path)
|
55
60
|
else
|
56
|
-
puts "
|
57
|
-
puts "
|
58
|
-
|
59
|
-
|
60
|
-
getcode_to_dir(reponame:"goodpodsindex", remote_url: pod_index_url, path:repos_path)
|
61
|
+
puts "私有Pod地址:#{pod_index_url}"
|
62
|
+
puts "私有Pod目录:~/.cocoapods"
|
63
|
+
repository_name = pod_index_url.split("/").last.chomp(".git")
|
64
|
+
getcode_to_dir(reponame:repository_name, remote_url: pod_index_url, path:repos_path)
|
61
65
|
end
|
62
|
-
|
63
66
|
|
64
67
|
|
65
|
-
if
|
66
|
-
|
68
|
+
if @args_install_flag
|
69
|
+
begin
|
70
|
+
if File.exist?("#{working_dir}/Podfile")
|
71
|
+
Pod::Command::Install::run(['--clean-install'])
|
72
|
+
end
|
73
|
+
rescue => e
|
74
|
+
puts e.message
|
75
|
+
end
|
67
76
|
end
|
68
|
-
|
77
|
+
|
69
78
|
end
|
70
79
|
|
71
80
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
require 'pindo/command/lib/lint'
|
3
|
+
require 'pindo/command/lib/push'
|
4
|
+
require 'pindo/command/lib/forcepush'
|
5
|
+
require 'pindo/command/lib/update'
|
6
|
+
|
7
|
+
module Pindo
|
8
|
+
class Command
|
9
|
+
|
10
|
+
class Lib < Command
|
11
|
+
self.abstract_command = true
|
12
|
+
self.summary = 'pod库的相关命令'
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'highline/import'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'pindo/module/pgyerhelper
|
5
|
+
require 'pindo/module/pgyer/pgyerhelper'
|
6
6
|
|
7
7
|
module Pindo
|
8
8
|
class Command
|
@@ -42,52 +42,30 @@ module Pindo
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def validate!
|
45
|
-
|
46
|
-
xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
47
|
-
proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
|
48
|
-
if !proj_name.nil?
|
49
|
-
puts
|
50
|
-
answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
|
51
|
-
if answer
|
52
|
-
@args_proj_name = proj_name
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
45
|
+
|
56
46
|
super
|
57
47
|
end
|
58
48
|
|
59
49
|
def run
|
60
50
|
|
61
|
-
|
62
|
-
app_info_obj =
|
63
|
-
login_success = @pgyer_client.do_login(force_login:@args_login_flag)
|
64
|
-
if login_success
|
65
|
-
PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
|
66
|
-
if !@args_proj_name.nil?
|
67
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
68
|
-
end
|
69
|
-
|
70
|
-
if app_info_obj.nil?
|
71
|
-
proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
|
72
|
-
@args_proj_name = proj_name.strip
|
73
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
74
|
-
end
|
75
|
-
end
|
51
|
+
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
|
52
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
76
53
|
|
77
54
|
if app_info_obj.nil?
|
78
55
|
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
79
56
|
end
|
80
57
|
|
58
|
+
|
81
59
|
if !app_info_obj.nil?
|
82
60
|
|
83
|
-
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(
|
61
|
+
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
84
62
|
|
85
63
|
if version_item_obj.nil?
|
86
64
|
raise Informative, "没有找到上传记录"
|
87
65
|
end
|
88
66
|
|
67
|
+
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:version_item_obj)
|
89
68
|
|
90
|
-
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:version_item_obj, msg_from: @pgyer_client.token["username"])
|
91
69
|
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
92
70
|
if @args_send_flag
|
93
71
|
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'highline/import'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'pindo/module/pgyerhelper
|
5
|
+
require 'pindo/module/pgyer/pgyerhelper'
|
6
6
|
|
7
7
|
|
8
8
|
module Pindo
|
@@ -42,50 +42,27 @@ module Pindo
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def validate!
|
45
|
-
|
46
|
-
xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
47
|
-
proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
|
48
|
-
if !proj_name.nil?
|
49
|
-
puts
|
50
|
-
answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
|
51
|
-
if answer
|
52
|
-
@args_proj_name = proj_name
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
45
|
+
|
56
46
|
super
|
57
47
|
end
|
58
48
|
|
59
49
|
def run
|
60
50
|
|
61
|
-
|
62
|
-
app_info_obj =
|
63
|
-
login_success = @pgyer_client.do_login(force_login:@args_login_flag)
|
64
|
-
if login_success
|
65
|
-
PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
|
66
|
-
if !@args_proj_name.nil?
|
67
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
68
|
-
end
|
69
|
-
|
70
|
-
if app_info_obj.nil?
|
71
|
-
proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
|
72
|
-
@args_proj_name = proj_name.strip
|
73
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
74
|
-
end
|
75
|
-
end
|
51
|
+
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
|
52
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
76
53
|
|
77
54
|
if app_info_obj.nil?
|
78
55
|
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
79
56
|
end
|
80
|
-
|
81
57
|
|
82
|
-
|
58
|
+
|
59
|
+
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
83
60
|
|
84
61
|
if version_item_obj.nil?
|
85
62
|
raise Informative, "没有找到上传记录"
|
86
63
|
end
|
87
64
|
|
88
|
-
PgyerHelper.share_instace.modify_coment(
|
65
|
+
PgyerHelper.share_instace.modify_coment(app_info_obj:app_info_obj, version_item_obj:version_item_obj)
|
89
66
|
|
90
67
|
end
|
91
68
|
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'highline/import'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'pindo/module/pgyerhelper
|
5
|
+
require 'pindo/module/pgyer/pgyerhelper'
|
6
|
+
require 'open-uri'
|
6
7
|
|
7
8
|
|
8
9
|
module Pindo
|
@@ -42,43 +43,20 @@ module Pindo
|
|
42
43
|
end
|
43
44
|
|
44
45
|
def validate!
|
45
|
-
|
46
|
-
xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
47
|
-
proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
|
48
|
-
if !proj_name.nil?
|
49
|
-
puts
|
50
|
-
answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
|
51
|
-
if answer
|
52
|
-
@args_proj_name = proj_name
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
46
|
+
|
56
47
|
super
|
57
48
|
end
|
58
49
|
|
59
50
|
def run
|
60
51
|
|
61
|
-
|
62
|
-
app_info_obj =
|
63
|
-
login_success = @pgyer_client.do_login(force_login:@args_login_flag)
|
64
|
-
if login_success
|
65
|
-
PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
|
66
|
-
if !@args_proj_name.nil?
|
67
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
68
|
-
end
|
69
|
-
|
70
|
-
if app_info_obj.nil?
|
71
|
-
proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
|
72
|
-
@args_proj_name = proj_name.strip
|
73
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
74
|
-
end
|
75
|
-
end
|
52
|
+
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
|
53
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
76
54
|
|
77
55
|
if app_info_obj.nil?
|
78
56
|
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
79
57
|
end
|
80
58
|
|
81
|
-
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(
|
59
|
+
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
82
60
|
|
83
61
|
if version_item_obj.nil?
|
84
62
|
raise Informative, "没有找到上传记录"
|
@@ -93,9 +71,36 @@ module Pindo
|
|
93
71
|
file_name = File.join(Dir.pwd, base_name)
|
94
72
|
puts "文件名: #{file_name}"
|
95
73
|
puts "下载中..."
|
96
|
-
File.binwrite(file_name, FastlaneCore::Helper.open_uri(download_url).read)
|
97
|
-
|
74
|
+
# File.binwrite(file_name, FastlaneCore::Helper.open_uri(download_url).read)
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
# 使用选项参数
|
79
|
+
|
80
|
+
Funlog.instance.fancyinfo_start("开始下载...")
|
81
|
+
total_num = 0
|
82
|
+
total_size = ''
|
83
|
+
char_in = '>'
|
84
|
+
char_out = '_'
|
85
|
+
download_message = ''
|
86
|
+
|
87
|
+
URI.open(download_url, :content_length_proc => lambda { |total|
|
88
|
+
total_num = total
|
89
|
+
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
90
|
+
}, :progress_proc => lambda { |index_num|
|
91
|
+
|
92
|
+
progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
|
93
|
+
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
94
|
+
index = 100.0 * index_num / total_num
|
95
|
+
download_message = "已下载:#{progress_str}\%【" + (char_in * (index/1).floor).ljust(100, char_out) + "】Total: #{total_size} M"
|
96
|
+
Funlog.instance.fancyinfo_update(download_message)
|
97
|
+
|
98
|
+
}) do |file|
|
99
|
+
File.binwrite(file_name, file.read)
|
100
|
+
end
|
98
101
|
|
102
|
+
Funlog.instance.fancyinfo_success(download_message)
|
103
|
+
Funlog.instance.fancyinfo_success("#{file_name} 下载完成!")
|
99
104
|
|
100
105
|
end
|
101
106
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'highline/import'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'pindo/module/pgyerhelper
|
5
|
+
require 'pindo/module/pgyer/pgyerhelper'
|
6
6
|
|
7
7
|
|
8
8
|
module Pindo
|
@@ -44,15 +44,14 @@ module Pindo
|
|
44
44
|
def run
|
45
45
|
|
46
46
|
app_info_obj = nil
|
47
|
-
@pgyer_client = PgyerClient.new
|
48
47
|
|
49
|
-
|
48
|
+
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
|
49
|
+
login_success = PgyerHelper.share_instace.login
|
50
50
|
|
51
51
|
if !login_success
|
52
52
|
raise Informative, "登录失败!!!"
|
53
53
|
end
|
54
54
|
|
55
|
-
|
56
55
|
end
|
57
56
|
|
58
57
|
end
|