fastlane 2.61.0 → 2.62.0.beta.20171010010004

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b86b8067250cc6c52f7f47a0f7035a1a8d0c6c8
4
- data.tar.gz: b1fda36602b3022bcba3034fafdac672772ebbeb
3
+ metadata.gz: 6603dcc994421f4f5f4cc421abc2aeb3c354071a
4
+ data.tar.gz: 1bb36fff2ccd821a7420753c9b52017af8b845b4
5
5
  SHA512:
6
- metadata.gz: eb164f078e32e06a93114d8eb6518dbcdb246fbdbaae57dcd4141df747ffdd0f0869f59e0183b20d01eb6ac24ab1ccddac06e22e4a286ede242b1a19eb0e8b69
7
- data.tar.gz: 4be34ef5c10b4289ccf9481b5b01c42712f67aa5c962392198e4f7648b8e7d0abfe12fbf5051215c7cd2a122cf79b8e4de46715a918f9195013433f2da6dbb18
6
+ metadata.gz: d6fd3bac1fce74d240d5e5f7171ca633ee708e31a9e6dfa9b23a5149fa2d788936b5295e0600f55d0bc983ede708e6b102c19b81c628ef1d26464d69b9d7508d
7
+ data.tar.gz: c6c9fa27ddea41b0fab403c3d14eff733a41084f444938b6ac16ab53fc7ade71918198e36d1d8430966947c0a5dacb4819a9b08caf6d000e7c21f82c0c77527f
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.61.0'.freeze
2
+ VERSION = '2.62.0.beta.20171010010004'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  end
@@ -252,7 +252,7 @@ module FastlaneCore
252
252
  end
253
253
 
254
254
  def java_code_option
255
- if Helper.xcode_at_least?(9)
255
+ if Helper.is_mac? && Helper.xcode_at_least?(9)
256
256
  return "-jar #{Helper.transporter_java_jar_path.shellescape}"
257
257
  else
258
258
  return "-classpath #{Helper.transporter_java_jar_path.shellescape} com.apple.transporter.Application"
@@ -38,8 +38,8 @@ module Spaceship
38
38
  upload_file(app_version: app_version, upload_file: upload_file, path: '/upload/purple-video', content_provider_id: content_provider_id, sso_token: sso_token_for_video)
39
39
  end
40
40
 
41
- def upload_trailer_preview(app_version, upload_file, content_provider_id, sso_token_for_image)
42
- upload_file(app_version: app_version, upload_file: upload_file, path: '/upload/app-screenshot-image', content_provider_id: content_provider_id, sso_token: sso_token_for_image)
41
+ def upload_trailer_preview(app_version, upload_file, content_provider_id, sso_token_for_image, device)
42
+ upload_file(app_version: app_version, upload_file: upload_file, path: '/upload/image', content_provider_id: content_provider_id, sso_token: sso_token_for_image, du_validation_rule_set: screenshot_picture_type(device, nil))
43
43
  end
44
44
 
45
45
  private
@@ -66,8 +66,8 @@ module Spaceship
66
66
  video_infos = output.split("\n").select { |l| l =~ /Stream.*Video/ }
67
67
  raise "Unable to find Stream Video information from ffmpeg output of #{command}" if video_infos.count == 0
68
68
  video_info = video_infos[0]
69
- res = video_info.match(/.* ([0-9]+)x([0-9]+),.*/)
70
- raise "Unable to parse resolution information from #{video_info}" if res.count < 3
69
+ res = video_info.match(/.* ([0-9]+)x([0-9]+).*/)
70
+ raise "Unable to parse resolution information from #{video_info}" if res.size < 3
71
71
  [res[1].to_i, res[2].to_i]
72
72
  end
73
73
 
@@ -516,30 +516,34 @@ module Spaceship
516
516
  setup_screenshots
517
517
  end
518
518
 
519
- # Uploads, removes a trailer video or change its preview image
519
+ # Uploads, removes a trailer video
520
520
  #
