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,259 +0,0 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'json'
4
- # require "fastlane"
5
- require "spaceship"
6
-
7
- module Pindo
8
- class Command
9
- class Deploy < Command
10
- class Bundleid < Deploy
11
-
12
- include Command::DeployOptions
13
-
14
- self.summary = '在Apple开发者中心创建bundle id'
15
-
16
- self.description = <<-DESC
17
- 根据config.json中的配置, 在Apple开发者中心创建bundle id。
18
-
19
- 支持功能:
20
-
21
- * 创建应用Bundle ID
22
-
23
- * 配置应用能力
24
-
25
- * 管理推送证书
26
-
27
- 使用示例:
28
-
29
- $ pindo deploy bundleid # 使用默认配置创建
30
-
31
- $ pindo deploy bundleid config.json # 使用指定配置文件
32
- DESC
33
-
34
- self.arguments = [
35
- CLAide::Argument.new('path/to/config.json', true),
36
- ]
37
-
38
- def self.options
39
- [
40
- ['--sign', 'sign flags'],
41
- ].concat(super)
42
- end
43
-
44
- def initialize(argv)
45
- @args_sign_flag = argv.flag?('sign', false)
46
- super
47
- end
48
-
49
- def run
50
-
51
- puts @apple_id
52
- puts "Login #{@apple_id}..."
53
-
54
-
55
- Spaceship.login(@apple_id.to_s)
56
- Spaceship.select_team
57
-
58
- # Spaceship::Portal.login(@apple_id.to_s)
59
- # Spaceship::Portal.select_team
60
-
61
- app_group = nil
62
- if !@deploy_group_id.nil?
63
- app_group = create_group_id(group_id:@deploy_group_id)
64
- @app_group = app_group
65
- end
66
-
67
-
68
-
69
- parms = ["push_notification", "app_group"]
70
-
71
- if !@config_json.nil? && !@deploy_icloud_id.nil?
72
- @app_iclound = create_icloud_id(icloud_id:@deploy_icloud_id)
73
- parms << "iclound"
74
- end
75
-
76
- app = create_bundleid(bundle_id:@bundle_id, app_group:app_group, setting_array:parms)
77
-
78
- if !app.nil? && !@bundle_id_pushcontent.nil?
79
- create_bundleid(bundle_id:@bundle_id_pushcontent, app_group:app_group, setting_array:["push_notification"])
80
- end
81
-
82
- if !app.nil? && !@bundle_id_pushservice.nil?
83
- create_bundleid(bundle_id:@bundle_id_pushservice, app_group:app_group, setting_array:["push_notification"])
84
- end
85
-
86
- if !app.nil? && !@deploy_identifier_keyboard.nil?
87
- create_bundleid(bundle_id:@deploy_identifier_keyboard, app_group:app_group, setting_array:["app_group"])
88
- end
89
-
90
- if !app.nil? && !@deploy_identifier_imessage.nil?
91
- create_bundleid(bundle_id:@deploy_identifier_imessage, app_group:app_group, setting_array:["app_group"])
92
- end
93
-
94
- if !app.nil? && !@deploy_identifier_siri.nil?
95
- create_bundleid(bundle_id:@deploy_identifier_siri, app_group:app_group, setting_array:["app_group", "siri"])
96
- end
97
-
98
- if !app.nil? && !@deploy_identifier_siriui.nil?
99
- create_bundleid(bundle_id:@deploy_identifier_siriui, app_group:app_group, setting_array:["app_group", "siri"])
100
- end
101
-
102
- if !app.nil? && !@deploy_identifier_widget.nil?
103
- create_bundleid(bundle_id:@deploy_identifier_widget, app_group:app_group, setting_array:["app_group"])
104
- end
105
-
106
- if !app.nil? && !@deploy_identifier_extension.nil?
107
- create_bundleid(bundle_id:@deploy_identifier_extension, app_group:app_group, setting_array:["app_group"])
108
- end
109
-
110
- if !app.nil? && !@deploy_identifier_extensionad.nil?
111
- create_bundleid(bundle_id:@deploy_identifier_extensionad, app_group:app_group, setting_array:["app_group"])
112
- end
113
-
114
- if !app.nil? && !@deploy_identifier_watchapp.nil?
115
- create_bundleid(bundle_id:@deploy_identifier_watchapp, app_group:nil, setting_array:["push_notification"])
116
- end
117
-
118
- if !app.nil? && !@deploy_identifier_watchapp_extemsion.nil?
119
- create_bundleid(bundle_id:@deploy_identifier_watchapp_extemsion, app_group:nil, setting_array:["push_notification"])
120
- end
121
-
122
- end
123
-
124
- def create_bundleid(bundle_id:nil, app_group:nil, setting_array:[])
125
-
126
- if !bundle_id.nil?
127
-
128
- app = Spaceship::Portal.app.find(bundle_id)
129
- puts
130
- if app.nil?
131
- puts "Create bundle id #{bundle_id} in apple developer center..."
132
- app = Spaceship::Portal.app.create!(bundle_id: bundle_id, name: bundle_id.gsub('.', ''))
133
- else
134
- puts "Find bundle id #{bundle_id} in apple developer center..."
135
- end
136
-
137
-
138
- bundle_id_obj = Spaceship::ConnectAPI::BundleId.find(bundle_id)
139
-
140
- if !bundle_id_obj.nil?
141
- #GAME_CENTER
142
- if !setting_array.nil? && setting_array.to_s.include?("game_center")
143
- puts "Enable #{bundle_id} game_center on"
144
- bundle_id_obj.update_capability("GAME_CENTER", enabled: true)
145
- else
146
- puts "Enable #{bundle_id} game_center off"
147
- bundle_id_obj.update_capability("GAME_CENTER", enabled: false)
148
- end
149
- end
150
-
151
- if setting_array.nil? || setting_array.length == 0
152
- return nil
153
- end
154
-
155
-
156
- if !app.nil? && setting_array.to_s.include?("push_notification")
157
- puts "Enable #{bundle_id} push on"
158
- app.update_service(Spaceship::Portal.app_service.push_notification.on)
159
- else
160
- app.update_service(Spaceship::Portal.app_service.push_notification.off)
161
- puts "Enable #{bundle_id} push off"
162
- end
163
-
164
- if !app.nil? && setting_array.to_s.include?("siri")
165
- puts "Enable #{bundle_id} siri on"
166
- app.update_service(Spaceship::Portal.app_service.siri_kit.on)
167
- else
168
- app.update_service(Spaceship::Portal.app_service.siri_kit.off)
169
- puts "Enable #{bundle_id} siri off"
170
- end
171
-
172
-
173
- if !bundle_id_obj.nil? && setting_array.to_s.include?("apple_signin")
174
- puts "Enable #{bundle_id} Sign with Apple on "
175
- settings = build_settings_for(settings_key: "APPLE_ID_AUTH_APP_CONSENT", options_key: "PRIMARY_APP_CONSENT")
176
- bundle_id_obj.update_capability("APPLE_ID_AUTH", enabled: true, settings: settings)
177
- else
178
- # app.update_service(Spaceship::Portal.app_service.push_notification.on)
179
- puts "Enable #{bundle_id} Sign with Apple off "
180
- bundle_id_obj.update_capability("APPLE_ID_AUTH", enabled: false)
181
- end
182
-
183
-
184
- if !app_group.nil? && setting_array.to_s.include?("app_group")
185
- puts "Enable #{bundle_id} group on"
186
- app.update_service(Spaceship::Portal.app_service.app_group.on)
187
- app.associate_groups([app_group])
188
- else
189
- puts "Enable #{bundle_id} group off"
190
- app.update_service(Spaceship::Portal.app_service.app_group.off)
191
- end
192
-
193
- if !@app_iclound.nil? && setting_array.to_s.include?("iclound")
194
- puts "Enable #{bundle_id} icloud on"
195
- app.update_service(Spaceship::Portal.app_service.cloud.on)
196
- app.update_service(Spaceship::Portal.app_service.cloud_kit.cloud_kit)
197
- app.associate_cloud_containers([@app_iclound])
198
- else
199
- puts "Enable #{bundle_id} icloud off"
200
- app.update_service(Spaceship::Portal.app_service.cloud.off)
201
- end
202
-
203
- return app
204
- end
205
- return nil
206
- end
207
-
208
-
209
- def create_group_id(group_id:nil)
210
-
211
- if !group_id.nil?
212
-
213
- app_group = Spaceship::Portal.app_group.find(group_id)
214
-
215
- if app_group.nil?
216
- puts "Create group_id id #{group_id} in apple developer center..."
217
- app_group = Spaceship::Portal.app_group.create!(group_id: group_id, name: group_id.gsub('.', ''))
218
- else
219
- puts "Group_id id #{group_id} is existed in apple developer center !!!"
220
- end
221
- return app_group
222
- end
223
-
224
- return nil
225
- end
226
-
227
- def build_settings_for(settings_key:, options_key:)
228
- return [{
229
- key: settings_key,
230
- options: [ {
231
- key: options_key
232
- } ]
233
- }]
234
- end
235
-
236
- def create_icloud_id(icloud_id:nil)
237
-
238
- if !icloud_id.nil?
239
-
240
- puts "icloud_id +++++ #{icloud_id}"
241
- app_iclound = Spaceship::Portal.cloud_container.find(icloud_id)
242
-
243
- if app_iclound.nil?
244
- puts "Create icloud_id id #{icloud_id} in apple developer center..."
245
- app_iclound = Spaceship::Portal.cloud_container.create!(identifier: icloud_id,name: icloud_id.gsub('.', ''))
246
- else
247
- puts "icloud_id id #{icloud_id} is existed in apple developer center !!!"
248
- end
249
- return app_iclound
250
- end
251
- return nil
252
-
253
- end
254
-
255
- end
256
- end
257
- end
258
- end
259
-
@@ -1,202 +0,0 @@
1
- require 'fileutils'
2
- require 'match'
3
- require 'pindo/module/build/swark_helper'
4
- require 'pindo/module/cert/xcodecerthelper'
5
- require 'pindo/module/cert/cert_helper'
6
-
7
- module Pindo
8
- class Command
9
- class Deploy < Command
10
- class Cert < Deploy
11
-
12
- include Command::DeployOptions
13
- include XcodeCertHelper
14
- include SwarkHelper
15
-
16
-
17
-
18
- self.summary = '创建证书并使用设置工程的证书'
19
-
20
- self.description = <<-DESC
21
- 根据config.json中的bundle id获取最新证书。
22
-
23
- 支持功能:
24
-
25
- * 创建开发和发布证书
26
-
27
- * 自动设置工程证书
28
-
29
- * 更新证书配置
30
-
31
- 使用示例:
32
-
33
- $ pindo deploy cert # 创建appstore证书
34
-
35
- $ pindo deploy cert --dev # 创建开发证书
36
-
37
- $ pindo deploy cert --dev --renew # 重新创建开发证书
38
-
39
- $ pindo deploy cert --adhoc # 创建adhoc证书
40
- DESC
41
-
42
- self.arguments = [
43
- CLAide::Argument.new('path/to/config.json', true),
44
- ]
45
-
46
- def self.options
47
-
48
- [
49
- ['--dev', '操作dev证书'],
50
- ['--adhoc', '操作adhoc证书'],
51
- ['--macos', 'macos平台证书'],
52
- ['--clean', '删除本地缓存的证书'],
53
- ['--cleangit', '删除远程仓库中的证书'],
54
- ['--upload', '生成上传JPS的证书'],
55
- ['--match', '生成上传JPS的证书'],
56
- ['--renew', '重新生成证书']
57
- ].concat(super)
58
- end
59
-
60
- def initialize(argv)
61
- @clean_flag = argv.flag?('clean', false)
62
- @clean_git_flag = argv.flag?('cleangit', false)
63
- @upload_flag = argv.flag?('upload', false)
64
- @renew_cert_flag = argv.flag?('renew', false)
65
- @match_flag = argv.flag?('match', false)
66
-
67
- super
68
-
69
- @build_type = "appstore"
70
- if @args_adhoc_flag
71
- @build_type = "adhoc"
72
- end
73
- if @args_dev_flag
74
- @build_type = "development"
75
- end
76
-
77
- end
78
-
79
- def run
80
-
81
- if @clean_flag
82
- puts "Clear cert at local ..."
83
- Pindo::Command::Utils::Clearcert::run([])
84
- end
85
-
86
- if @renew_cert_flag && @clean_git_flag
87
- pindo_dir = pindo_single_config.pindo_dir
88
- git_url = pindo_single_config.deploy_cert_giturl
89
- if @apple_id.eql?(pindo_single_config.demo_apple_id)
90
- git_url = pindo_single_config.dev_cert_giturl
91
- end
92
- cert_repo_dir = getcode_to_dir(reponame:get_repo_base_name(repo_url:git_url), remote_url:git_url, path:pindo_dir, new_branch:@apple_id)
93
- FileUtils.rm_rf(File.join(cert_repo_dir, "certs"))
94
- FileUtils.rm_rf(File.join(cert_repo_dir, "profiles"))
95
- git_addpush_repo(path:cert_repo_dir, message:"remove #{@apple_id} certs")
96
- end
97
-
98
- bundle_id_array = get_bundle_id_map.values
99
- provisioning_info_array = nil
100
-
101
-
102
- platform_type = "ios"
103
- if @args_macos_flag
104
- platform_type = "macos"
105
- end
106
-
107
-
108
- if @renew_cert_flag || @match_flag
109
- values = get_create_cert_match_values(apple_id:@apple_id, bundle_id_array:bundle_id_array, build_type:@build_type, platform_type:platform_type, renew_flag:@renew_cert_flag)
110
- config = FastlaneCore::Configuration.create(Match::Options.available_options, values)
111
- Match::Runner.new.run(config)
112
- provisioning_info_array = create_provisioning_info_array(build_type:@build_type, platform_type:platform_type)
113
- pindo_single_config.set_cert_info(dict: provisioning_info_array)
114
-
115
- else
116
- cert_git_url = pindo_single_config.deploy_cert_giturl
117
- if @apple_id.eql?(pindo_single_config.demo_apple_id)
118
- cert_git_url = pindo_single_config.dev_cert_giturl
119
- end
120
- cert_reponame = cert_git_url.split("/").last.chomp(".git")
121
- certs_dir = getcode_to_dir(reponame:cert_reponame, remote_url:cert_git_url, path: pindo_single_config.pindo_dir, new_branch:@apple_id)
122
-
123
- Pindo::CertHelper.install_certs(cert_url:cert_git_url, certs_dir:certs_dir, cert_type:@build_type, platform_type:platform_type)
124
- bundle_id_map = get_bundle_id_map
125
- provisioning_info_array = Pindo::CertHelper.install_provisionfiles(cert_url:cert_git_url, certs_dir:certs_dir, bundle_id_map:bundle_id_map, cert_type:@build_type, platform_type:platform_type)
126
- pindo_single_config.set_cert_info(dict: provisioning_info_array)
127
- end
128
-
129
- provisioning_info_array = provisioning_info_array || []
130
- unless provisioning_info_array.size > 0
131
- raise Informative, "未找到证书信息"
132
- end
133
-
134
- @team_id_vaule = provisioning_info_array.first["team_id"]
135
-
136
- #发布机需要给swark注册bundle id
137
- add_swark_authorize_json
138
-
139
- new_project_dir = Dir.pwd
140
- new_project_fullname = Dir.glob(File.join(new_project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
141
- if !new_project_fullname.nil? && File.exist?(new_project_fullname) && !provisioning_info_array.nil? && provisioning_info_array.size > 0
142
- new_proj_name = File.basename(new_project_fullname, ".xcodeproj")
143
- Funlog.instance.fancyinfo_start("正在给Xcode配置证书...")
144
- config_project_cert(new_proj_name:new_proj_name, new_project_dir:new_project_dir, cert_type:@build_type, platform_type:platform_type, team_id_vaule:@team_id_vaule, provisioning_info_array:provisioning_info_array)
145
- config_infoplist_cert(new_proj_name:new_proj_name, new_project_dir:new_project_dir, icloud_id:@icloud_id, group_id:@group_id, provisioning_info_array:provisioning_info_array)
146
- Funlog.instance.fancyinfo_success("Xcode配置证书完成!")
147
- end
148
-
149
- if @upload_flag
150
- create_upload_cert_info(apple_id:@apple_id, cert_type:@build_type, platform_type:platform_type)
151
- create_upload_provisioning_info(apple_id:@apple_id, cert_type:@build_type, platform_type:platform_type, provisioning_info_array:provisioning_info_array)
152
- end
153
- end
154
-
155
- def get_create_cert_match_values(apple_id:nil, bundle_id_array:nil, build_type:nil, platform_type:nil, renew_flag:false)
156
-
157
- if build_type.eql?("appstore") && (apple_id.eql?(pindo_single_config.demo_apple_id))
158
- raise Informative, "#{apple_id} 是测试账号,不能创建appstore证书!!!"
159
- end
160
- if !build_type.eql?("appstore") && !apple_id.eql?(pindo_single_config.demo_apple_id)
161
- raise Informative, "账号#{apple_id} 不能创建dev或者adhoc证书!!!"
162
- end
163
-
164
- git_url = pindo_single_config.deploy_cert_giturl
165
- if @apple_id.eql?(pindo_single_config.demo_apple_id)
166
- git_url = pindo_single_config.dev_cert_giturl
167
- end
168
-
169
- force_for_new_devices_flag = true
170
- if build_type.eql?("appstore")
171
- force_for_new_devices_flag = false
172
- end
173
-
174
- if platform_type.downcase.include?("macos") && build_type.eql?("adhoc")
175
- build_type = "developer_id"
176
- end
177
-
178
- values = {
179
- username:apple_id,
180
- app_identifier: bundle_id_array,
181
- type: build_type,
182
- keychain_password:"goodcert1",
183
- git_url: git_url,
184
- readonly:!renew_flag,
185
- force:renew_flag,
186
- clone_branch_directly:!renew_flag,
187
- include_mac_in_profiles:true,
188
- include_all_certificates:true,
189
- generate_apple_certs:true,
190
- shallow_clone:!renew_flag,
191
- git_branch: apple_id,
192
- platform:platform_type,
193
- force_for_new_devices:force_for_new_devices_flag
194
- }
195
- return values
196
-
197
- end
198
-
199
- end
200
- end
201
- end
202
- end
@@ -1,93 +0,0 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'json'
4
- require 'pindo/client/bossclient'
5
- require 'pindo/client/bossconfigclient'
6
-
7
- module Pindo
8
- class Command
9
- class Deploy < Command
10
- class Check < Deploy
11
-
12
-
13
- include Command::DeployOptions
14
-
15
- self.summary = '检查发布工作'
16
-
17
- self.description = <<-DESC
18
- 检查发布工作状态。
19
-
20
- 支持功能:
21
-
22
- * 验证配置文件
23
-
24
- * 检查证书状态
25
-
26
- * 确认发布准备
27
-
28
- 使用示例:
29
-
30
- $ pindo deploy check # 检查默认配置
31
-
32
- $ pindo deploy check config.json # 检查指定配置文件
33
- DESC
34
-
35
- self.arguments = [
36
- CLAide::Argument.new('path/to/config.json', true),
37
- ]
38
-
39
- def run
40
- puts "check"
41
- # @boss_config_client = BossConfigClient.new
42
- # @boss_config_client.do_login()
43
-
44
- set_ip_device_tgate_normal()
45
-
46
- boss_app_config = get_boss_config()
47
-
48
- end
49
-
50
- def get_boss_config
51
-
52
- app_version = @config_json["app_info"]["app_version"]
53
- bundle_id = @deploy_identifier
54
- platform = @config_json["app_setting"]["kGUKeyAppPlatform"] || @config_json["app_setting"]["app_platform"]
55
- apptype = @config_json["project_info"]["app_type"]
56
-
57
- boss_client = BossClient.new(app_type:apptype, is_dev:false)
58
- data_json = Pindo::Command::Utils::Boss::get_config(boss_client:boss_client, app_version:app_version, bundle_id:bundle_id, platform:platform)
59
- is_in_review_status = BossClient::is_in_review_status_with_confirm_key(confirm_key:data_json["data"]["confirm_key"])
60
-
61
- if is_in_review_status
62
- puts " 当前设备,当前参数是审核状态".bold.blue
63
- else
64
- puts " 当前设备,当前参数是非审核状态".bold.red
65
- end
66
-
67
- return data_json["data"]
68
- end
69
-
70
-
71
- def set_ip_device_tgate_normal
72
- @tgate_client = TgateClient.new(base_usrl:pindo_single_config.tgate_base_url, req_config:pindo_single_config.tgate_req_config)
73
- current_device_info = Pindo::DeviceInfo.new
74
-
75
- @tgate_client.post_update_gate_status(env_mode:"prod", type:"ip", to_status:"normal", device_info:current_device_info)
76
- @tgate_client.post_update_gate_status(env_mode:"prod", type:"device", to_status:"normal", device_info:current_device_info)
77
-
78
- response_data = @tgate_client.get_gate_status(device_info:current_device_info)
79
-
80
- # puts JSON.pretty_generate(response_data)
81
- end
82
-
83
-
84
- def check_iap_status
85
-
86
- end
87
-
88
-
89
- end
90
- end
91
- end
92
- end
93
-
@@ -1,120 +0,0 @@
1
-
2
- require 'find'
3
- require 'cocoapods-core'
4
- require 'pindo/module/xcode/xcode_build_helper'
5
- require 'pindo/module/xcode/xcodeappconfig'
6
- require 'pindo/module/xcode/xcode_res_helper'
7
- require 'pindo/module/build/swark_helper'
8
-
9
- module Pindo
10
- class Command
11
- class Deploy < Command
12
- class Configproj < Deploy
13
-
14
- include Command::DeployOptions
15
-
16
- include XcodeAppConfig
17
- include XcodeCertHelper
18
-
19
- include SwarkHelper
20
-
21
- # include Configprojhelper
22
-
23
- self.summary = '修改Xcode工程编译参数'
24
-
25
- self.description = <<-DESC
26
- 根据config.json修改Xcode工程编译参数。
27
-
28
- 支持功能:
29
-
30
- * 修改Bundle ID
31
-
32
- * 设置版本号
33
-
34
- * 配置编译选项
35
-
36
- 使用示例:
37
-
38
- $ pindo deploy configproj # 使用默认配置
39
-
40
- $ pindo deploy configproj config.json # 使用指定配置文件
41
- DESC
42
-
43
- self.arguments = [
44
- CLAide::Argument.new('path/to/config.json', true),
45
- ]
46
-
47
- def run
48
-
49
- check_config_version
50
-
51
- current_dir = Dir.pwd
52
-
53
- app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
54
-
55
- project_fullname = Dir.glob(File.join(current_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
56
- if project_fullname.nil? || !File.exist?(project_fullname) then
57
- raise "找到多个.xcodeproj文件,请检查"
58
- end
59
- @proj_name = File.basename(project_fullname, ".xcodeproj")
60
-
61
-
62
- Funlog.instance.fancyinfo_start("正在替换google-info.plist...")
63
- google_info_config_dir = clong_buildconfig_repo(repo_name: @bundle_id)
64
- install_google_plist(project_dir:current_dir, app_config_dir:google_info_config_dir)
65
- Funlog.instance.fancyinfo_success("替换google-info.plist完成!")
66
-
67
-
68
- icon_name = File.join(app_config_dir,"fastlane","icon.png")
69
- time = Time.now.strftime('%m%d-%H%M%S')
70
- new_icon_dir = File.join(current_dir, "icon_"+time)
71
-
72
- Funlog.instance.fancyinfo_start("正在创建icon...")
73
- XcodeResHelper.create_icons(icon_name: icon_name, new_icon_dir: new_icon_dir)
74
- Funlog.instance.fancyinfo_success("创建icon完成!")
75
-
76
- Funlog.instance.fancyinfo_start("正在替换icon...")
77
- XcodeResHelper.install_icon(proj_dir: current_dir, new_icon_dir: new_icon_dir)
78
- Funlog.instance.fancyinfo_success("替换icon完成!")
79
-
80
- begin
81
- FileUtils.rm_rf(new_icon_dir)
82
- rescue StandardError => err
83
- end
84
-
85
- Funlog.instance.fancyinfo_start("正在替换启动页...")
86
-
87
- launchimg_pub_path = File.join(app_config_dir,"launch")
88
- XcodeResHelper.install_launchimg(proj_dir:current_dir, launchimg_pub_path:launchimg_pub_path)
89
- Funlog.instance.fancyinfo_success("启动页处理完成!")
90
-
91
- add_project_modue(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
92
-
93
- Funlog.instance.fancyinfo_start("正在修改工程配置...")
94
- modify_info_plist(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
95
-
96
-
97
-
98
- modify_project_config(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
99
-
100
- appprefix_file = "AppPrefix.plist"
101
- if @config_json && @config_json['project_info']['appprefix_plist'] then
102
- appprefix_file = @config_json['project_info']['appprefix_plist']
103
- end
104
- modify_appprefix_plist(project_dir:current_dir, appprefix_file:appprefix_file, config_json:@config_json)
105
-
106
- Funlog.instance.fancyinfo_success("工程配置修改完成!")
107
-
108
- check_swark_authorize(config_json:@config_json)
109
-
110
- end
111
-
112
-
113
-
114
-
115
-
116
- end
117
-
118
- end
119
- end
120
- end