pindo 5.12.2 → 5.13.2

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/git_handler.rb +692 -0
  3. data/lib/pindo/command/android/autobuild.rb +2 -2
  4. data/lib/pindo/command/android.rb +0 -1
  5. data/lib/pindo/command/appstore/adhocbuild.rb +258 -311
  6. data/lib/pindo/command/appstore/autobuild.rb +203 -0
  7. data/lib/pindo/command/appstore/autoresign.rb +35 -17
  8. data/lib/pindo/command/appstore/bundleid.rb +120 -0
  9. data/lib/pindo/command/appstore/cert.rb +212 -0
  10. data/lib/pindo/command/appstore/configproj.rb +81 -0
  11. data/lib/pindo/command/{deploy → appstore}/getitcinfo.rb +76 -91
  12. data/lib/pindo/command/appstore/iap.rb +788 -24
  13. data/lib/pindo/command/appstore/initconfig.rb +105 -0
  14. data/lib/pindo/command/appstore/itcapp.rb +95 -13
  15. data/lib/pindo/command/{deploy → appstore}/itcinfo.rb +90 -118
  16. data/lib/pindo/command/appstore/pem.rb +136 -0
  17. data/lib/pindo/command/appstore/pullconfig.rb +99 -0
  18. data/lib/pindo/command/appstore/quswark.rb +87 -0
  19. data/lib/pindo/command/appstore/quswauth.rb +67 -0
  20. data/lib/pindo/command/appstore/tag.rb +77 -0
  21. data/lib/pindo/command/appstore.rb +13 -1
  22. data/lib/pindo/command/env/quarkenv.rb +11 -13
  23. data/lib/pindo/command/env/swarkenv.rb +11 -16
  24. data/lib/pindo/command/ios/autobuild.rb +64 -43
  25. data/lib/pindo/command/ios/autoresign.rb +34 -19
  26. data/lib/pindo/command/ios/build.rb +10 -7
  27. data/lib/pindo/command/ios/cert.rb +27 -20
  28. data/lib/pindo/command/jps/upload.rb +3 -3
  29. data/lib/pindo/command/unity/autobuild.rb +2 -2
  30. data/lib/pindo/command/utils/clearcert.rb +2 -17
  31. data/lib/pindo/command/{deploy → utils}/fabric.rb +13 -13
  32. data/lib/pindo/command/utils/renewcert.rb +62 -38
  33. data/lib/pindo/command/utils/renewproj.rb +0 -3
  34. data/lib/pindo/command/{deploy → utils}/updateconfig.rb +6 -7
  35. data/lib/pindo/command/utils.rb +2 -0
  36. data/lib/pindo/command/web/autobuild.rb +2 -2
  37. data/lib/pindo/command.rb +30 -3
  38. data/lib/pindo/config/build_info_manager.rb +176 -0
  39. data/lib/pindo/config/ios_config_parser.rb +404 -0
  40. data/lib/pindo/module/android/android_build_helper.rb +110 -0
  41. data/lib/pindo/module/android/android_config_helper.rb +9 -5
  42. data/lib/pindo/module/android/gradle_helper.rb +88 -0
  43. data/lib/pindo/module/appstore/bundleid_helper.rb +349 -0
  44. data/lib/pindo/module/appstore/itcapp_helper.rb +228 -0
  45. data/lib/pindo/module/build/build_helper.rb +12 -0
  46. data/lib/pindo/module/build/swark_helper.rb +116 -77
  47. data/lib/pindo/module/cert/cert_helper.rb +74 -0
  48. data/lib/pindo/module/cert/pem_helper.rb +72 -0
  49. data/lib/pindo/module/cert/{xcodecerthelper.rb → xcode_cert_helper.rb} +208 -6
  50. data/lib/pindo/module/task/model/appstore/appstore_task.rb +18 -0
  51. data/lib/pindo/module/task/model/appstore/appstore_upload_ipa_task.rb +151 -0
  52. data/lib/pindo/module/task/model/appstore/appstore_upload_metadata_task.rb +250 -0
  53. data/lib/pindo/module/task/model/appstore/appstore_upload_screenshot_task.rb +276 -0
  54. data/lib/pindo/module/task/model/build/android_build_adhoc_task.rb +210 -0
  55. data/lib/pindo/module/task/model/build/{android_dev_build_task.rb → android_build_dev_task.rb} +2 -2
  56. data/lib/pindo/module/task/model/build/android_build_gplay_task.rb +210 -0
  57. data/lib/pindo/module/task/model/build/android_build_task.rb +13 -0
  58. data/lib/pindo/module/task/model/build/ios_build_adhoc_task.rb +197 -0
  59. data/lib/pindo/module/task/model/build/ios_build_appstore_task.rb +367 -0
  60. data/lib/pindo/module/task/model/build/{ios_dev_build_task.rb → ios_build_dev_task.rb} +37 -27
  61. data/lib/pindo/module/task/model/build/ios_build_task.rb +13 -0
  62. data/lib/pindo/module/task/model/build/{web_dev_build_task.rb → web_build_dev_task.rb} +1 -1
  63. data/lib/pindo/module/task/model/build_task.rb +15 -12
  64. data/lib/pindo/module/task/model/jps_resign_task.rb +185 -0
  65. data/lib/pindo/module/task/model/{upload_task.rb → jps_upload_task.rb} +3 -3
  66. data/lib/pindo/module/task/model/unity_export_task.rb +3 -1
  67. data/lib/pindo/module/task/pindo_task.rb +19 -10
  68. data/lib/pindo/module/unity/unity_helper.rb +2 -1
  69. data/lib/pindo/module/xcode/ipa_resign_helper.rb +210 -0
  70. data/lib/pindo/module/xcode/{xcodeappconfig.rb → xcode_app_config.rb} +79 -0
  71. data/lib/pindo/module/xcode/xcode_build_config.rb +152 -17
  72. data/lib/pindo/module/xcode/xcode_build_helper.rb +151 -1
  73. data/lib/pindo/module/xcode/xcode_swark_helper.rb +341 -0
  74. data/lib/pindo/options/core/global_options_state.rb +268 -0
  75. data/lib/pindo/options/core/option_configuration.rb +206 -0
  76. data/lib/pindo/options/core/option_initializer.rb +51 -0
  77. data/lib/pindo/options/core/option_item.rb +144 -0
  78. data/lib/pindo/options/core/option_value_parser.rb +54 -0
  79. data/lib/pindo/options/groups/build_options.rb +60 -0
  80. data/lib/pindo/options/groups/jps_options.rb +70 -0
  81. data/lib/pindo/options/groups/option_group.rb +73 -0
  82. data/lib/pindo/options/helpers/bundleid_selector.rb +103 -0
  83. data/lib/pindo/options/options.rb +14 -0
  84. data/lib/pindo/version.rb +1 -1
  85. metadata +49 -41
  86. data/lib/pindo/command/android/build.rb +0 -186
  87. data/lib/pindo/command/appstore/import.rb +0 -259
  88. data/lib/pindo/command/deploy/build.rb +0 -250
  89. data/lib/pindo/command/deploy/bundleid.rb +0 -259
  90. data/lib/pindo/command/deploy/cert.rb +0 -202
  91. data/lib/pindo/command/deploy/check.rb +0 -93
  92. data/lib/pindo/command/deploy/configproj.rb +0 -120
  93. data/lib/pindo/command/deploy/confusecode.rb +0 -262
  94. data/lib/pindo/command/deploy/confuseproj.rb +0 -122
  95. data/lib/pindo/command/deploy/iap.rb +0 -826
  96. data/lib/pindo/command/deploy/initconfig.rb +0 -138
  97. data/lib/pindo/command/deploy/itcapp.rb +0 -146
  98. data/lib/pindo/command/deploy/pem.rb +0 -55
  99. data/lib/pindo/command/deploy/pullconfig.rb +0 -56
  100. data/lib/pindo/command/deploy/pushconfig.rb +0 -93
  101. data/lib/pindo/command/deploy/quswark.rb +0 -156
  102. data/lib/pindo/command/deploy/quswauth.rb +0 -76
  103. data/lib/pindo/command/deploy/reportbug.rb +0 -145
  104. data/lib/pindo/command/deploy/resign.rb +0 -300
  105. data/lib/pindo/command/deploy/tag.rb +0 -108
  106. data/lib/pindo/command/deploy/uploadipa.rb +0 -73
  107. data/lib/pindo/command/deploy.rb +0 -42
  108. data/lib/pindo/command/dev/autobuild.rb +0 -117
  109. data/lib/pindo/command/dev/build.rb +0 -94
  110. data/lib/pindo/command/dev/debug.rb +0 -112
  111. data/lib/pindo/module/task/model/build/android_release_build_task.rb +0 -29
  112. data/lib/pindo/module/task/model/build/ios_adhoc_build_task.rb +0 -53
  113. data/lib/pindo/module/task/model/build/ios_release_build_task.rb +0 -53
  114. data/lib/pindo/options/appconfigoptions.rb +0 -24
  115. data/lib/pindo/options/deployoptions.rb +0 -372
