fastlane 2.61.0 → 2.62.0.beta.20171010010004

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.
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