pindo 5.13.1 → 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 (110) 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/appstore/adhocbuild.rb +258 -311
  5. data/lib/pindo/command/appstore/autobuild.rb +203 -0
  6. data/lib/pindo/command/appstore/autoresign.rb +35 -17
  7. data/lib/pindo/command/appstore/bundleid.rb +120 -0
  8. data/lib/pindo/command/appstore/cert.rb +212 -0
  9. data/lib/pindo/command/appstore/configproj.rb +81 -0
  10. data/lib/pindo/command/{deploy → appstore}/getitcinfo.rb +76 -91
  11. data/lib/pindo/command/appstore/iap.rb +788 -24
  12. data/lib/pindo/command/appstore/initconfig.rb +105 -0
  13. data/lib/pindo/command/appstore/itcapp.rb +95 -13
  14. data/lib/pindo/command/{deploy → appstore}/itcinfo.rb +90 -118
  15. data/lib/pindo/command/appstore/pem.rb +136 -0
  16. data/lib/pindo/command/appstore/pullconfig.rb +99 -0
  17. data/lib/pindo/command/appstore/quswark.rb +87 -0
  18. data/lib/pindo/command/appstore/quswauth.rb +67 -0
  19. data/lib/pindo/command/appstore/tag.rb +77 -0
  20. data/lib/pindo/command/appstore.rb +13 -1
  21. data/lib/pindo/command/env/quarkenv.rb +11 -13
  22. data/lib/pindo/command/env/swarkenv.rb +11 -16
  23. data/lib/pindo/command/ios/autobuild.rb +64 -43
  24. data/lib/pindo/command/ios/autoresign.rb +34 -19
  25. data/lib/pindo/command/ios/build.rb +9 -6
  26. data/lib/pindo/command/ios/cert.rb +27 -20
  27. data/lib/pindo/command/jps/upload.rb +3 -3
  28. data/lib/pindo/command/unity/autobuild.rb +2 -2
  29. data/lib/pindo/command/utils/clearcert.rb +2 -17
  30. data/lib/pindo/command/{deploy → utils}/fabric.rb +13 -13
  31. data/lib/pindo/command/utils/renewcert.rb +62 -38
  32. data/lib/pindo/command/utils/renewproj.rb +0 -3
  33. data/lib/pindo/command/{deploy → utils}/updateconfig.rb +6 -7
  34. data/lib/pindo/command/utils.rb +2 -0
  35. data/lib/pindo/command/web/autobuild.rb +2 -2
  36. data/lib/pindo/command.rb +30 -3
  37. data/lib/pindo/config/build_info_manager.rb +176 -0
  38. data/lib/pindo/config/ios_config_parser.rb +404 -0
  39. data/lib/pindo/module/android/android_config_helper.rb +9 -5
  40. data/lib/pindo/module/appstore/bundleid_helper.rb +349 -0
  41. data/lib/pindo/module/appstore/itcapp_helper.rb +228 -0
  42. data/lib/pindo/module/build/build_helper.rb +12 -0
  43. data/lib/pindo/module/build/swark_helper.rb +116 -77
  44. data/lib/pindo/module/cert/cert_helper.rb +74 -0
  45. data/lib/pindo/module/cert/pem_helper.rb +72 -0
  46. data/lib/pindo/module/cert/{xcodecerthelper.rb → xcode_cert_helper.rb} +208 -6
  47. data/lib/pindo/module/task/model/appstore/appstore_task.rb +18 -0
  48. data/lib/pindo/module/task/model/appstore/appstore_upload_ipa_task.rb +151 -0
  49. data/lib/pindo/module/task/model/appstore/appstore_upload_metadata_task.rb +250 -0
  50. data/lib/pindo/module/task/model/appstore/appstore_upload_screenshot_task.rb +276 -0
  51. data/lib/pindo/module/task/model/build/android_build_adhoc_task.rb +210 -0
  52. data/lib/pindo/module/task/model/build/{android_dev_build_task.rb → android_build_dev_task.rb} +2 -2
  53. data/lib/pindo/module/task/model/build/android_build_gplay_task.rb +210 -0
  54. data/lib/pindo/module/task/model/build/android_build_task.rb +13 -0
  55. data/lib/pindo/module/task/model/build/ios_build_adhoc_task.rb +197 -0
  56. data/lib/pindo/module/task/model/build/ios_build_appstore_task.rb +367 -0
  57. data/lib/pindo/module/task/model/build/{ios_dev_build_task.rb → ios_build_dev_task.rb} +37 -27
  58. data/lib/pindo/module/task/model/build/ios_build_task.rb +13 -0
  59. data/lib/pindo/module/task/model/build/{web_dev_build_task.rb → web_build_dev_task.rb} +1 -1
  60. data/lib/pindo/module/task/model/build_task.rb +15 -12
  61. data/lib/pindo/module/task/model/jps_resign_task.rb +185 -0
  62. data/lib/pindo/module/task/model/{upload_task.rb → jps_upload_task.rb} +3 -3
  63. data/lib/pindo/module/task/model/unity_export_task.rb +3 -1
  64. data/lib/pindo/module/unity/unity_helper.rb +2 -1
  65. data/lib/pindo/module/xcode/ipa_resign_helper.rb +210 -0
  66. data/lib/pindo/module/xcode/{xcodeappconfig.rb → xcode_app_config.rb} +79 -0
  67. data/lib/pindo/module/xcode/xcode_build_config.rb +152 -17
  68. data/lib/pindo/module/xcode/xcode_build_helper.rb +151 -1
  69. data/lib/pindo/module/xcode/xcode_swark_helper.rb +341 -0
  70. data/lib/pindo/options/core/global_options_state.rb +268 -0
  71. data/lib/pindo/options/core/option_configuration.rb +206 -0
  72. data/lib/pindo/options/core/option_initializer.rb +51 -0
  73. data/lib/pindo/options/core/option_item.rb +144 -0
  74. data/lib/pindo/options/core/option_value_parser.rb +54 -0
  75. data/lib/pindo/options/groups/build_options.rb +60 -0
  76. data/lib/pindo/options/groups/jps_options.rb +70 -0
  77. data/lib/pindo/options/groups/option_group.rb +73 -0
  78. data/lib/pindo/options/helpers/bundleid_selector.rb +103 -0
  79. data/lib/pindo/options/options.rb +14 -0
  80. data/lib/pindo/version.rb +1 -1
  81. metadata +49 -40
  82. data/lib/pindo/command/appstore/import.rb +0 -259
  83. data/lib/pindo/command/deploy/build.rb +0 -250
  84. data/lib/pindo/command/deploy/bundleid.rb +0 -259
  85. data/lib/pindo/command/deploy/cert.rb +0 -202
  86. data/lib/pindo/command/deploy/check.rb +0 -93
  87. data/lib/pindo/command/deploy/configproj.rb +0 -120
  88. data/lib/pindo/command/deploy/confusecode.rb +0 -262
  89. data/lib/pindo/command/deploy/confuseproj.rb +0 -122
  90. data/lib/pindo/command/deploy/iap.rb +0 -826
  91. data/lib/pindo/command/deploy/initconfig.rb +0 -138
  92. data/lib/pindo/command/deploy/itcapp.rb +0 -146
  93. data/lib/pindo/command/deploy/pem.rb +0 -55
  94. data/lib/pindo/command/deploy/pullconfig.rb +0 -56
  95. data/lib/pindo/command/deploy/pushconfig.rb +0 -93
  96. data/lib/pindo/command/deploy/quswark.rb +0 -156
  97. data/lib/pindo/command/deploy/quswauth.rb +0 -76
  98. data/lib/pindo/command/deploy/reportbug.rb +0 -145
  99. data/lib/pindo/command/deploy/resign.rb +0 -300
  100. data/lib/pindo/command/deploy/tag.rb +0 -108
  101. data/lib/pindo/command/deploy/uploadipa.rb +0 -73
  102. data/lib/pindo/command/deploy.rb +0 -42
  103. data/lib/pindo/command/dev/autobuild.rb +0 -117
  104. data/lib/pindo/command/dev/build.rb +0 -94
  105. data/lib/pindo/command/dev/debug.rb +0 -112
  106. data/lib/pindo/module/task/model/build/android_release_build_task.rb +0 -29
  107. data/lib/pindo/module/task/model/build/ios_adhoc_build_task.rb +0 -53
  108. data/lib/pindo/module/task/model/build/ios_release_build_task.rb +0 -53
  109. data/lib/pindo/options/appconfigoptions.rb +0 -24
  110. data/lib/pindo/options/deployoptions.rb +0 -372