@@ -1,262 +0,0 @@
1
- require 'highline/import'
2
- require 'xcodeproj'
3
- require 'find'
4
- require 'fileutils'
5
-
6
- module Pindo
7
- class Command
8
- class Deploy < Command
9
- class Confusecode < Deploy
10
-
11
- include Command::DeployOptions
12
-
13
- include ConfuseXcodeProj
14
-
15
- self.summary = '替换混淆名称'
16
-
17
- self.description = <<-DESC
18
- 替换混淆名称。
19
-
20
- 支持功能:
21
-
22
- * 代码混淆处理
23
-
24
- * 替换敏感标识符
25
-
26
- * 保护代码安全
27
-
28
- 使用示例:
29
-
30
- $ pindo deploy confusecode # 使用默认配置混淆
31
-
32
- $ pindo deploy confusecode config.json # 使用指定配置文件
33
- DESC
34
-
35
- self.arguments = [
36
- CLAide::Argument.new('path/to/config.json', true),
37
- ]
38
-
39
- def self.options
40
- [
41
- ['--pull', '拉取混淆配置'],
42
- ['--push', '上传混淆配置'],
43
- ].concat(super)
44
- end
45
-
46
- def initialize(argv)
47
-
48
- @pull_mode = argv.flag?('pull', false)
49
- @push_mode = argv.flag?('push', false)
50
-
51
- if @push_mode
52
- puts "Push Mode ============================================ true"
53
- else
54
- puts "Push Mode ============================================ false"
55
- end
56
- if @pull_mode
57
- puts "Pull Mode ============================================ true"
58
- else
59
- puts "Pull Mode ============================================ false"
60
- end
61
- super
62
- end
63
-
64
- def run
65
-
66
- current_project_dir = Dir.pwd
67
- puts "+++++ #{current_project_dir}"
68
- app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
69
- if !File.exist?(app_config_dir)
70
- puts "App Config is nil !!!"
71
- return
72
- end
73
-
74
- clang_repo_dir = clone_clang_repo
75
- # if !File.exist?(clang_repo_dir)
76
- puts "#{clang_repo_dir}"
77
- puts "There is no clang tool !!! deploy confusecode"
78
- # return
79
- # end
80
-
81
- default_symash = "symash2"
82
- if @newconfuse_flag
83
- default_symash = "symash2"
84
- end
85
-
86
- symash_type = confuse_version_type(path:current_project_dir, default_type:default_symash)
87
- confuse_tool_path = File.join(clang_repo_dir, symash_type)
88
- puts "Confuse Tool Path: #{confuse_tool_path}"
89
-
90
- meaning_tool = File.join(clang_repo_dir, "MeaningfulTools/MeaningfulName")
91
- if symash_type == "symash1"
92
- base_db = File.join(clang_repo_dir, "MeaningfulTools/confuse.db")
93
- meaning_db = File.join(app_config_dir, "app_confuse.db")
94
- origin_json_dir = File.join(current_project_dir, "SymashCache/Original")
95
- output_dir = File.join(current_project_dir, "SymashCache")
96
-
97
- confuse_type= @confuse_type
98
-
99
- if File.exist?(File.join(current_project_dir, "Symash.json"))
100
- proj_confuse_json=JSON.parse(File.read(File.join(current_project_dir, "Symash.json")))
101
- confuse_type = "pods"
102
- if !proj_confuse_json["IGNORE_SYMASH_INTERFACE"]
103
- confuse_type = confuse_type + "_class"
104
- end
105
-
106
- if !proj_confuse_json["IGNORE_SYMASH_METHOD"]
107
- confuse_type = confuse_type + "_method"
108
- end
109
-
110
- if !proj_confuse_json["IGNORE_SYMASH_PROTOCOL"]
111
- confuse_type = confuse_type + "_protocol"
112
- end
113
-
114
- if !proj_confuse_json["IGNORE_SYMASH_PROPERTY"]
115
- confuse_type = confuse_type + "_property"
116
- end
117
-
118
- if !proj_confuse_json["IGNORE_SYMASH_CATEGORY"]
119
- confuse_type = confuse_type + "_category"
120
- end
121
-
122
- if !proj_confuse_json["IGNORE_SYMASH_IVAR"]
123
- confuse_type = confuse_type + "_variable"
124
- end
125
-
126
- end
127
-
128
- if File.exist?(File.join(output_dir, "Replaced.json"))
129
- FileUtils.rm_rf(File.join(output_dir, "Replaced.json"))
130
- end
131
-
132
- puts "Tool: #{meaning_tool}"
133
- puts "DB: #{meaning_db}"
134
- puts "Origin Dir: #{origin_json_dir}"
135
- puts "Output Dir: #{output_dir}"
136
- puts "Project Dir: #{current_project_dir}"
137
- puts "Confuse Type: #{confuse_type}"
138
-
139
- if File.exist?(origin_json_dir)
140
- command = meaning_tool + " -r -p 100 -i 100 -b " + @deploy_identifier + " -d " + origin_json_dir + " -o " + base_db + " -m " + meaning_db + " -t " + output_dir + " -f " + current_project_dir + " -z " + confuse_type
141
- puts "Command: #{command}"
142
- system command
143
- end
144
-
145
- text = File.read(File.join(current_project_dir, "Symash.json"))
146
- new_contents = text.gsub(/\"IMPORT\".*/, "\"IMPORT\":true,")
147
- File.open(File.join(current_project_dir, "Symash.json"), "w") {|file| file.puts new_contents }
148
-
149
- else
150
-
151
- output_dir = File.join(current_project_dir, "SymashData")
152
- puts "Tool: #{meaning_tool}"
153
-
154
- puts "+++++++"
155
- puts "+++++++"
156
- puts "+++++++"
157
- service_path = File.join(confuse_tool_path, "/Applications/SymashX.app/Contents/MacOS/symashctl")
158
- command1 = "cd #{current_project_dir} && " + service_path + " stop >> /dev/null "
159
- puts "Command: #{command1}"
160
- system command1
161
-
162
- if File.exist?(File.join(current_project_dir, "SymashData/export-sympkg.plist"))
163
- command = meaning_tool + " -q -f " + current_project_dir + " -d " + app_config_dir
164
- puts "Command: #{command}"
165
- system command
166
- end
167
- puts "+++++++"
168
- puts "+++++++"
169
- puts "+++++++"
170
-
171
- end
172
-
173
-
174
- if @pull_mode
175
- if File.exist?(File.join(app_config_dir, "Replaced.json"))
176
- FileUtils.cp_r(File.join(app_config_dir, "Replaced.json"), File.join(output_dir, "Replaced.json"))
177
- end
178
-
179
- if File.exist?(File.join(app_config_dir, "import-sympkg.plist"))
180
- FileUtils.cp_r(File.join(app_config_dir, "import-sympkg.plist"), File.join(output_dir, "import-sympkg.plist"))
181
- end
182
-
183
- if File.exist?(File.join(app_config_dir, "ReplaceAllNames.json"))
184
- FileUtils.cp_r(File.join(app_config_dir, "ReplaceAllNames.json"), File.join(output_dir, "ReplaceAllNames.json"))
185
- end
186
-
187
- if File.exist?(File.join(app_config_dir, "Replaced.json"))
188
- FileUtils.cp_r(File.join(app_config_dir, "Replaced.json"), File.join(output_dir, "Replaced.json"))
189
- end
190
-
191
-
192
- if File.exist?(File.join(output_dir, "MergeClassFiles"))
193
- FileUtils.rm_rf(File.join(output_dir, "MergeClassFiles"))
194
- end
195
-
196
- if File.exist?(File.join(app_config_dir, "MergeClassFiles"))
197
- FileUtils.cp_r(File.join(app_config_dir, "MergeClassFiles"), output_dir)
198
- end
199
-
200
-
201
- repo_backup_json = File.join(app_config_dir, "Backup_MapBundleName.json")
202
- project_json = File.join(current_project_dir, "allbundles", "Backup_MapBundleName.json")
203
- if File.exist?(repo_backup_json)
204
- if !File.exist?(File.join(current_project_dir, "allbundles"))
205
- FileUtils.mkdir(File.join(current_project_dir, "allbundles"))
206
- end
207
- FileUtils.cp_r(repo_backup_json, File.join(project_json))
208
- end
209
- end
210
-
211
- if symash_type == "symash2"
212
- service_path = File.join(confuse_tool_path, "/Applications/SymashX.app/Contents/MacOS/symashctl")
213
- command2 = "cd #{current_project_dir} && " + service_path + " start -backend"
214
- puts "Command: #{command2}"
215
- system command2
216
- puts "Done !"
217
- end
218
-
219
-
220
-
221
- if @push_mode
222
-
223
- if File.exist?(File.join(current_project_dir, "Symash.json"))
224
- FileUtils.cp_r(File.join(current_project_dir, "Symash.json"), File.join(app_config_dir, "Symash.json"))
225
- end
226
-
227
- if File.exist?(File.join(output_dir, "Replaced.json"))
228
- FileUtils.cp_r(File.join(output_dir, "Replaced.json"), File.join(app_config_dir, "Replaced.json"))
229
- end
230
-
231
-
232
- if File.exist?(File.join(output_dir, "import-sympkg.plist"))
233
- FileUtils.cp_r(File.join(output_dir, "import-sympkg.plist"), File.join(app_config_dir, "import-sympkg.plist"))
234
- end
235
-
236
- if File.exist?(File.join(app_config_dir, "MergeClassFiles"))
237
- FileUtils.rm_rf(File.join(app_config_dir, "MergeClassFiles"))
238
- end
239
-
240
- if File.exist?(File.join(output_dir, "MergeClassFiles"))
241
- FileUtils.cp_r(File.join(output_dir, "MergeClassFiles"), app_config_dir)
242
- end
243
-
244
- new_backup_json = File.join(current_project_dir, "allbundles", "Backup_MapBundleName.json")
245
- repo_backup_json = File.join(app_config_dir, "Backup_MapBundleName.json")
246
- if File.exist?(new_backup_json)
247
- FileUtils.cp_r(new_backup_json, repo_backup_json)
248
- end
249
-
250
- end
251
-
252
- message = @config_json["app_info"]["app_build_version"]
253
- message = message || ""
254
- message = message + "confuse code commit replace.json"
255
-
256
- git_addpush_repo(path:app_config_dir, message:message)
257
-
258
- end
259
- end
260
- end
261
- end
262
- end
@@ -1,122 +0,0 @@
1
- require 'highline/import'
2
- require 'xcodeproj'
3
- require 'find'
4
- require 'fileutils'
5
- require 'json'
6
-
7
- module Pindo
8
- class Command
9
- class Deploy < Command
10
- class Confuseproj < Deploy
11
-
12
-
13
-
14
- include Command::DeployOptions
15
-
16
- include ConfuseXcodeProj
17
-
18
- self.summary = '给Xcode添加混淆设置'
19
-
20
- self.description = <<-DESC
21
- 给Xcode添加混淆设置
22
-
23
- 支持功能:
24
- - 自动配置Xcode项目混淆设置
25
- - 支持多种混淆工具版本选择
26
- - 自动安装和配置Symash混淆工具
27
-
28
- 使用示例:
29
- pindo deploy confuseproj
30
- pindo deploy confuseproj --confuse-type=advanced
31
- pindo deploy confuseproj --deploy-repo=custom-repo
32
- DESC
33
-
34
- self.arguments = [
35
-
36
- ]
37
- def self.options
38
- [
39
-
40
- ].concat(super)
41
- end
42
-
43
- def initialize(argv)
44
- super
45
- end
46
-
47
- def validate!
48
- super
49
- @XCODE_CLANG_RESOURCE_DIR = `clang -print-resource-dir`
50
- puts "#{@XCODE_CLANG_RESOURCE_DIR}"
51
- end
52
-
53
-
54
- def run
55
- current_dir = Dir.pwd
56
- current_project_dir = current_dir
57
- puts "+++++ #{current_project_dir}"
58
-
59
- clang_repo_dir = clone_clang_repo
60
- if !File.exist?(clang_repo_dir)
61
- puts "Error !!!"
62
- return
63
- end
64
-
65
- app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
66
-
67
- default_symash = "symash2"
68
- if @newconfuse_flag
69
- default_symash = "symash2"
70
- end
71
-
72
- symash_type = confuse_version_type(path:app_config_dir, default_type:default_symash)
73
- confuse_tool_path = File.join(clang_repo_dir, symash_type)
74
- # puts "Confuse Tool Path: #{confuse_tool_path}"
75
-
76
- puts "Clang Path: #{confuse_tool_path}"
77
- install_symash(clang_path:confuse_tool_path)
78
-
79
- current_project_fullname = ""
80
- Dir.foreach(current_dir) do |file|
81
- if file =~ /(.*).xcodeproj/
82
- current_project_fullname = file
83
- break;
84
- end
85
- end
86
-
87
- old_proj_name = File.basename(current_project_fullname, ".xcodeproj")
88
- config_confuse_project(clang_path:confuse_tool_path, project_name:old_proj_name, project_path:current_project_dir, default_type:symash_type)
89
-
90
- config_symash(clang_path:confuse_tool_path, project_path:current_project_dir, confuse_type:@confuse_type, default_type:symash_type)
91
-
92
-
93
- force_config = nil
94
- force_config = {}
95
- # force_config['BACKEND_SYMASH_DISABLE_SPL'] = true
96
- force_config['BACKEND_SYMASH_DISABLE_BCF_PROB'] = 50
97
-
98
-
99
- update_symash_config(app_config_dir:app_config_dir, project_path:current_project_dir, confuse_type:@confuse_type, force_config:force_config)
100
-
101
-
102
- if symash_type == "symash2"
103
- Dir.chdir(current_project_dir)
104
- puts "+++++ #{current_project_dir}"
105
- service_path = File.join(confuse_tool_path, "/Applications/SymashX.app/Contents/MacOS/symashctl")
106
- command1 = "cd #{current_project_dir} && " + service_path + " stop"
107
- command2 = "cd #{current_project_dir} && " + service_path + " start -export"
108
- puts "Command: #{command1}"
109
- system command1
110
- puts "Command: #{command2}"
111
- system command2
112
- Dir.chdir(current_project_dir)
113
- puts "Done !"
114
- end
115
-
116
- puts "Done !"
117
- end
118
-
119
- end
120
- end
121
- end
122
- end