521
521
  # A preview image for the video is required by ITC and is usually automatically extracted by your browser.
522
- # This method will either automatically extract it from the video (using `ffmpeg) or allow you
522
+ # This method will either automatically extract it from the video (using `ffmpeg`) or allow you
523
523
  # to specify it using +preview_image_path+.
524
- # If the preview image is specified, ffmpeg` will ot be used. The image resolution will be checked against
524
+ # If the preview image is specified, `ffmpeg` will not be used. The image resolution will be checked against
525
525
  # expectations (which might be different from the trailer resolution.
526
526
  #
527
527
  # It is recommended to extract the preview image using the spaceship related tools in order to ensure
528
528
  # the appropriate format and resolution are used.
529
529
  #
530
- # Note: if the video is already set, the +trailer_path+ is only used to grab the preview screenshot.
531
530
  # Note: to extract its resolution and a screenshot preview, the `ffmpeg` tool will be used
532
531
  #
533
- # @param icon_path (String): The path to the screenshot. Use nil to remove it
532
+ # @param trailer_path (String): The path to the trailer. Use nil to remove it
534
533
  # @param sort_order (Fixnum): The sort_order, from 1 to 5
535
534
  # @param language (String): The language for this screenshot
536
535
  # @param device (String): The device for this screenshot
537
536
  # @param timestamp (String): The optional timestamp of the screenshot to grab
538
- def upload_trailer!(trailer_path, language, device, timestamp = "05.00", preview_image_path = nil)
537
+ # @param preview_image_path (String): The optional image path for the video preview
538
+ def upload_trailer!(trailer_path, sort_order, language, device, timestamp = "05.00", preview_image_path = nil)
539
539
  raise "No app trailer supported for iphone35" if device == 'iphone35'
540
+ raise "sort_order must be higher than 0" unless sort_order > 0
541
+ raise "sort_order must not be > 3" if sort_order > 3
540
542
 
541
- device_lang_trailer = trailer_data_for_language_and_device(language, device, is_messages)
542
- if trailer_path # adding / replacing trailer / replacing preview
543
+ device_lang_trailers = trailer_data_for_language_and_device(language, device)["value"]
544
+ existing_sort_orders = device_lang_trailers.map { |s| s["value"]["sortPosition"] }
545
+
546
+ if trailer_path # adding / replacing trailer
543
547
  raise "Invalid timestamp #{timestamp}" if (timestamp =~ /^[0-9][0-9].[0-9][0-9]$/).nil?
544
548
 
545
549
  if preview_image_path
@@ -551,33 +555,38 @@ module Spaceship
551
555
  video_preview_path = Utilities.grab_video_preview(trailer_path, timestamp, video_preview_resolution)
552
556
  end
553
557
  video_preview_file = UploadFile.from_path video_preview_path
554
- video_preview_data = client.upload_trailer_preview(self, video_preview_file)
555
-
556
- trailer = device_lang_trailer["value"]
557
- if trailer.nil? # add trailer
558
- upload_file = UploadFile.from_path trailer_path
559
- trailer_data = client.upload_trailer(self, upload_file)
560
- trailer_data = trailer_data['responses'][0]
561
- trailer = {
562
- "videoAssetToken" => trailer_data["token"],
563
- "descriptionXML" => trailer_data["descriptionDoc"],
564
- "contentType" => upload_file.content_type
565
- }
566
- device_lang_trailer["value"] = trailer
567
- end
568
- # add / update preview
569
- # different format required
558
+ video_preview_data = client.upload_trailer_preview(self, video_preview_file, device)
559
+
560
+ upload_file = UploadFile.from_path trailer_path
561
+ trailer_data = client.upload_trailer(self, upload_file)
562
+
570
563
  ts = "00:00:#{timestamp}"
571
564
  ts[8] = ':'
572
565
 
