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 +4 -4
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -1
- data/spaceship/lib/spaceship/du/du_client.rb +2 -2
- data/spaceship/lib/spaceship/du/utilities.rb +2 -2
- data/spaceship/lib/spaceship/tunes/app_version.rb +49 -41
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -2
- metadata +18 -24
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/assets/.DS_Store +0 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6603dcc994421f4f5f4cc421abc2aeb3c354071a
|
4
|
+
data.tar.gz: 1bb36fff2ccd821a7420753c9b52017af8b845b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6fd3bac1fce74d240d5e5f7171ca633ee708e31a9e6dfa9b23a5149fa2d788936b5295e0600f55d0bc983ede708e6b102c19b81c628ef1d26464d69b9d7508d
|
7
|
+
data.tar.gz: c6c9fa27ddea41b0fab403c3d14eff733a41084f444938b6ac16ab53fc7ade71918198e36d1d8430966947c0a5dacb4819a9b08caf6d000e7c21f82c0c77527f
|
@@ -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/
|
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.
|
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
|
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
|
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
|
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
|
-
|
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
|
-
|
542
|
-
|
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
|
-
|
557
|
-
|
558
|
-
|
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
|
-
|
574
|
-
"
|
575
|
-
|
576
|
-
|
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
|
580
|
-
|
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("
|
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
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
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.
|
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-
|
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
|
-
-
|
1506
|
-
-
|
1507
|
-
-
|
1500
|
+
- spaceship/lib
|
1501
|
+
- scan/lib
|
1502
|
+
- sigh/lib
|
1503
|
+
- snapshot/lib
|
1504
|
+
- screengrab/lib
|
1508
1505
|
- fastlane/lib
|
1509
|
-
-
|
1510
|
-
-
|
1506
|
+
- cert/lib
|
1507
|
+
- pem/lib
|
1511
1508
|
- gym/lib
|
1509
|
+
- produce/lib
|
1510
|
+
- deliver/lib
|
1511
|
+
- supply/lib
|
1512
1512
|
- match/lib
|
1513
|
-
-
|
1513
|
+
- frameit/lib
|
1514
|
+
- credentials_manager/lib
|
1514
1515
|
- pilot/lib
|
1515
1516
|
- precheck/lib
|
1516
|
-
-
|
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:
|
1527
|
+
version: 1.3.1
|
1533
1528
|
requirements: []
|
1534
1529
|
rubyforge_project:
|
1535
|
-
rubygems_version: 2.
|
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:
|
data/fastlane/lib/.DS_Store
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|