pindo 4.6.9 → 4.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/aeshelper.rb +48 -2
  3. data/lib/pindo/base/funlog.rb +89 -0
  4. data/lib/pindo/base/githelper.rb +30 -12
  5. data/lib/pindo/base/plaininformative.rb +3 -0
  6. data/lib/pindo/base/standarderror.rb +1 -0
  7. data/lib/pindo/base/xcodeconst.rb +251 -0
  8. data/lib/pindo/client/applovinclient.rb +6 -3
  9. data/lib/pindo/client/aws3sclient.rb +33 -46
  10. data/lib/pindo/client/bossclient.rb +1 -1
  11. data/lib/pindo/client/pgyerclient.rb +78 -14
  12. data/lib/pindo/command/appstore/iap.rb +43 -0
  13. data/lib/pindo/command/appstore/itcapp.rb +41 -0
  14. data/lib/pindo/command/appstore/metadata.rb +43 -0
  15. data/lib/pindo/command/appstore/screenshots.rb +43 -0
  16. data/lib/pindo/command/appstore/upload.rb +40 -0
  17. data/lib/pindo/command/appstore.rb +17 -0
  18. data/lib/pindo/command/deploy/build.rb +109 -0
  19. data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
  20. data/lib/pindo/command/deploy/cert.rb +179 -0
  21. data/lib/pindo/command/deploy/configproj.rb +105 -0
  22. data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
  23. data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
  24. data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
  25. data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
  26. data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
  27. data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
  28. data/lib/pindo/command/deploy.rb +44 -0
  29. data/lib/pindo/{dev → command/dev}/autobuild.rb +17 -80
  30. data/lib/pindo/{dev → command/dev}/autoresign.rb +17 -64
  31. data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
  32. data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
  33. data/lib/pindo/command/dev/pgyercert.rb +75 -0
  34. data/lib/pindo/command/dev.rb +25 -0
  35. data/lib/pindo/command/env.rb +17 -0
  36. data/lib/pindo/{ipa → command/ipa}/autoresign.rb +18 -70
  37. data/lib/pindo/{ipa → command/ipa}/import.rb +47 -102
  38. data/lib/pindo/{ipa → command/ipa}/output.rb +38 -135
  39. data/lib/pindo/command/ipa.rb +16 -0
  40. data/lib/pindo/{lib → command/lib}/update.rb +19 -10
  41. data/lib/pindo/command/lib.rb +16 -0
  42. data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
  43. data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
  44. data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
  45. data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
  46. data/lib/pindo/command/pgyer/resign.rb +111 -0
  47. data/lib/pindo/command/pgyer/upload.rb +123 -0
  48. data/lib/pindo/command/pgyer.rb +18 -0
  49. data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
  50. data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
  51. data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
  52. data/lib/pindo/command/utils/icon.rb +81 -0
  53. data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
  54. data/lib/pindo/command/utils.rb +26 -0
  55. data/lib/pindo/command.rb +23 -26
  56. data/lib/pindo/module/build/swarkhelper.rb +95 -0
  57. data/lib/pindo/module/cert/certhelper.rb +176 -0
  58. data/lib/pindo/module/cert/keychainhelper.rb +138 -0
  59. data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
  60. data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
  61. data/lib/pindo/module/cert/xcodecerthelper.rb +301 -0
  62. data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -35
  63. data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
  64. data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
  65. data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
  66. data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
  67. data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
  68. data/lib/pindo/module/xcode/xcodereshelper.rb +120 -0
  69. data/lib/pindo/options/appconfigoptions.rb +1 -0
  70. data/lib/pindo/options/deployoptions.rb +38 -41
  71. data/lib/pindo/version.rb +1 -1
  72. metadata +109 -97
  73. data/lib/pindo/deploy/Fastfile +0 -233
  74. data/lib/pindo/deploy/build.rb +0 -167
  75. data/lib/pindo/deploy/cert.rb +0 -508
  76. data/lib/pindo/deploy/configproj.rb +0 -89
  77. data/lib/pindo/deploy.rb +0 -44
  78. data/lib/pindo/dev.rb +0 -23
  79. data/lib/pindo/env/flutter.rb +0 -59
  80. data/lib/pindo/env/flutter.sh +0 -116
  81. data/lib/pindo/env.rb +0 -17
  82. data/lib/pindo/ipa.rb +0 -22
  83. data/lib/pindo/lib.rb +0 -18
  84. data/lib/pindo/module/buildconfighelper.rb +0 -13
  85. data/lib/pindo/module/buildhelper.rb +0 -76
  86. data/lib/pindo/module/config_project.sh +0 -143
  87. data/lib/pindo/module/configprojhelper.rb +0 -631
  88. data/lib/pindo/module/icon_contents.json +0 -116
  89. data/lib/pindo/module/imessage_icon.json +0 -91
  90. data/lib/pindo/module/imgset_contents.json +0 -21
  91. data/lib/pindo/module/launchimg_contents.json +0 -21
  92. data/lib/pindo/module/xcodebuildpre.rb +0 -258
  93. data/lib/pindo/pgyer/upload.rb +0 -234
  94. data/lib/pindo/pgyer.rb +0 -17
  95. data/lib/pindo/utils/icon.rb +0 -91
  96. data/lib/pindo/utils/icon.sh +0 -133
  97. data/lib/pindo/utils/podindex.rb +0 -56
  98. data/lib/pindo/utils/podindex.sh +0 -30
  99. data/lib/pindo/utils.rb +0 -29
  100. /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
  101. /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
  102. /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
  103. /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
  104. /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
  105. /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
  106. /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
  107. /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
  108. /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
  109. /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
  110. /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
  111. /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
  112. /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
  113. /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
  114. /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
  115. /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
  116. /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
  117. /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
  118. /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
  119. /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
  120. /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
  121. /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
  122. /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
  123. /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
  124. /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
  125. /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
  126. /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
  127. /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
  128. /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
  129. /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
  130. /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
  131. /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
  132. /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
  133. /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
  134. /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
  135. /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
  136. /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
  137. /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
  138. /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
  139. /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
  140. /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