573
- trailer.merge!({
574
- "pictureAssetToken" => video_preview_data["token"],
575
- "previewFrameTimeCode" => ts.to_s,
576
- "isPortrait" => Utilities.portrait?(video_preview_path)
577
- })
566
+ new_trailer = {
567
+ "value" => {
568
+ "videoAssetToken" => trailer_data["responses"][0]["token"],
569
+ "descriptionXML" => trailer_data["responses"][0]["descriptionDoc"],
570
+ "contentType" => upload_file.content_type,
571
+ "sortPosition" => sort_order,
572
+ "size" => video_preview_data["length"],
573
+ "width" => video_preview_data["width"],
574
+ "height" => video_preview_data["height"],
575
+ "checksum" => video_preview_data["md5"],
576
+ "pictureAssetToken" => video_preview_data["token"],
577
+ "previewFrameTimeCode" => ts.to_s,
578
+ "isPortrait" => Utilities.portrait?(video_preview_path)
579
+ }
580
+ }
581
+
582
+ if existing_sort_orders.include?(sort_order) # replace
583
+ device_lang_trailers[existing_sort_orders.index(sort_order)] = new_trailer
584
+ else # add
585
+ device_lang_trailers << new_trailer
586
+ end
578
587
  else # removing trailer
579
- raise "cannot remove non existing trailer" if device_lang_trailer["value"].nil?
580
- device_lang_trailer["value"] = nil
588
+ raise "cannot remove trailer with non existing sort_order" unless existing_sort_orders.include?(sort_order)
589
+ device_lang_trailers.delete_at(existing_sort_orders.index(sort_order))
581
590
  end
582
591
  setup_trailers
583
592
  end
@@ -657,7 +666,7 @@ module Spaceship
657
666
  end
658
667
 
659
668
  def trailer_data_for_language_and_device(language, device)
660
- container_data_for_language_and_device("appTrailers", language, device)
669
+ container_data_for_language_and_device("trailers", language, device)
661
670
  end
662
671
 
663
672
  def container_data_for_language_and_device(data_field, language, device)
@@ -838,15 +847,14 @@ module Spaceship
838
847
  result = []
839
848
 
840
849
  display_families.each do |display_family|
841
- trailer_raw = display_family["trailer"]
842
- next if trailer_raw.nil?
843
- trailer_data = trailer_raw["value"]
844
- next if trailer_data.nil?
845
- data = {
846
- device_type: display_family['name'],
847
- language: row["language"]
848
- }.merge(trailer_data)
849
- result << Tunes::AppTrailer.factory(data)
850
+ display_family.fetch("trailers", {}).fetch("value", []).each do |trailer|
851
+ trailer_data = trailer["value"]
852
+ data = {
853
+ device_type: display_family['name'],
854
+ language: row["language"]
855
+ }.merge(trailer_data)
856
+ result << Tunes::AppTrailer.factory(data)
857
+ end
850
858
  end
851
859
 
852
860
  return result
@@ -672,12 +672,14 @@ module Spaceship
672
672
  # Uploads the trailer preview
673
673
  # @param app_version (AppVersion): The version of your app
674
674
  # @param upload_trailer_preview (UploadFile): The trailer preview to upload
675
+ # @param device (string): The target device
675
676
  # @return [JSON] the response
676
- def upload_trailer_preview(app_version, upload_trailer_preview)
677
+ def upload_trailer_preview(app_version, upload_trailer_preview, device)
677
678
  raise "app_version is required" unless app_version
678
679
  raise "upload_trailer_preview is required" unless upload_trailer_preview
680
+ raise "device is required" unless device
679
681
 
680
- du_client.upload_trailer_preview(app_version, upload_trailer_preview, content_provider_id, sso_token_for_image)
682
+ du_client.upload_trailer_preview(app_version, upload_trailer_preview, content_provider_id, sso_token_for_image, device)
681
683
  end
682
684
 
683
685
  # Fetches the App Version Reference information from ITC
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.61.0
4
+ version: 2.62.0.beta.20171010010004
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-10-09 00:00:00.000000000 Z
18
+ date: 2017-10-10 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier
@@ -828,8 +828,6 @@ files:
828
828
  - deliver/lib/deliver/upload_price_tier.rb
