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 'xcodeproj'
3
- require 'cocoapods'
4
- require 'find'
5
- require 'fileutils'
6
- require 'pindo/base/executable'
7
- require 'pindo/module/xcode/xcodeappconfig'
8
- require 'pindo/module/xcode/xcode_build_helper'
9
-
10
- module Pindo
11
- class Command
12
- class Appstore < Command
13
- class Import < Appstore
14
-
15
- include Command::DeployOptions
16
- include Pindo::XcodeAppConfig
17
- include Appselect
18
-
19
- self.summary = '提交时设置Xcode工程编译参数'
20
-
21
- self.description = <<-DESC
22
- 提交时设置Xcode工程编译参数。
23
-
24
- 支持功能:
25
-
26
- * 设置Xcode工程编译参数
27
-
28
- * 自动增加版本号
29
-
30
- * 支持编译后上传
31
-
32
- 使用示例:
33
-
34
- $ pindo appstore import # 设置编译参数
35
-
36
- $ pindo appstore import --build # 设置参数并编译
37
-
38
- $ pindo appstore import --upload # 设置参数、编译并上传
39
-
40
- $ pindo appstore import --send # 设置参数、编译、上传并发送通知
41
- DESC
42
-
43
- self.arguments = [
44
- CLAide::Argument.new('path/to/ipa', false),
45
- ]
46
-
47
- def self.options
48
- [
49
- ['--build', '修改完工程之后直接编译,用法:pindo appstore import --build'],
50
- ['--increase', '自动增加编译的app版本号,用法:pindo appstore import --increase'],
51
- ['--proj', '指定哪个项目(忽略大小写空格等等字符): --proj=\"prancksoundv4\"'],
52
- ['--upload', '编译完成后是否上传ipa到JPS: 用法:pindo appstore import --upload'],
53
- ['--send', '上传到之后是否发送测试信息,用法:pindo appstore import --send'],
54
- ['--resign', '上传到之后是否发送测试信息,用法:pindo appstore import --resign'],
55
-
56
-
57
- ].concat(super)
58
- end
59
-
60
- def initialize(argv)
61
- @build_flag = argv.flag?('build', false)
62
- @args_increase_flag = argv.flag?('increase', false)
63
-
64
- @args_upload_flag = argv.flag?('upload', false)
65
- @args_send_flag = argv.flag?('send', false)
66
- @args_resign_flag = argv.flag?('resign', false)
67
- @args_proj_name = argv.option('proj')
68
-
69
- if @args_resign_flag
70
- @args_send_flag = true
71
- end
72
-
73
- if @args_send_flag
74
- @args_upload_flag = true
75
- @build_flag = true
76
- end
77
-
78
- super
79
- end
80
-
81
- def run
82
-
83
-
84
- build_type_array = @config_json["project_info"]["xcode_build_type"].split("_") || []
85
- @args_nocreate_flag = false
86
- @args_quswark_flag = false
87
- @args_normal_flag = false
88
-
89
- if build_type_array.include?("nocreate")
90
- @args_nocreate_flag = true
91
- end
92
-
93
- if build_type_array.include?("normal")
94
- @args_normal_flag = true
95
- end
96
- if build_type_array.include?("quark") || build_type_array.include?("swark")
97
- @args_quswark_flag = true
98
- end
99
-
100
-
101
-
102
- clone_pindo_common_config_repo(force_delete:false)
103
- clone_pindo_env_config_repo(force_delete:false)
104
-
105
- Pindo::VersionCheck::check_pindo_force_upgrade()
106
-
107
- import_fun
108
-
109
- end
110
-
111
- def import_fun
112
-
113
- current_dir = Dir.pwd
114
- pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
115
- app_config_dir = File.join(pindo_dir, @deploy_identifier)
116
-
117
- args_temp = []
118
- args_temp << @args_appconfig
119
- args_temp = args_temp | @args_array
120
-
121
- @args_appstore_flag = true
122
- args = get_build_type_args()
123
- args_temp = args_temp | args
124
-
125
- pindo_new_project_dir = Dir.pwd
126
-
127
- if @args_increase_flag
128
- auto_increase_buildnumber(app_config_file:File.join(pindo_new_project_dir, "config.json"))
129
- app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
130
- auto_increase_buildnumber(app_config_file:File.join(app_config_repo_dir, "config.json"))
131
- git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
132
- end
133
-
134
-
135
-
136
- build_verify_file = File.join(app_config_dir, "build_verify.json")
137
- build_verify_json = nil
138
-
139
- begin
140
- build_verify_json = JSON.parse(File.read(build_verify_file))
141
- rescue => error
142
- build_verify_json = nil
143
- end
144
-
145
- release_code_commit = git_latest_commit_id(local_repo_dir:pindo_new_project_dir)
146
- if !release_code_commit.nil? && !build_verify_json.nil? && !build_verify_json["output_code_commit"].nil?
147
- output_code_commit = build_verify_json["output_code_commit"]
148
- if !release_code_commit.eql?(output_code_commit)
149
-
150
- puts
151
- puts
152
- puts "不是最新代码,请更新代码 !!!"
153
- puts "不是最新代码,请更新代码 !!!"
154
- puts
155
- answer = agree("请确认要用当前代码编译:(commit: #{release_code_commit}) (Y/n):")
156
- if answer
157
-
158
- else
159
- raise Informative, "请更新代码重新打包!!!"
160
- end
161
-
162
- end
163
- end
164
-
165
- Dir.chdir(pindo_new_project_dir)
166
-
167
- pod_lock_file = File.join(pindo_new_project_dir, "Podfile.lock")
168
- begin
169
- FileUtils.rm_rf(pod_lock_file)
170
- FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
171
- rescue StandardError => e
172
- end
173
-
174
- Pindo::Command::Deploy::Configproj::run(args_temp)
175
-
176
- if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
177
-
178
- Pindo::XcodeBuildHelper.pull_podfile_lock(project_dir:pindo_new_project_dir, app_config_dir:app_config_dir)
179
- Pindo::Command::Ios::Podupdate::run([])
180
- begin
181
- remove_test_pod_modue(project_dir:pindo_new_project_dir)
182
- Pod::Command::Install::run([])
183
- rescue => error
184
- puts(error.to_s)
185
- raise Informative, "pod install失败!!先pod install 完成后成编译 !"
186
- end
187
-
188
-
189
- pod_lock_file = File.join(pindo_new_project_dir, "Podfile.lock")
190
- if !File.exist?(pod_lock_file)
191
- raise Informative, "pod install失败!!先pod install 完成后成编译 !"
192
- end
193
- end
194
-
195
- if @args_quswark_flag
196
- Dir.chdir(pindo_new_project_dir)
197
- Pindo::Command::Deploy::Quswark::run([])
198
- end
199
- Dir.chdir(pindo_new_project_dir)
200
- Pindo::Command::Deploy::Cert::run(args_temp)
201
- Pindo::Command::Deploy::Tag::run(args_temp)
202
-
203
-
204
- pod_lock_json = Pod::YAMLHelper.load_file(pod_lock_file)
205
- pods_array = []
206
- if !pod_lock_json["SPEC REPOS"].nil?
207
- pod_lock_json["SPEC REPOS"].each do |source, pod_items|
208
- pods_array += pod_items
209
- end
210
- end
211
-
212
- if pods_array.include?("FancyAD") || pods_array.include?("AppLovinSDK")
213
- puts
214
- puts "Run Applovin Script ..."
215
- Dir.chdir(pindo_new_project_dir)
216
- applovin_args = []
217
- applovin_args << "--appstore"
218
- applovin_args << "--install"
219
- Pindo::Command::Ios::Applovin::run(applovin_args)
220
- end
221
-
222
- if @build_flag
223
- Dir.chdir(pindo_new_project_dir)
224
- if @args_upload_flag
225
- args_temp << "--upload"
226
- args_temp << "--proj=#{@args_proj_name}"
227
- end
228
- if @args_send_flag
229
- args_temp << "--send"
230
- end
231
-
232
- if @args_resign_flag
233
- args_temp << "--resign"
234
- if @config_json && @config_json['project_info'] && @config_json['project_info']['app_type']
235
- output_repo_name = get_deploy_repo_with_modul_name(module_name:@config_json['project_info']['app_type'])
236
- if output_repo_name.nil? || output_repo_name == ""
237
- raise Informative, "config.json app_type is error!!!"
238
- end
239
- output_config_dir = clong_buildconfig_repo(repo_name: output_repo_name)
240
- args_bundle_id = get_setting_bundleid_withdir(repo_dir:output_config_dir)
241
- args_temp << "--certid=#{args_bundle_id}"
242
- end
243
- end
244
-
245
- Pindo::Command::Deploy::Build::run(args_temp)
246
- end
247
-
248
- Dir.chdir(current_dir)
249
- puts "Buiid Done !!!"
250
- puts "#{pindo_new_project_dir}"
251
- system "open #{pindo_new_project_dir}"
252
-
253
- end
254
-
255
-
256
- end
257
- end
258
- end
259
- end
@@ -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