@@ -1,20 +1,24 @@
1
1
  require 'highline/import'
2
2
  require 'xcodeproj'
3
3
  require 'cocoapods'
4
- require 'find'
4
+ require 'find'
5
5
  require 'fileutils'
6
6
  require 'pindo/base/executable'
7
+ require 'pindo/module/xcode/xcodeappconfig'
8
+ require 'pindo/module/xcode/xcodebuildhelper'
7
9
 
8
10
  module Pindo
9
11
  class Command
10
12
  class Ipa < Command
11
13
  class Import < Ipa
12
-
14
+
13
15
  include Command::DeployOptions
14
- include Pindo::Configprojhelper
15
-
16
+
17
+ include Pindo::XcodeAppConfig
18
+ include XcodeBuildHelper
19
+
16
20
  self.summary = '提交时设置Xcode工程编译参数'
17
-
21
+
18
22
  self.description = <<-DESC
19
23
  提交时设置Xcode工程编译参数.在工程目录下执行:pindo ipa import
20
24
  DESC
@@ -25,6 +29,8 @@ module Pindo
25
29
 
26
30
  def self.options
27
31
  [
32
+ ['--proj', '指定哪个项目(忽略大小写空格等等字符): --proj=\"prancksoundv4\"'],
33
+ ['--upload', '编译完成后是否上传ipa到pyger: 用法:pindo ipa import --upload'],
28
34
  ['--build', '修改完工程之后直接编译,用法:pindo ipa import --build'],
29
35
  ['--increase', '自动增加编译的app版本号,用法:pindo ipa import --increase'],
30
36
 
@@ -34,7 +40,7 @@ module Pindo
34
40
  def initialize(argv)
35
41
  @build_flag = argv.flag?('build', false)
36
42
  @args_increase_flag = argv.flag?('increase', false)
37
-
43
+
38
44
  super
39
45
  end
40
46
 
@@ -55,20 +61,17 @@ module Pindo
55
61
  end
56
62
  if build_type_array.include?("quark") || build_type_array.include?("swark")
57
63
  @args_quswark_flag = true
58
- end
59
-
60
-
61
- # begin
62
- clone_pindo_common_config_repo(force_delete:false)
63
- clone_pindo_env_config_repo(force_delete:false)
64
-
65
- Pindo::VersionCheck::check_pindo_force_upgrade()
66
-
67
- import_fun
68
- # rescue => err
69
- # puts "#########---------Error-------!!!"
70
- # puts err
71
- # end
64
+ end
65
+
66
+
67
+
68
+ clone_pindo_common_config_repo(force_delete:false)
69
+ clone_pindo_env_config_repo(force_delete:false)
70
+
71
+ Pindo::VersionCheck::check_pindo_force_upgrade()
72
+
73
+ import_fun
74
+
72
75
  end
73
76
 
74
77
  def import_fun
@@ -76,7 +79,7 @@ module Pindo
76
79
  current_dir = Dir.pwd
77
80
  pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
78
81
  app_config_dir = File.join(pindo_dir, @deploy_identifier)
79
-
82
+
80
83
  args_temp = []
81
84
  args_temp << @args_appconfig
82
85
  args_temp = args_temp | @args_array
@@ -85,13 +88,17 @@ module Pindo
85
88
  args = get_build_type_args()
86
89
  args_temp = args_temp | args
87
90
 
91
+ pindo_new_project_dir = Dir.pwd
92
+
88
93
  if @args_increase_flag
89
- auto_increase_buildnumber
94
+ auto_increase_buildnumber(File.join(pindo_new_project_dir, "config.json"))
95
+ app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
96
+ auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
97
+ git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
90
98
  end
91
99
 
92
100
 
93
- pindo_new_project_dir = Dir.pwd
94
-
101
+
95
102
  build_verify_file = File.join(app_config_dir, "build_verify.json")
96
103
  build_verify_json = nil
97
104
 
@@ -99,21 +106,21 @@ module Pindo
99
106
  build_verify_json = JSON.parse(File.read(build_verify_file))
100
107
  rescue => error
101
108
  build_verify_json = nil
102
- end
109
+ end
103
110
 
104
111
  release_code_commit = git_latest_commit_id(local_repo_dir:pindo_new_project_dir)
105
112
  if !release_code_commit.nil? && !build_verify_json.nil? && !build_verify_json["output_code_commit"].nil?
106
113
  output_code_commit = build_verify_json["output_code_commit"]
107
114
  if !release_code_commit.eql?(output_code_commit)
108
115
 
109
- puts
110
- puts
116
+ puts
117
+ puts
111
118
  puts "不是最新代码,请更新代码 !!!"
112
119
  puts "不是最新代码,请更新代码 !!!"
113
- puts
120
+ puts
114
121
  answer = agree("请确认要用当前代码编译:(commit: #{release_code_commit}) (Y/n):")
115
122
  if answer
116
-
123
+
117
124
  else
118
125
  raise Informative, "请更新代码重新打包!!!"
119
126
  end
@@ -121,29 +128,24 @@ module Pindo
121
128
  end
122
129
  end
123
130
 
124
-
125
-
126
-
127
- system "open #{pindo_new_project_dir}"
128
- puts "New Project: #{pindo_new_project_dir}"
129
131
  Dir.chdir(pindo_new_project_dir)
130
132
 
131
-
132
133
  pod_lock_file = File.join(pindo_new_project_dir, "Podfile.lock")
133
- FileUtils.rm_rf(pod_lock_file) if File.exist?(pod_lock_file)
134
- FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods")) if File.exist?(File.join(pindo_new_project_dir, "Pods"))
134
+ begin
135
+ FileUtils.rm_rf(pod_lock_file)
136
+ FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
137
+ rescue StandardError => e
138
+ end
135
139
 
136
-
137
140
  Pindo::Command::Deploy::Configproj::run(args_temp)
138
-
141
+
139
142
  if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
140
143
 
141
144
  pull_podfile_lock(project_dir:pindo_new_project_dir, app_config_dir:app_config_dir)
142
- Pindo::Command::Utils::Podindex::run([])
143
-
145
+ Pindo::Command::Lib::Update::run([])
144
146
  begin
145
147
  remove_test_pod_modue(project_dir:pindo_new_project_dir)
146
- system 'pod install'
148
+ Pod::Command::Install::run([])
147
149
  rescue => error
148
150
  puts(error.to_s)
149
151
  raise Informative, "pod install失败!!先pod install 完成后成编译 !"
@@ -155,28 +157,16 @@ module Pindo
155
157
  raise Informative, "pod install失败!!先pod install 完成后成编译 !"
156
158
  end
157
159
  end
158
-
159
- # unless @args_normal_flag
160
- # Dir.chdir(pindo_new_project_dir)
161
- # Pindo::Command::Deploy::Confuseproj::run(args_temp)
162
- # args_temp << "--pull"
163
-
164
- # Dir.chdir(pindo_new_project_dir)
165
- # Pindo::Command::Deploy::Confusecode::run(args_temp)
166
- # end
167
160
 
168
161
  if @args_quswark_flag
169
162
  Dir.chdir(pindo_new_project_dir)
170
163
  Pindo::Command::Deploy::Quswark::run([])
171
164
  end
172
-
173
165
  Dir.chdir(pindo_new_project_dir)
174
166
  Pindo::Command::Deploy::Cert::run(args_temp)
175
-
176
167
  Pindo::Command::Deploy::Tag::run(args_temp)
177
168
 
178
169
 
179
-
180
170
  pod_lock_json = Pod::YAMLHelper.load_file(pod_lock_file)
181
171
  pods_array = []
182
172
  if !pod_lock_json["SPEC REPOS"].nil?
@@ -184,8 +174,9 @@ module Pindo
184
174
  pods_array += pod_items
185
175
  end
186
176
  end
177
+
187
178
  if pods_array.include?("FancyAD")
188
- puts
179
+ puts
189
180
  puts "Run Applovin Script ..."
190
181
  Dir.chdir(pindo_new_project_dir)
191
182
  applovin_args = []
@@ -195,9 +186,6 @@ module Pindo
195
186
  end
196
187
 
197
188
 
198
-
199
-
200
-
201
189
  if @build_flag
202
190
  Dir.chdir(pindo_new_project_dir)
203
191
  Pindo::Command::Deploy::Build::run(args_temp)
@@ -208,54 +196,11 @@ module Pindo
208
196
  puts "Buiid Done !!!"
209
197
  puts "#{pindo_new_project_dir}"
210
198
  system "open #{pindo_new_project_dir}"
211
-
212
- end
213
-
214
-
215
- def auto_increase_buildnumber
216
199
 
217
- currentDir = Dir.pwd
218
-
219
- pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
220
- config_repo_dir = File.join(pindo_dir, @deploy_identifier)
221
- app_build_version = @config_json['app_info']['app_build_version']
222
-
223
- puts "old version #{app_build_version}"
224
- build_version_array = app_build_version.split('.') || []
225
- while build_version_array.size < 3 do
226
- build_version_array << "0"
227
- end
228
-
229
- last_numer = build_version_array.pop.to_s
230
- new_last_numer = last_numer.to_i + 1
231
- build_version_array << new_last_numer.to_s
232
- app_build_version = build_version_array.join(".")
233
- puts "new version #{app_build_version}"
234
-
235
- @config_json['app_info']['app_build_version'] = app_build_version
236
-
237
- app_origin_config = File.join(config_repo_dir, "config.json")
238
- config_json = JSON.parse(File.read(app_origin_config))
239
- config_json['app_info']['app_build_version'] = app_build_version
240
- File.open(app_origin_config, "w") do |file|
241
- file.write(JSON.pretty_generate(config_json))
242
- file.close
243
- end
244
-
245
- config_json = JSON.parse(File.read(@args_appconfig_fullname))
246
- config_json['app_info']['app_build_version'] = app_build_version
247
- File.open(@args_appconfig_fullname, "w") do |file|
248
- file.write(JSON.pretty_generate(config_json))
249
- file.close
250
- end
200
+ end
251
201
 
252
202
 
253
- git_addpush_repo(path:config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
254
- end
255
-
256
-
257
203
  end
258
204
  end
259
205
  end
260
206
  end
261
-
@@ -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
- include Pindo::Configprojhelper
14
-
15
+
16
+ include XcodeBuildHelper
17
+ include XcodeAppConfig
15
18
  include Appselect
19
+
16
20
 
17
21
  self.summary = '测试时设置Xcode工程编译参数并自动编译及上传'
18
22
 
@@ -63,88 +67,42 @@ module Pindo
63
67
  end
64
68
 
65
69
  if @args_increase_flag
66
- auto_increase_buildnumber
70
+ auto_increase_buildnumber(File.join(Dir.pwd, "config.json"))
71
+ app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
72
+ auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
73
+ git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
67
74
  end
68
75
 
69
- # begin
70
-
71
- prepare_for_upload
72
- output_fun()
73
-
74
- # rescue => err
75
- # puts "#########---------Error-------!!!"
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)
76
+ app_info_obj = nil
77
+ if @args_upload_flag || @args_send_flag
78
+ proj_name = @args_proj_name
79
+ app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
80
+ end
81
+
82
+
87
83
 
88
- if login_success
84
+ output_fun()
89
85
 
90
- PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
91
- if @args_proj_name.nil?
92
- @args_proj_name = @config_json["project_info"]["project_name"]
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
86
+ pindo_new_project_dir = Dir.pwd
87
+ build_path = File.join(pindo_new_project_dir, "build", "*.ipa")
88
+ ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
109
89
 
110
- if app_info_obj.nil?
111
- proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
112
- @args_proj_name = proj_name.strip
113
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
90
+ if !ipa_file_upload.nil? && !app_info_obj.nil?
91
+ result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:nil)
92
+ if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
93
+ msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
94
+ PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
95
+ if @args_send_flag
96
+ PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
114
97
  end
