Class: FastlaneCore::JavaTransporterExecutor
- Inherits:
-
TransporterExecutor
- Object
- TransporterExecutor
- FastlaneCore::JavaTransporterExecutor
- Defined in:
- fastlane_core/lib/fastlane_core/itunes_transporter.rb
Overview
Generates commands and executes the iTMSTransporter by invoking its Java app directly, to avoid the crazy parameter escaping problems in its accompanying shell script.
Instance Method Summary collapse
- #build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "") ⇒ Object
- #build_upload_command(username, password, source = "/tmp", provider_short_name = "") ⇒ Object
- #execute(command, hide_output) ⇒ Object
- #handle_error(password) ⇒ Object
- #java_code_option ⇒ Object
Instance Method Details
#build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "") ⇒ Object
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 252 def build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "") [ Helper.transporter_java_executable_path.shellescape, "-Djava.ext.dirs=#{Helper.transporter_java_ext_dir.shellescape}", '-XX:NewSize=2m', '-Xms32m', '-Xmx1024m', '-Xms1024m', '-Djava.awt.headless=true', '-Dsun.net.http.retryPost=false', java_code_option, '-m lookupMetadata', "-u #{username.shellescape}", "-p #{password.shellescape}", "-apple_id #{apple_id.shellescape}", "-destination #{destination.shellescape}", ("-itc_provider #{provider_short_name}" unless provider_short_name.to_s.empty?), '2>&1' # cause stderr to be written to stdout ].compact.join(' ') end |
#build_upload_command(username, password, source = "/tmp", provider_short_name = "") ⇒ Object
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 |
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 229 def build_upload_command(username, password, source = "/tmp", provider_short_name = "") [ Helper.transporter_java_executable_path.shellescape, "-Djava.ext.dirs=#{Helper.transporter_java_ext_dir.shellescape}", '-XX:NewSize=2m', '-Xms32m', '-Xmx1024m', '-Xms1024m', '-Djava.awt.headless=true', '-Dsun.net.http.retryPost=false', java_code_option, '-m upload', "-u #{username.shellescape}", "-p #{password.shellescape}", "-f #{source.shellescape}", additional_upload_parameters, # that's here, because the user might overwrite the -t option '-t Signiant', '-k 100000', ("-itc_provider #{provider_short_name}" unless provider_short_name.to_s.empty?), '2>&1' # cause stderr to be written to stdout ].compact.join(' ') # compact gets rid of the possibly nil ENV value end |
#execute(command, hide_output) ⇒ Object
289 290 291 292 293 294 295 296 |
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 289 def execute(command, hide_output) # The Java command needs to be run starting in a working directory in the iTMSTransporter # file area. The shell script takes care of changing directories over to there, but we'll # handle it manually here for this strategy. FileUtils.cd(Helper.itms_path) do return super(command, hide_output) end end |
#handle_error(password) ⇒ Object
281 282 283 284 285 286 287 |
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 281 def handle_error(password) unless File.exist?(Helper.transporter_java_jar_path) UI.error("The iTMSTransporter Java app was not found at '#{Helper.transporter_java_jar_path}'.") UI.error("If you're using Xcode 6, please select the shell script executor by setting the environment variable "\ "FASTLANE_ITUNES_TRANSPORTER_USE_SHELL_SCRIPT=1") end end |
#java_code_option ⇒ Object
273 274 275 276 277 278 279 |
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 273 def java_code_option if Helper.mac? && Helper.xcode_at_least?(9) return "-jar #{Helper.transporter_java_jar_path.shellescape}" else return "-classpath #{Helper.transporter_java_jar_path.shellescape} com.apple.transporter.Application" end end |