pindo 4.6.9 → 4.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.
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