115
-
116
- end
117
-
118
- if app_info_obj.nil?
119
- raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
120
98
  end
121
-
122
99
  end
123
- end
124
-
125
- def start_upload(pgyer_proj_name:nil, ipa_file_upload:nil, description:nil, args_send_flag:true)
126
-
127
- if !pgyer_proj_name.nil? && !ipa_file_upload.nil?
128
100
 
101
+ system "open #{pindo_new_project_dir}"
129
102
 
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
142
-
143
- puts args_temp
144
- Pindo::Command::Pgyer::Upload::run(args_temp)
145
- end
146
103
  end
147
104
 
105
+
148
106
  def output_fun
149
107
 
150
108
  currentDir = Dir.pwd
@@ -173,13 +131,13 @@ module Pindo
173
131
 
174
132
 
175
133
  Dir.chdir(pindo_new_project_dir)
176
- if File.exist?(File.join(pindo_new_project_dir, "Podfile.lock"))
134
+ begin
177
135
  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
136
  FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
137
+ rescue StandardError => e
181
138
  end
182
139
 
140
+
183
141
  Dir.chdir(pindo_new_project_dir)
184
142
  modify_release_config(project_dir:pindo_new_project_dir, config_json:@config_json)
185
143
  Pindo::Command::Deploy::Configproj::run(args_temp)