829
829
  - deliver/lib/deliver/upload_screenshots.rb
830
830
  - fastlane/README.md
831
- - fastlane/lib/.DS_Store
832
- - fastlane/lib/assets/.DS_Store
833
831
  - fastlane/lib/assets/ActionDetails.md.erb
834
832
  - fastlane/lib/assets/Actions.md.erb
835
833
  - fastlane/lib/assets/AppfileTemplate
@@ -847,10 +845,8 @@ files:
847
845
  - fastlane/lib/assets/s3_plist_template.erb
848
846
  - fastlane/lib/assets/s3_version_template.erb
849
847
  - fastlane/lib/fastlane.rb
850
- - fastlane/lib/fastlane/.DS_Store
851
848
  - fastlane/lib/fastlane/action.rb
852
849
  - fastlane/lib/fastlane/action_collector.rb
853
- - fastlane/lib/fastlane/actions/.DS_Store
854
850
  - fastlane/lib/fastlane/actions/README.md
855
851
  - fastlane/lib/fastlane/actions/actions_helper.rb
856
852
  - fastlane/lib/fastlane/actions/adb.rb
@@ -895,7 +891,6 @@ files:
895
891
  - fastlane/lib/fastlane/actions/deliver.rb
896
892
  - fastlane/lib/fastlane/actions/deploygate.rb
897
893
  - fastlane/lib/fastlane/actions/device_grid/README.md
898
- - fastlane/lib/fastlane/actions/docs/.DS_Store
899
894
  - fastlane/lib/fastlane/actions/docs/assets/FrameitGit.gif
900
895
  - fastlane/lib/fastlane/actions/docs/assets/MacExample.png
901
896
  - fastlane/lib/fastlane/actions/docs/assets/PEMRecording.gif
@@ -1502,24 +1497,24 @@ metadata:
1502
1497
  post_install_message:
1503
1498
  rdoc_options: []
1504
1499
  require_paths:
1505
- - cert/lib
1506
- - credentials_manager/lib
1507
- - deliver/lib
1500
+ - spaceship/lib
1501
+ - scan/lib
1502
+ - sigh/lib
1503
+ - snapshot/lib
1504
+ - screengrab/lib
1508
1505
  - fastlane/lib
1509
- - fastlane_core/lib
1510
- - frameit/lib
1506
+ - cert/lib
1507
+ - pem/lib
1511
1508
  - gym/lib
1509
+ - produce/lib
1510
+ - deliver/lib
1511
+ - supply/lib
1512
1512
  - match/lib
1513
- - pem/lib
1513
+ - frameit/lib
1514
+ - credentials_manager/lib
1514
1515
  - pilot/lib
1515
1516
  - precheck/lib
1516
- - produce/lib
1517
- - scan/lib
1518
- - screengrab/lib
1519
- - sigh/lib
1520
- - snapshot/lib
1521
- - spaceship/lib
1522
- - supply/lib
1517
+ - fastlane_core/lib
1523
1518
  required_ruby_version: !ruby/object:Gem::Requirement
1524
1519
  requirements:
1525
1520
  - - ">="
@@ -1527,15 +1522,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1527
1522
  version: 2.0.0
1528
1523
  required_rubygems_version: !ruby/object:Gem::Requirement
1529
1524
  requirements:
1530
- - - ">="
1525
+ - - ">"
1531
1526
  - !ruby/object:Gem::Version
1532
- version: '0'
1527
+ version: 1.3.1
1533
1528
  requirements: []
1534
1529
  rubyforge_project:
1535
- rubygems_version: 2.6.10
1530
+ rubygems_version: 2.4.5.1
1536
1531
  signing_key:
1537
1532
  specification_version: 4
1538
1533
  summary: The easiest way to automate beta deployments and releases for your iOS and
1539
1534
  Android apps
1540
1535
  test_files: []
1541
- has_rdoc:
Binary file
Binary file
Binary file