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