@@ -187,11 +145,11 @@ module Pindo
187
145
 
188
146
 
189
147
  if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
190
- Pindo::Command::Utils::Podindex::run([])
148
+ Pindo::Command::Lib::Update::run([])
191
149
 
192
150
  begin
193
151
  remove_test_pod_modue(project_dir:pindo_new_project_dir)
194
- system 'pod install'
152
+ Pod::Command::Install::run([])
195
153
  rescue => error
196
154
  puts(error.to_s)
197
155
  raise Informative, "pod install失败!!先pod install 完成后成编译 !"
@@ -246,19 +204,6 @@ module Pindo
246
204
  end
247
205
  end
248
206
 
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
207
  end
263
208
 
264
209
  def get_release_build_args
@@ -299,7 +244,7 @@ module Pindo
299
244
 
300
245
  pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
301
246
  google_info_config_dir = File.join(pindo_dir, @args_bundle_id)
302
- modify_google_plist(project_dir:project_dir, app_config_dir:google_info_config_dir)
247
+ install_google_plist(project_dir:project_dir, app_config_dir:google_info_config_dir)
303
248
 
304
249
  end
305
250
 
@@ -327,8 +272,8 @@ module Pindo
327
272
  @config_json["app_info"]["applovin_app_id"] = @output_config_json["app_info"]["applovin_app_id"]
