fastlane 2.147.0 → 2.150.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +82 -82
- data/cert/lib/cert/commands_generator.rb +1 -0
- data/credentials_manager/lib/credentials_manager/cli.rb +2 -0
- data/deliver/lib/deliver.rb +0 -1
- data/deliver/lib/deliver/app_screenshot.rb +28 -27
- data/deliver/lib/deliver/commands_generator.rb +1 -0
- data/deliver/lib/deliver/html_generator.rb +2 -2
- data/deliver/lib/deliver/options.rb +6 -11
- data/deliver/lib/deliver/runner.rb +7 -4
- data/deliver/lib/deliver/setup.rb +5 -30
- data/deliver/lib/deliver/submit_for_review.rb +124 -83
- data/deliver/lib/deliver/upload_metadata.rb +284 -143
- data/deliver/lib/deliver/upload_price_tier.rb +15 -8
- data/deliver/lib/deliver/upload_screenshots.rb +86 -37
- data/fastlane/lib/assets/s3_html_template.erb +1 -1
- data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -4
- data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +42 -2
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +3 -11
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +15 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +7 -1
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +1 -1
- data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
- data/fastlane/lib/fastlane/actions/hipchat.rb +1 -1
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -1
- data/fastlane/lib/fastlane/actions/slack.rb +2 -2
- data/fastlane/lib/fastlane/actions/slather.rb +8 -1
- data/fastlane/lib/fastlane/actions/spm.rb +7 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +14 -0
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +3 -34
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +4 -4
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +28 -6
- data/fastlane/lib/fastlane/commands_generator.rb +1 -1
- data/fastlane/lib/fastlane/documentation/actions_list.rb +1 -1
- data/fastlane/lib/fastlane/lane.rb +3 -3
- data/fastlane/lib/fastlane/lane_manager.rb +0 -10
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +3 -3
- data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +22 -5
- data/fastlane/lib/fastlane/swift_lane_manager.rb +0 -8
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -0
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +140 -30
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +3 -9
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +5 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +29 -6
- data/fastlane/swift/RubyCommandable.swift +1 -0
- data/fastlane/swift/Runner.swift +85 -13
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +10 -2
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +17 -1
- data/fastlane/swift/SocketClient.swift +76 -45
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -3
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +7 -0
- data/frameit/lib/frameit/commands_generator.rb +1 -0
- data/frameit/lib/frameit/device_types.rb +100 -100
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +4 -0
- data/gym/lib/gym/options.rb +1 -1
- data/gym/lib/gym/runner.rb +14 -0
- data/match/lib/match/commands_generator.rb +1 -0
- data/match/lib/match/generator.rb +2 -1
- data/match/lib/match/nuke.rb +21 -16
- data/match/lib/match/options.rb +18 -1
- data/match/lib/match/storage/git_storage.rb +4 -0
- data/match/lib/match/storage/google_cloud_storage.rb +4 -0
- data/match/lib/match/storage/interface.rb +4 -0
- data/match/lib/match/storage/s3_storage.rb +4 -0
- data/pem/lib/pem/commands_generator.rb +1 -0
- data/pilot/lib/pilot/build_manager.rb +23 -7
- data/pilot/lib/pilot/options.rb +5 -0
- data/produce/lib/produce/commands_generator.rb +1 -0
- data/produce/lib/produce/itunes_connect.rb +20 -20
- data/produce/lib/produce/options.rb +3 -3
- data/scan/lib/scan/detect_values.rb +3 -0
- data/scan/lib/scan/options.rb +20 -2
- data/scan/lib/scan/test_command_generator.rb +6 -1
- data/scan/lib/scan/test_result_parser.rb +9 -2
- data/screengrab/lib/screengrab/runner.rb +10 -9
- data/sigh/lib/assets/resign.sh +7 -7
- data/sigh/lib/sigh/commands_generator.rb +1 -0
- data/sigh/lib/sigh/options.rb +7 -1
- data/sigh/lib/sigh/runner.rb +2 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +16 -37
- data/snapshot/lib/assets/SnapshotHelperXcode8.swift +3 -3
- data/snapshot/lib/snapshot/detect_values.rb +15 -0
- data/snapshot/lib/snapshot/options.rb +31 -0
- data/snapshot/lib/snapshot/reports_generator.rb +8 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +3 -1
- data/snapshot/lib/snapshot/test_command_generator.rb +8 -3
- data/snapshot/lib/snapshot/test_command_generator_base.rb +7 -1
- data/spaceship/lib/spaceship/.DS_Store +0 -0
- data/spaceship/lib/spaceship/client.rb +9 -1
- data/spaceship/lib/spaceship/commands_generator.rb +1 -0
- data/spaceship/lib/spaceship/connect_api.rb +21 -2
- data/spaceship/lib/spaceship/connect_api/client.rb +47 -11
- data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +109 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +113 -3
- data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +74 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +38 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/app_review_attachment.rb +81 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +117 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +101 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +182 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +70 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +36 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +8 -0
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +40 -0
- data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +10 -3
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +33 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +703 -0
- data/spaceship/lib/spaceship/errors.rb +3 -0
- data/spaceship/lib/spaceship/spaceauth_runner.rb +2 -2
- data/supply/lib/supply/client.rb +19 -0
- data/supply/lib/supply/commands_generator.rb +1 -0
- data/supply/lib/supply/options.rb +9 -0
- data/supply/lib/supply/reader.rb +16 -0
- data/supply/lib/supply/uploader.rb +4 -0
- metadata +52 -47
- data/deliver/lib/deliver/upload_assets.rb +0 -27
- data/supply/lib/supply/.client.rb.swp +0 -0
@@ -17,7 +17,7 @@ import Foundation
|
|
17
17
|
protocol SocketClientDelegateProtocol: class {
|
18
18
|
func connectionsOpened()
|
19
19
|
func connectionsClosed()
|
20
|
-
func commandExecuted(serverResponse: SocketClientResponse)
|
20
|
+
func commandExecuted(serverResponse: SocketClientResponse, completion: (SocketClient) -> Void)
|
21
21
|
}
|
22
22
|
|
23
23
|
// Please don't remove the lines below
|
@@ -28,6 +28,7 @@ struct SocketResponse {
|
|
28
28
|
}
|
29
29
|
|
30
30
|
if status == "ready_for_next" {
|
31
|
+
verbose(message: "ready for next")
|
31
32
|
let returnedObject = statusDictionary["return_object"] as? String
|
32
33
|
let closureArgumentValue = statusDictionary["closure_argument_value"] as? String
|
33
34
|
self = .readyForNext(returnedObject: returnedObject, closureArgumentValue: closureArgumentValue)
|
@@ -17,6 +17,13 @@ module FastlaneCore
|
|
17
17
|
return nil
|
18
18
|
end
|
19
19
|
|
20
|
+
# Fetches the app version from the given pkg file.
|
21
|
+
def self.fetch_app_build(path)
|
22
|
+
xml = self.fetch_distribution_xml_file(path)
|
23
|
+
return xml.elements['installer-gui-script/pkg-ref/bundle-version/bundle'].attributes['CFBundleVersion'] if xml
|
24
|
+
return nil
|
25
|
+
end
|
26
|
+
|
20
27
|
def self.fetch_distribution_xml_file(path)
|
21
28
|
Dir.mktmpdir do |dir|
|
22
29
|
Helper.backticks("xar -C #{dir.shellescape} -xf #{path.shellescape}")
|
@@ -1,50 +1,50 @@
|
|
1
|
-
require_relative 'device'
|
2
1
|
require_relative 'module'
|
2
|
+
require_relative './device'
|
3
3
|
require 'deliver/app_screenshot'
|
4
4
|
|
5
5
|
module Frameit
|
6
6
|
module Color
|
7
|
-
MATTE_BLACK
|
8
|
-
SPACE_GRAY
|
9
|
-
ROSE_GOLD
|
10
|
-
CLEARLY_WHITE
|
11
|
-
JUST_BLACK
|
12
|
-
NOT_PINK
|
13
|
-
SILVER_TITANIUM
|
14
|
-
ARCTIC_SILVER
|
15
|
-
CORAL_BLUE
|
16
|
-
MAPLE_GOLD
|
17
|
-
MIDNIGHT_BLACK
|
18
|
-
MIDNIGHT_GREEN
|
19
|
-
ORCHID_GRAY
|
20
|
-
BURGUNDY_RED
|
21
|
-
LILAC_PURPLE
|
22
|
-
SUNRISE_GOLD
|
23
|
-
TITANIUM_GRAY
|
24
|
-
FLAMINGO_PINK
|
25
|
-
PRISM_BLACK
|
26
|
-
PRISM_BLUE
|
27
|
-
PRISM_GREEN
|
28
|
-
PRISM_WHITE
|
29
|
-
CERAMIC_WHITE
|
30
|
-
OH_SO_ORANGE
|
31
|
-
AURA_BLACK
|
32
|
-
AURA_GLOW
|
33
|
-
AURA_PINK
|
34
|
-
AURA_RED
|
35
|
-
AURA_WHITE
|
36
|
-
AURA_BLUE
|
37
|
-
CORAL
|
38
|
-
BLACK
|
39
|
-
WHITE
|
40
|
-
GOLD
|
41
|
-
SILVER
|
42
|
-
BLUE
|
43
|
-
RED
|
44
|
-
YELLOW
|
45
|
-
GREEN
|
46
|
-
PINK
|
47
|
-
PURPLE
|
7
|
+
MATTE_BLACK ||= "Matte Black"
|
8
|
+
SPACE_GRAY ||= "Space Gray"
|
9
|
+
ROSE_GOLD ||= "Rose Gold"
|
10
|
+
CLEARLY_WHITE ||= "Clearly White"
|
11
|
+
JUST_BLACK ||= "Just Black"
|
12
|
+
NOT_PINK ||= "Not Pink"
|
13
|
+
SILVER_TITANIUM ||= "Silver Titanium"
|
14
|
+
ARCTIC_SILVER ||= "Arctic Silver"
|
15
|
+
CORAL_BLUE ||= "Coral Blue"
|
16
|
+
MAPLE_GOLD ||= "Maple Gold"
|
17
|
+
MIDNIGHT_BLACK ||= "Midnight Black"
|
18
|
+
MIDNIGHT_GREEN ||= "Midnight Green"
|
19
|
+
ORCHID_GRAY ||= "Orchid Gray"
|
20
|
+
BURGUNDY_RED ||= "Burgundy Red"
|
21
|
+
LILAC_PURPLE ||= "Lilac Purple"
|
22
|
+
SUNRISE_GOLD ||= "Sunrise Gold"
|
23
|
+
TITANIUM_GRAY ||= "Titanium Gray"
|
24
|
+
FLAMINGO_PINK ||= "Flamingo Pink"
|
25
|
+
PRISM_BLACK ||= "Prism Black"
|
26
|
+
PRISM_BLUE ||= "Prism Blue"
|
27
|
+
PRISM_GREEN ||= "Prism Green"
|
28
|
+
PRISM_WHITE ||= "Prism White"
|
29
|
+
CERAMIC_WHITE ||= "Ceramic White"
|
30
|
+
OH_SO_ORANGE ||= "Oh So Orange"
|
31
|
+
AURA_BLACK ||= "Aura Black"
|
32
|
+
AURA_GLOW ||= "Aura Glow"
|
33
|
+
AURA_PINK ||= "Aura Pink"
|
34
|
+
AURA_RED ||= "Aura Red"
|
35
|
+
AURA_WHITE ||= "Aura White"
|
36
|
+
AURA_BLUE ||= "Aura Blue"
|
37
|
+
CORAL ||= "Coral"
|
38
|
+
BLACK ||= "Black"
|
39
|
+
WHITE ||= "White"
|
40
|
+
GOLD ||= "Gold"
|
41
|
+
SILVER ||= "Silver"
|
42
|
+
BLUE ||= "Blue"
|
43
|
+
RED ||= "Red"
|
44
|
+
YELLOW ||= "Yellow"
|
45
|
+
GREEN ||= "Green"
|
46
|
+
PINK ||= "Pink"
|
47
|
+
PURPLE ||= "Purple"
|
48
48
|
|
49
49
|
def self.all_colors
|
50
50
|
Color.constants.map { |c| Color.const_get(c).upcase.gsub(' ', '_') }
|
@@ -52,14 +52,14 @@ module Frameit
|
|
52
52
|
end
|
53
53
|
|
54
54
|
module Orientation
|
55
|
-
PORTRAIT
|
56
|
-
LANDSCAPE
|
55
|
+
PORTRAIT ||= "PORTRAIT"
|
56
|
+
LANDSCAPE ||= "LANDSCAPE"
|
57
57
|
end
|
58
58
|
|
59
59
|
module Platform
|
60
|
-
ANDROID
|
61
|
-
IOS
|
62
|
-
ANY
|
60
|
+
ANDROID ||= "ANDROID"
|
61
|
+
IOS ||= "IOS"
|
62
|
+
ANY ||= "ANY"
|
63
63
|
|
64
64
|
def self.all_platforms
|
65
65
|
Platform.constants.map { |c| Platform.const_get(c) }
|
@@ -75,67 +75,67 @@ module Frameit
|
|
75
75
|
end
|
76
76
|
|
77
77
|
module Devices
|
78
|
-
GOOGLE_PIXEL_3
|
79
|
-
GOOGLE_PIXEL_3_XL
|
78
|
+
GOOGLE_PIXEL_3 ||= Frameit::Device.new("google-pixel-3", "Google Pixel 3", 7, [[1080, 2160], [2160, 1080]], 443, Color::JUST_BLACK, Platform::ANDROID)
|
79
|
+
GOOGLE_PIXEL_3_XL ||= Frameit::Device.new("google-pixel-3-xl", "Google Pixel 3 XL", 7, [[1440, 2960], [2960, 1440]], 523, Color::JUST_BLACK, Platform::ANDROID)
|
80
80
|
# Google Pixel 4's priority should be higher than Samsung Galaxy S10+ (priority 8):
|
81
|
-
GOOGLE_PIXEL_4
|
82
|
-
GOOGLE_PIXEL_4_XL
|
83
|
-
HTC_ONE_A9
|
84
|
-
HTC_ONE_M8
|
85
|
-
HUAWEI_P8
|
86
|
-
MOTOROLA_MOTO_E
|
87
|
-
MOTOROLA_MOTO_G
|
88
|
-
NEXUS_4
|
89
|
-
NEXUS_5X
|
90
|
-
NEXUS_6P
|
91
|
-
NEXUS_9
|
92
|
-
SAMSUNG_GALAXY_GRAND_PRIME
|
93
|
-
SAMSUNG_GALAXY_NOTE_5
|
94
|
-
SAMSUNG_GALAXY_NOTE_10
|
95
|
-
SAMSUNG_GALAXY_NOTE_10_PLUS
|
96
|
-
SAMSUNG_GALAXY_S_DUOS
|
97
|
-
SAMSUNG_GALAXY_S3
|
98
|
-
SAMSUNG_GALAXY_S5
|
99
|
-
SAMSUNG_GALAXY_S7
|
100
|
-
SAMSUNG_GALAXY_S8
|
101
|
-
SAMSUNG_GALAXY_S9
|
102
|
-
SAMSUNG_GALAXY_S10
|
103
|
-
SAMSUNG_GALAXY_S10_PLUS
|
104
|
-
XIAOMI_MI_MIX_ALPHA
|
105
|
-
IPHONE_5S
|
106
|
-
IPHONE_5C
|
107
|
-
IPHONE_SE
|
108
|
-
IPHONE_6S
|
109
|
-
IPHONE_6S_PLUS
|
110
|
-
IPHONE_7
|
111
|
-
IPHONE_7_PLUS
|
112
|
-
IPHONE_8
|
113
|
-
IPHONE_8_PLUS
|
114
|
-
IPHONE_X
|
115
|
-
IPHONE_XS
|
116
|
-
IPHONE_XR
|
117
|
-
IPHONE_XS_MAX
|
118
|
-
IPHONE_11
|
119
|
-
IPHONE_11_PRO
|
120
|
-
IPHONE_11_PRO_MAX
|
121
|
-
IPAD_10_2
|
122
|
-
IPAD_AIR_2
|
123
|
-
IPAD_AIR_2019
|
124
|
-
IPAD_MINI_4
|
125
|
-
IPAD_MINI_2019
|
81
|
+
GOOGLE_PIXEL_4 ||= Frameit::Device.new("google-pixel-4", "Google Pixel 4", 9, [[1080, 2280], [2280, 1080]], 444, Color::JUST_BLACK, Platform::ANDROID)
|
82
|
+
GOOGLE_PIXEL_4_XL ||= Frameit::Device.new("google-pixel-4-xl", "Google Pixel 4 XL", 9, [[1440, 3040], [3040, 1440]], 537, Color::JUST_BLACK, Platform::ANDROID)
|
83
|
+
HTC_ONE_A9 ||= Frameit::Device.new("htc-one-a9", "HTC One A9", 6, [[1080, 1920], [1920, 1080]], 441, Color::BLACK, Platform::ANDROID)
|
84
|
+
HTC_ONE_M8 ||= Frameit::Device.new("htc-one-m8", "HTC One M8", 3, [[1080, 1920], [1920, 1080]], 441, Color::BLACK, Platform::ANDROID)
|
85
|
+
HUAWEI_P8 ||= Frameit::Device.new("huawei-p8", "Huawei P8", 5, [[1080, 1920], [1920, 1080]], 424, Color::BLACK, Platform::ANDROID)
|
86
|
+
MOTOROLA_MOTO_E ||= Frameit::Device.new("motorola-moto-e", "Motorola Moto E", 3, [[540, 960], [960, 540]], 245, Color::BLACK, Platform::ANDROID)
|
87
|
+
MOTOROLA_MOTO_G ||= Frameit::Device.new("motorola-moto-g", "Motorola Moto G", 4, [[1080, 1920], [1920, 1080]], 401, nil, Platform::ANDROID, nil)
|
88
|
+
NEXUS_4 ||= Frameit::Device.new("nexus-4", "Nexus 4", 7, [[768, 1280], [1820, 768]], 318, nil, Platform::ANDROID)
|
89
|
+
NEXUS_5X ||= Frameit::Device.new("nexus-5x", "Nexus 5X", 7, [[1080, 1920], [1920, 1080]], 423, nil, Platform::ANDROID)
|
90
|
+
NEXUS_6P ||= Frameit::Device.new("nexus-6p", "Nexus 6P", 7, [[1440, 2560], [2560, 1440]], 518, nil, Platform::ANDROID)
|
91
|
+
NEXUS_9 ||= Frameit::Device.new("nexus-9", "Nexus 9", 7, [[1536, 2048], [2048, 1536]], 281, nil, Platform::ANDROID)
|
92
|
+
SAMSUNG_GALAXY_GRAND_PRIME ||= Frameit::Device.new("samsung-galaxy-grand-prime", "Samsung Galaxy Grand Prime", 5, [[540, 960], [960, 540]], 220, Color::BLACK, Platform::ANDROID)
|
93
|
+
SAMSUNG_GALAXY_NOTE_5 ||= Frameit::Device.new("samsung-galaxy-note-5", "Samsung Galaxy Note 5", 5, [[1440, 2560], [2560, 1440]], 518, Color::BLACK, Platform::ANDROID)
|
94
|
+
SAMSUNG_GALAXY_NOTE_10 ||= Frameit::Device.new("samsung-galaxy-note-10", "Samsung Galaxy Note 10", 6, [[1080, 2280], [2280, 1080]], 401, Color::AURA_BLACK, Platform::ANDROID)
|
95
|
+
SAMSUNG_GALAXY_NOTE_10_PLUS ||= Frameit::Device.new("samsung-galaxy-note-10-plus", "Samsung Galaxy Note 10+", 7, [[1440, 3040], [3040, 1440]], 498, Color::AURA_BLACK, Platform::ANDROID)
|
96
|
+
SAMSUNG_GALAXY_S_DUOS ||= Frameit::Device.new("samsung-galaxy-s-duos", "Samsung Galaxy S Duos", 3, [[480, 800], [800, 480]], 233, nil, Platform::ANDROID)
|
97
|
+
SAMSUNG_GALAXY_S3 ||= Frameit::Device.new("samsung-galaxy-s3", "Samsung Galaxy S3", 3, [[720, 1280], [1280, 720]], 306, nil, Platform::ANDROID)
|
98
|
+
SAMSUNG_GALAXY_S5 ||= Frameit::Device.new("samsung-galaxy-s5", "Samsung Galaxy S5", 3, [[1080, 1920], [1920, 1080]], 432, Color::BLACK, Platform::ANDROID)
|
99
|
+
SAMSUNG_GALAXY_S7 ||= Frameit::Device.new("samsung-galaxy-s7", "Samsung Galaxy S7", 4, [[1440, 2560], [2560, 1440]], 577, Color::BLACK, Platform::ANDROID)
|
100
|
+
SAMSUNG_GALAXY_S8 ||= Frameit::Device.new("samsung-galaxy-s8", "Samsung Galaxy S8", 5, [[1440, 2960], [2960, 1440]], 570, Color::MIDNIGHT_BLACK, Platform::ANDROID)
|
101
|
+
SAMSUNG_GALAXY_S9 ||= Frameit::Device.new("samsung-galaxy-s9", "Samsung Galaxy S9", 6, [[1440, 2960], [2960, 1440]], 570, Color::MIDNIGHT_BLACK, Platform::ANDROID)
|
102
|
+
SAMSUNG_GALAXY_S10 ||= Frameit::Device.new("samsung-galaxy-s10", "Samsung Galaxy S10", 7, [[1440, 3040], [3040, 1440]], 550, Color::PRISM_BLACK, Platform::ANDROID)
|
103
|
+
SAMSUNG_GALAXY_S10_PLUS ||= Frameit::Device.new("samsung-galaxy-s10-plus", "Samsung Galaxy S10+", 8, [[1440, 3040], [3040, 1440]], 522, Color::PRISM_BLACK, Platform::ANDROID)
|
104
|
+
XIAOMI_MI_MIX_ALPHA ||= Frameit::Device.new("xiaomi-mi-mix-alpha", "Xiaomi Mi Mix Alpha", 1, [[2088, 2250], [2250, 2088]], 388, nil, Platform::ANDROID)
|
105
|
+
IPHONE_5S ||= Frameit::Device.new("iphone-5s", "Apple iPhone 5s", 2, [[640, 1096], [640, 1136], [1136, 600], [1136, 640]], 326, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_40, :use_legacy_iphone5s)
|
106
|
+
IPHONE_5C ||= Frameit::Device.new("iphone-5c", "Apple iPhone 5c", 2, [[640, 1136], [1136, 640]], 326, Color::WHITE)
|
107
|
+
IPHONE_SE ||= Frameit::Device.new("iphone-se", "Apple iPhone SE", 3, [[640, 1096], [640, 1136], [1136, 600], [1136, 640]], 326, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_40)
|
108
|
+
IPHONE_6S ||= Frameit::Device.new("iphone-6s", "Apple iPhone 6s", 4, [[750, 1334], [1334, 750]], 326, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_47, :use_legacy_iphone6s)
|
109
|
+
IPHONE_6S_PLUS ||= Frameit::Device.new("iphone-6s-plus", "Apple iPhone 6s Plus", 4, [[1242, 2208], [2208, 1242]], 401, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_55, :use_legacy_iphone6s)
|
110
|
+
IPHONE_7 ||= Frameit::Device.new("iphone-7", "Apple iPhone 7", 5, [[750, 1334], [1334, 750]], 326, Color::MATTE_BLACK, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_47, :use_legacy_iphone7)
|
111
|
+
IPHONE_7_PLUS ||= Frameit::Device.new("iphone-7-plus", "Apple iPhone 7 Plus", 5, [[1242, 2208], [2208, 1242]], 401, Color::MATTE_BLACK, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_55, :use_legacy_iphone7)
|
112
|
+
IPHONE_8 ||= Frameit::Device.new("iphone-8", "Apple iPhone 8", 6, [[750, 1334], [1334, 750]], 326, Color::SPACE_GRAY)
|
113
|
+
IPHONE_8_PLUS ||= Frameit::Device.new("iphone-8-plus", "Apple iPhone 8 Plus", 6, [[1080, 1920], [1920, 1080]], 401, Color::SPACE_GRAY)
|
114
|
+
IPHONE_X ||= Frameit::Device.new("iphone-X", "Apple iPhone X", 7, [[1125, 2436], [2436, 1125]], 458, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_58, :use_legacy_iphonex)
|
115
|
+
IPHONE_XS ||= Frameit::Device.new("iphone-XS", "Apple iPhone XS", 8, [[1125, 2436], [2436, 1125]], 458, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_58, :use_legacy_iphonexs)
|
116
|
+
IPHONE_XR ||= Frameit::Device.new("iphone-XR", "Apple iPhone XR", 8, [[828, 1792], [1792, 828]], 326, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_61, :use_legacy_iphonexr)
|
117
|
+
IPHONE_XS_MAX ||= Frameit::Device.new("iphone-XS-Max", "Apple iPhone XS Max", 8, [[1242, 2688], [2688, 1242]], 458, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_65, :use_legacy_iphonexsmax)
|
118
|
+
IPHONE_11 ||= Frameit::Device.new("iphone-11", "Apple iPhone 11", 9, [[828, 1792], [1792, 828]], 326, Color::BLACK, Platform::IOS)
|
119
|
+
IPHONE_11_PRO ||= Frameit::Device.new("iphone-11-pro", "Apple iPhone 11 Pro", 9, [[1125, 2436], [2436, 1125]], 458, Color::SPACE_GRAY, Platform::IOS)
|
120
|
+
IPHONE_11_PRO_MAX ||= Frameit::Device.new("iphone11-pro-max", "Apple iPhone 11 Pro Max", 9, [[1242, 2688], [2688, 1242]], 458, Color::SPACE_GRAY, Platform::IOS)
|
121
|
+
IPAD_10_2 ||= Frameit::Device.new("ipad-10-2", "Apple iPad 10.2", 1, [[1620, 2160], [2160, 1620]], 264, Color::SPACE_GRAY, Platform::IOS)
|
122
|
+
IPAD_AIR_2 ||= Frameit::Device.new("ipad-air-2", "Apple iPad Air 2", 1, [[1536, 2048], [2048, 1536]], 264, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_IPAD)
|
123
|
+
IPAD_AIR_2019 ||= Frameit::Device.new("ipad-air-2019", "Apple iPad Air (2019)", 2, [[1668, 2224], [2224, 1668]], 265, Color::SPACE_GRAY, Platform::IOS)
|
124
|
+
IPAD_MINI_4 ||= Frameit::Device.new("ipad-mini-4", "Apple iPad Mini 4", 2, [[1536, 2048], [2048, 1536]], 324, Color::SPACE_GRAY)
|
125
|
+
IPAD_MINI_2019 ||= Frameit::Device.new("ipad-mini-2019", "Apple iPad Mini (2019)", 3, [[1536, 2048], [2048, 1536]], 324, Color::SPACE_GRAY)
|
126
126
|
# this is 1st or 2nd gen of iPad Pro 12.9:
|
127
|
-
IPAD_PRO
|
127
|
+
IPAD_PRO ||= Frameit::Device.new("ipad-pro", "Apple iPad Pro", 3, [[2048, 2732], [2732, 2048]], 264, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_IPAD_PRO)
|
128
128
|
# 3rd generation:
|
129
|
-
IPAD_PRO_12_9
|
129
|
+
IPAD_PRO_12_9 ||= Frameit::Device.new("ipadPro129", "Apple iPad Pro (12.9-inch) (3rd generation)", 4, [[2048, 2732], [2732, 2048]], 264, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_IPAD_PRO_12_9)
|
130
130
|
# 4th generation:
|
131
|
-
IPAD_PRO_12_9_4
|
131
|
+
IPAD_PRO_12_9_4 ||= Frameit::Device.new("ipadPro129", "Apple iPad Pro (12.9-inch) (4th generation)", 5, [[2048, 2732], [2732, 2048]], 264, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_IPAD_PRO_12_9)
|
132
132
|
# iPad Pro (10.5-inch) is not in frameit-frames repo, but must be included so that we are backward compatible with PR #15373
|
133
133
|
# priority must be lower so that users who didn't copy the frame to their frameit frames folder will not get an error
|
134
134
|
# ID and formatted name must be exactly as specified so that device.detect_device() will select this device if the filename includes them
|
135
|
-
IPAD_PRO_10_5
|
136
|
-
IPAD_PRO_11
|
135
|
+
IPAD_PRO_10_5 ||= Frameit::Device.new("ipad105", "Apple iPad Pro (10.5-inch)", 1, [[1668, 2224], [2224, 1668]], 265, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_IPAD_10_5)
|
136
|
+
IPAD_PRO_11 ||= Frameit::Device.new("ipadPro11", "Apple iPad Pro (11-inch)", 1, [[1668, 2388], [2388, 1668]], 265, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_IPAD_11)
|
137
137
|
|
138
|
-
MAC
|
138
|
+
MAC ||= Frameit::Device.new("mac", "Apple MacBook", 0, [[1280, 800], [1440, 900], [2560, 1600], [2880, 1800]], nil, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::MAC)
|
139
139
|
|
140
140
|
def self.all_device_names_without_apple
|
141
141
|
Devices.constants.map { |c| Devices.const_get(c).formatted_name_without_apple }
|
@@ -53,6 +53,10 @@ module Gym
|
|
53
53
|
generator.asset_packs_path
|
54
54
|
end
|
55
55
|
|
56
|
+
def appstore_info_path
|
57
|
+
generator.appstore_info_path
|
58
|
+
end
|
59
|
+
|
56
60
|
# The generator we need to use for the currently used Xcode version
|
57
61
|
# Since we dropped Xcode 6 support, it's just this class, but maybe we'll have
|
58
62
|
# new classes in the future
|
@@ -141,6 +141,10 @@ module Gym
|
|
141
141
|
Gym.cache[:asset_packs_path] ||= File.join(temporary_output_path, "OnDemandResources")
|
142
142
|
end
|
143
143
|
|
144
|
+
def appstore_info_path
|
145
|
+
Gym.cache[:appstore_info_path] ||= File.join(temporary_output_path, "AppStoreInfo.plist")
|
146
|
+
end
|
147
|
+
|
144
148
|
private
|
145
149
|
|
146
150
|
def normalize_export_options(hash)
|
data/gym/lib/gym/options.rb
CHANGED
@@ -155,7 +155,7 @@ module Gym
|
|
155
155
|
end),
|
156
156
|
FastlaneCore::ConfigItem.new(key: :installer_cert_name,
|
157
157
|
env_name: "GYM_INSTALLER_CERT_NAME",
|
158
|
-
description: "Full name of 3rd Party Mac Developer Installer or
|
158
|
+
description: "Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`",
|
159
159
|
type: String,
|
160
160
|
optional: true),
|
161
161
|
# Very optional
|
data/gym/lib/gym/runner.rb
CHANGED
@@ -40,6 +40,7 @@ module Gym
|
|
40
40
|
move_app_thinning_size_report
|
41
41
|
move_apps_folder
|
42
42
|
move_asset_packs
|
43
|
+
move_appstore_info
|
43
44
|
elsif is_mac
|
44
45
|
path = File.expand_path(Gym.config[:output_directory])
|
45
46
|
compress_and_move_dsym
|
@@ -49,6 +50,7 @@ module Gym
|
|
49
50
|
|
50
51
|
package_app
|
51
52
|
path = move_pkg
|
53
|
+
move_appstore_info
|
52
54
|
return path
|
53
55
|
end
|
54
56
|
copy_files_from_path(File.join(BuildCommandGenerator.archive_path, "Products/usr/local/bin/*")) if Gym.project.command_line_tool?
|
@@ -339,6 +341,18 @@ module Gym
|
|
339
341
|
end
|
340
342
|
end
|
341
343
|
|
344
|
+
# Move the AppStoreInfo.plist folder to the output directory
|
345
|
+
def move_appstore_info
|
346
|
+
if File.exist?(PackageCommandGenerator.appstore_info_path)
|
347
|
+
FileUtils.mv(PackageCommandGenerator.appstore_info_path, File.expand_path(Gym.config[:output_directory]), force: true)
|
348
|
+
appstore_info_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.appstore_info_path))
|
349
|
+
|
350
|
+
UI.success("Successfully exported the AppStoreInfo.plist file:")
|
351
|
+
UI.message(appstore_info_path)
|
352
|
+
appstore_info_path
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
342
356
|
def find_archive_path
|
343
357
|
Dir.glob(File.join(BuildCommandGenerator.build_path, "*.ipa")).last
|
344
358
|
end
|
@@ -35,6 +35,7 @@ module Match
|
|
35
35
|
program :help_formatter, :compact
|
36
36
|
|
37
37
|
global_option('--verbose') { FastlaneCore::Globals.verbose = true }
|
38
|
+
global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
|
38
39
|
|
39
40
|
command :run do |c|
|
40
41
|
c.syntax = 'fastlane match'
|
@@ -76,7 +76,8 @@ module Match
|
|
76
76
|
ignore_profiles_with_different_name: true,
|
77
77
|
team_id: params[:team_id],
|
78
78
|
team_name: params[:team_name],
|
79
|
-
template_name: params[:template_name]
|
79
|
+
template_name: params[:template_name],
|
80
|
+
fail_on_name_taken: params[:fail_on_name_taken]
|
80
81
|
}
|
81
82
|
|
82
83
|
values[:platform] = params[:platform]
|
data/match/lib/match/nuke.rb
CHANGED
@@ -27,6 +27,8 @@ module Match
|
|
27
27
|
|
28
28
|
update_optional_values_depending_on_storage_type(params)
|
29
29
|
|
30
|
+
spaceship_login
|
31
|
+
|
30
32
|
self.storage = Storage.for_mode(params[:storage_mode], {
|
31
33
|
git_url: params[:git_url],
|
32
34
|
shallow_clone: params[:shallow_clone],
|
@@ -41,7 +43,8 @@ module Match
|
|
41
43
|
s3_region: params[:s3_region].to_s,
|
42
44
|
s3_access_key: params[:s3_access_key].to_s,
|
43
45
|
s3_secret_access_key: params[:s3_secret_access_key].to_s,
|
44
|
-
s3_bucket: params[:s3_bucket].to_s
|
46
|
+
s3_bucket: params[:s3_bucket].to_s,
|
47
|
+
team_id: params[:team_id] || Spaceship.client.team_id
|
45
48
|
})
|
46
49
|
self.storage.download
|
47
50
|
|
@@ -93,17 +96,7 @@ module Match
|
|
93
96
|
end
|
94
97
|
end
|
95
98
|
|
96
|
-
|
97
|
-
def prepare_list
|
98
|
-
UI.message("Fetching certificates and profiles...")
|
99
|
-
cert_type = Match.cert_type_sym(type)
|
100
|
-
cert_types = [cert_type]
|
101
|
-
|
102
|
-
prov_types = []
|
103
|
-
prov_types = [:development] if cert_type == :development
|
104
|
-
prov_types = [:appstore, :adhoc, :developer_id] if cert_type == :distribution
|
105
|
-
prov_types = [:enterprise] if cert_type == :enterprise
|
106
|
-
|
99
|
+
def spaceship_login
|
107
100
|
Spaceship.login(params[:username])
|
108
101
|
Spaceship.select_team(team_id: params[:team_id], team_name: params[:team_name])
|
109
102
|
|
@@ -116,6 +109,18 @@ module Match
|
|
116
109
|
|
117
110
|
UI.user_error!("Enterprise account nuke cancelled") unless UI.confirm("Do you really want to nuke your Enterprise account?")
|
118
111
|
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# Collect all the certs/profiles
|
115
|
+
def prepare_list
|
116
|
+
UI.message("Fetching certificates and profiles...")
|
117
|
+
cert_type = Match.cert_type_sym(type)
|
118
|
+
cert_types = [cert_type]
|
119
|
+
|
120
|
+
prov_types = []
|
121
|
+
prov_types = [:development] if cert_type == :development
|
122
|
+
prov_types = [:appstore, :adhoc, :developer_id] if cert_type == :distribution
|
123
|
+
prov_types = [:enterprise] if cert_type == :enterprise
|
119
124
|
|
120
125
|
# Get all iOS and macOS profile
|
121
126
|
self.profiles = []
|
@@ -141,15 +146,15 @@ module Match
|
|
141
146
|
certs = []
|
142
147
|
keys = []
|
143
148
|
cert_types.each do |ct|
|
144
|
-
certs +=
|
145
|
-
keys +=
|
149
|
+
certs += self.storage.list_files(file_name: ct.to_s, file_ext: "cer")
|
150
|
+
keys += self.storage.list_files(file_name: ct.to_s, file_ext: "p12")
|
146
151
|
end
|
147
152
|
|
148
153
|
# Finds all the iOS and macOS profofiles in the file storage
|
149
154
|
profiles = []
|
150
155
|
prov_types.each do |prov_type|
|
151
|
-
profiles +=
|
152
|
-
profiles +=
|
156
|
+
profiles += self.storage.list_files(file_name: prov_type.to_s, file_ext: "mobileprovision")
|
157
|
+
profiles += self.storage.list_files(file_name: prov_type.to_s, file_ext: "provisionprofile")
|
153
158
|
end
|
154
159
|
|
155
160
|
self.files = certs + keys + profiles
|