@@ -1,250 +0,0 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'json'
4
- require 'xcodeproj'
5
- require 'gym'
6
- require 'pindo/module/xcode/xcode_build_helper'
7
-
8
- module Pindo
9
- class Command
10
- class Deploy < Command
11
- class Build < Deploy
12
-
13
- self.summary = '编译工程'
14
-
15
- self.description = <<-DESC
16
- 编译工程. 用法:在工程目录下执行 pindo deploy build
17
- DESC
18
-
19
- self.arguments = [
20
- ]
21
-
22
-
23
- def self.options
24
- [
25
- ['--proj', '指定上传到JPS对应的项目名称(大小写空格忽略),用法:pindo deploy build --proj=aichatv4'],
26
- ['--upload', '是否上传编译后的ipa(上传成功后会自动发送消息给自己), 用法:pindo deploy build --upload'],
27
- ['--send', '发送消息到项目群(注意:不带此参数也会发送给自己),用法:pindo deploy build --send'],
28
- ['--resign', '上传到之后是否重签名,用法:pindo deploy build --resign'],
29
- ['--certid', '设置重签名的正式id,用法:pindo deploy build --certid=com.test.bundleid'],
30
- ].concat(super)
31
- end
32
-
33
- def initialize(argv)
34
-
35
- @args_upload_flag = argv.flag?('upload', false)
36
- @args_send_flag = argv.flag?('send', false)
37
- @args_resign_flag = argv.flag?('resign', false)
38
-
39
- @args_proj_name = argv.option('proj')
40
- @args_cert_id = argv.option('certid')
41
-
42
- if !@args_cert_id.nil? && !@args_cert_id.empty?
43
- @args_resign_flag = true
44
- end
45
- if @args_resign_flag
46
- @args_send_flag = true
47
- end
48
-
49
- if @args_send_flag
50
- @args_upload_flag = true
51
- end
52
-
53
- super
54
- @additional_args = argv.remainder!
55
-
56
- end
57
-
58
- def run
59
-
60
- app_info_obj = nil
61
- workflow_info = nil
62
- if @args_upload_flag
63
- proj_name = @args_proj_name
64
- # 传入 package_type 获取 workflow_info
65
- app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
66
- working_directory: Dir.pwd,
67
- proj_name: proj_name,
68
- package_type: 'ipa'
69
- )
70
- end
71
-
72
- new_project_dir = Dir.pwd
73
- project_fullname = Dir.glob(File.join(new_project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
74
-
75
- # 修复 Xcode 16 链接器兼容性问题
76
- Pindo::XcodeBuildHelper.fix_xcode16_linker_flags(project_dir: new_project_dir)
77
-
78
- if File.exist?(File.join(new_project_dir, "build"))
79
- FileUtils.rm_rf(File.join(new_project_dir, "build"))
80
- end
81
-
82
- gym_options = get_gym_build_values(project_fullname:project_fullname)
83
-
84
- config = FastlaneCore::Configuration.create(Gym::Options.available_options, gym_options)
85
- Gym::Manager.new.work(config)
86
-
87
- pindo_new_project_dir = Dir.pwd
88
- build_path = File.join(pindo_new_project_dir, "build", "*.ipa")
89
- ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
90
-
91
- if !ipa_file_upload.nil? && !app_info_obj.nil?
92
-
93
- description = nil
94
- result_data = PgyerHelper.share_instace.start_upload(
95
- app_info_obj: app_info_obj,
96
- ipa_file_upload: ipa_file_upload,
97
- description: description,
98
- workflow_info: workflow_info
99
- )
100
- if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
101
- PgyerHelper.share_instace.print_app_version_info(
102
- app_info_obj: app_info_obj,
103
- app_version_info_obj: result_data["data"]
104
- )
105
- if @args_resign_flag
106
- args = []
107
- if @args_send_flag
108
- args << "--send"
109
- end
110
- if !@args_cert_id.nil? && !@args_cert_id.empty?
111
- args << "--certid=#{@args_cert_id}"
112
- end
113
- if !@args_proj_name.nil? && !@args_proj_name.empty?
114
- args << "--proj=#{@args_proj_name}"
115
- end
116
-
117
- Pindo::Command::Jps::Resign::run(args)
118
- else
119
- # 始终发送给自己
120
- PgyerHelper.share_instace.send_apptest_msg(
121
- app_info_obj: app_info_obj,
122
- app_version_info_obj: result_data["data"],
123
- receiveType: "self"
124
- )
125
-
126
- # 如果有 --send 参数,额外发送到测试群
127
- if @args_send_flag
128
- PgyerHelper.share_instace.send_apptest_msg(
129
- app_info_obj: app_info_obj,
130
- app_version_info_obj: result_data["data"],
131
- chatEnv: "DevTest",
132
- receiveType: "chat"
133
- )
134
- end
135
- end
136
- end
137
- end
138
- end
139
-
140
-
141
- def get_gym_build_values(project_fullname:nil)
142
-
143
- if project_fullname.nil?
144
- raise "请指定要编译的工程"
145
- end
146
- project_path = File.dirname(project_fullname)
147
- proj_name = File.basename(project_fullname, ".xcodeproj")
148
- project_obj = Xcodeproj::Project.open(project_fullname)
149
-
150
- project_build_platform = project_obj.root_object.build_configuration_list.get_setting("SDKROOT")["Release"]
151
- main_target = project_obj.targets.select { |target| target.product_type.include?(Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application]) }.first
152
- provisioning_profile_name = main_target.build_configurations.first.build_settings['PROVISIONING_PROFILE_SPECIFIER'].downcase.split(" ")
153
-
154
-
155
-
156
- build_type = "app-store"
157
- icloud_env = "Production"
158
-
159
- if !project_build_platform.nil? && project_build_platform.eql?("macosx")
160
- if provisioning_profile_name.include?("development")
161
- # Mac development包
162
- build_type = "development"
163
- icloud_env = "Development"
164
- elsif provisioning_profile_name.include?("appstore")
165
- build_type = "mac-application"
166
- icloud_env = "Production"
167
- else
168
- build_type = "developer-id"
169
- icloud_env = "Production"
170
- end
171
- else
172
- if provisioning_profile_name.include?("adhoc")
173
- build_type = "ad-hoc"
174
- icloud_env = "Development"
175
- elsif provisioning_profile_name.include?("development")
176
- build_type = "development"
177
- icloud_env = "Development"
178
- else
179
- build_type = "app-store"
180
- icloud_env = "Production"
181
- end
182
- end
183
-
184
- # if provisioning_profile_name.include?("direct") && provisioning_profile_name.include?("macos")
185
- # build_type = "developer-id"
186
- # icloud_env = "Production"
187
- # elsif provisioning_profile_name.include?("development") && provisioning_profile_name.include?("macos")
188
- # build_type = "development"
189
- # icloud_env = "Development"
190
- # elsif provisioning_profile_name.include?("adhoc")
191
- # build_type = "ad-hoc"
192
- # icloud_env = "Development"
193
- # elsif provisioning_profile_name.include?("development")
194
- # build_type = "development"
195
- # icloud_env = "Development"
196
- # else
197
- # build_type = "app-store"
198
- # icloud_env = "Production"
199
- # end
200
-
201
- if build_type.eql?("app-store") || build_type.eql?("ad-hoc")
202
- if File.exist?(File.join(project_path, "Unity/Data/Raw/SettingsPluginFlag.txt"))
203
- raise Informative, "Unity代码包含测试模板,请重新导出Unity代码"
204
- end
205
- end
206
-
207
-
208
- app_ipaname_temp = main_target.build_configurations.first.build_settings['INFOPLIST_KEY_CFBundleDisplayName'] || main_target.display_name
209
- app_ipaname_temp = app_ipaname_temp.gsub(/ /, '');
210
- app_ipaname_temp = app_ipaname_temp.gsub(/\'/, '');
211
-
212
- values = {
213
- project: "#{proj_name}.xcodeproj",
214
- scheme:"#{proj_name}",
215
- configuration: "Release",
216
- clean: true,
217
- export_method: build_type,
218
- output_directory:"./build/",
219
- output_name: "#{app_ipaname_temp}.ipa"
220
- }
221
-
222
-
223
- if !project_build_platform.nil? && project_build_platform.eql?("macosx")
224
- values[:output_name] = nil
225
- values[:destination] = "generic/platform=macosx"
226
- end
227
-
228
- if File.exist?(File.join(project_path, "Podfile"))
229
- values[:workspace] = "#{proj_name}.xcworkspace"
230
- values[:project] = nil
231
- end
232
-
233
- values[:export_options] ||={}
234
- values[:export_options][:compileBitcode] = false
235
- values[:export_options][:stripSwiftSymbols] = true
236
- values[:export_options][:uploadSymbols] = false
237
-
238
- if !@deploy_icloud_id.nil?
239
- values[:export_options][:iCloudContainerEnvironment] = icloud_env
240
- end
241
-
242
- return values
243
-
244
- end
245
-
246
-
247
- end
248
- end
249
- end
250
- end
@@ -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
-