328
273
  end
329
274
 
330
- puts " @config_json[ app_setting] ================12"
331
- puts @config_json["app_setting"]
275
+ # puts " @config_json[ app_setting] ================12"
276
+ # puts @config_json["app_setting"]
332
277
 
333
278
  @config_json["app_setting"].each do |k, v|
334
279
  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 +292,6 @@ module Pindo
347
292
 
348
293
  end
349
294
 
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
295
 
393
296
  end
394
297
  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
- puts "开始更新私有库索引地址..."
56
+
52
57
  puts "地址:#{private_source.url}"
53
58
  puts "目录:#{private_source.repo}"
54
- git!(%W(-C #{private_source.repo} pull))
59
+ getcode_to_dir(reponame:File.basename(private_source.repo), remote_url: pod_index_url, path:repos_path)
55
60
  else
56
- puts "下载私有库索引地址..."
57
61
  puts "地址:#{pod_index_url}"
58
62
  puts "目录:~/.cocoapods"
59
- repos_path = File.expand_path("~/.cocoapods/repos")
60
- getcode_to_dir(reponame:"goodpodsindex", remote_url: pod_index_url, path:repos_path)
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
66
 
63
67
 
64
-
65
- if File.exist?("#{working_dir}/Podfile")
66
- system "pod install"
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