fastlane 2.159.0 → 2.160.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +78 -78
  3. data/deliver/lib/deliver/options.rb +17 -1
  4. data/deliver/lib/deliver/runner.rb +36 -8
  5. data/deliver/lib/deliver/upload_metadata.rb +31 -5
  6. data/deliver/lib/deliver/upload_price_tier.rb +7 -2
  7. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +1 -0
  8. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -0
  9. data/fastlane/lib/fastlane/actions/download_dsyms.rb +30 -6
  10. data/fastlane/lib/fastlane/version.rb +1 -1
  11. data/fastlane/swift/Deliverfile.swift +1 -1
  12. data/fastlane/swift/DeliverfileProtocol.swift +10 -2
  13. data/fastlane/swift/Fastlane.swift +53 -20
  14. data/fastlane/swift/Gymfile.swift +1 -1
  15. data/fastlane/swift/GymfileProtocol.swift +1 -1
  16. data/fastlane/swift/Matchfile.swift +1 -1
  17. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  18. data/fastlane/swift/Precheckfile.swift +1 -1
  19. data/fastlane/swift/PrecheckfileProtocol.swift +9 -1
  20. data/fastlane/swift/Scanfile.swift +1 -1
  21. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  22. data/fastlane/swift/Screengrabfile.swift +1 -1
  23. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  24. data/fastlane/swift/Snapshotfile.swift +1 -1
  25. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  26. data/frameit/lib/frameit/editor.rb +1 -0
  27. data/pilot/lib/pilot/options.rb +2 -2
  28. data/precheck/lib/precheck/options.rb +16 -0
  29. data/precheck/lib/precheck/runner.rb +20 -1
  30. data/spaceship/lib/spaceship/connect_api/models/app.rb +17 -9
  31. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
  32. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -2
  33. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +3 -5
  34. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +3 -5
  35. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +11 -6
  36. metadata +16 -18
  37. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
  38. data/spaceship/lib/spaceship/connect_api/models/.app_store_version.rb.swp +0 -0
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.159.0'.freeze
2
+ VERSION = '2.160.0'.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
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -2,6 +2,12 @@
2
2
  // Copyright (c) 2020 FastlaneTools
3
3
 
4
4
  public protocol DeliverfileProtocol: class {
5
+ /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
6
+ var apiKeyPath: String? { get }
7
+
8
+ /// Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
9
+ var apiKey: [String: Any]? { get }
10
+
5
11
  /// Your Apple ID Username
6
12
  var username: String { get }
7
13
 
@@ -44,7 +50,7 @@ public protocol DeliverfileProtocol: class {
44
50
  /// Don't upload the metadata (e.g. title, description). This will still upload screenshots
45
51
  var skipMetadata: Bool { get }
46
52
 
47
- /// Don't update app version for submission
53
+ /// Dont create or update the app version that is being prepared for submission
48
54
  var skipAppVersionUpdate: Bool { get }
49
55
 
50
56
  /// Skip the HTML report file verification
@@ -184,6 +190,8 @@ public protocol DeliverfileProtocol: class {
184
190
  }
185
191
 
186
192
  public extension DeliverfileProtocol {
193
+ var apiKeyPath: String? { return nil }
194
+ var apiKey: [String: Any]? { return nil }
187
195
  var username: String { return "" }
188
196
  var appIdentifier: String? { return nil }
189
197
  var appVersion: String? { return nil }
@@ -248,4 +256,4 @@ public extension DeliverfileProtocol {
248
256
 
249
257
  // Please don't remove the lines below
250
258
  // They are used to detect outdated files
251
- // FastlaneRunnerAPIVersion [0.9.42]
259
+ // FastlaneRunnerAPIVersion [0.9.43]
@@ -462,6 +462,8 @@ public func appledoc(input: Any,
462
462
  Alias for the `upload_to_app_store` action
463
463
 
464
464
  - parameters:
465
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
466
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
465
467
  - username: Your Apple ID Username
466
468
  - appIdentifier: The bundle identifier of your app
467
469
  - appVersion: The version that should be edited or created
@@ -476,7 +478,7 @@ public func appledoc(input: Any,
476
478
  - skipBinaryUpload: Skip uploading an ipa or pkg to App Store Connect
477
479
  - skipScreenshots: Don't upload the screenshots
478
480
  - skipMetadata: Don't upload the metadata (e.g. title, description). This will still upload screenshots
479
- - skipAppVersionUpdate: Don't update app version for submission
481
+ - skipAppVersionUpdate: Dont create or update the app version that is being prepared for submission
480
482
  - force: Skip the HTML report file verification
481
483
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
482
484
  - submitForReview: Submit the new version for Review after uploading everything
@@ -530,7 +532,9 @@ public func appledoc(input: Any,
530
532
  `_upload_to_app_store_(force: true)`
531
533
  If your account is on multiple teams and you need to tell the `iTMSTransporter` which 'provider' to use, you can set the `:itc_provider` option to pass this info.
532
534
  */
533
- public func appstore(username: String,
535
+ public func appstore(apiKeyPath: String? = nil,
536
+ apiKey: [String: Any]? = nil,
537
+ username: String,
534
538
  appIdentifier: String? = nil,
535
539
  appVersion: String? = nil,
536
540
  ipa: String? = nil,
@@ -591,7 +595,9 @@ public func appstore(username: String,
591
595
  precheckIncludeInAppPurchases: Bool = true,
592
596
  app: Any)
593
597
  {
594
- let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
598
+ let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
599
+ RubyCommand.Argument(name: "api_key", value: apiKey),
600
+ RubyCommand.Argument(name: "username", value: username),
595
601
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
596
602
  RubyCommand.Argument(name: "app_version", value: appVersion),
597
603
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -1951,6 +1957,8 @@ public func chatwork(apiToken: String,
1951
1957
  Check your app's metadata before you submit your app to review (via _precheck_)
1952
1958
 
1953
1959
  - parameters:
1960
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
1961
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
1954
1962
  - appIdentifier: The bundle identifier of your app
1955
1963
  - username: Your Apple ID Username
1956
1964
  - teamId: The ID of your App Store Connect team if you're in multiple teams
@@ -1973,7 +1981,9 @@ public func chatwork(apiToken: String,
1973
1981
 
1974
1982
  More information: https://fastlane.tools/precheck
1975
1983
  */
1976
- public func checkAppStoreMetadata(appIdentifier: String,
1984
+ public func checkAppStoreMetadata(apiKeyPath: String? = nil,
1985
+ apiKey: [String: Any]? = nil,
1986
+ appIdentifier: String,
1977
1987
  username: String,
1978
1988
  teamId: String? = nil,
1979
1989
  teamName: String? = nil,
@@ -1991,7 +2001,9 @@ public func checkAppStoreMetadata(appIdentifier: String,
1991
2001
  copyrightDate: Any? = nil,
1992
2002
  unreachableUrls: Any? = nil)
1993
2003
  {
1994
- let command = RubyCommand(commandID: "", methodName: "check_app_store_metadata", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2004
+ let command = RubyCommand(commandID: "", methodName: "check_app_store_metadata", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
2005
+ RubyCommand.Argument(name: "api_key", value: apiKey),
2006
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1995
2007
  RubyCommand.Argument(name: "username", value: username),
1996
2008
  RubyCommand.Argument(name: "team_id", value: teamId),
1997
2009
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -2562,6 +2574,8 @@ public func deleteKeychain(name: String? = nil,
2562
2574
  Alias for the `upload_to_app_store` action
2563
2575
 
2564
2576
  - parameters:
2577
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
2578
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
2565
2579
  - username: Your Apple ID Username
2566
2580
  - appIdentifier: The bundle identifier of your app
2567
2581
  - appVersion: The version that should be edited or created
@@ -2576,7 +2590,7 @@ public func deleteKeychain(name: String? = nil,
2576
2590
  - skipBinaryUpload: Skip uploading an ipa or pkg to App Store Connect
2577
2591
  - skipScreenshots: Don't upload the screenshots
2578
2592
  - skipMetadata: Don't upload the metadata (e.g. title, description). This will still upload screenshots
2579
- - skipAppVersionUpdate: Don't update app version for submission
2593
+ - skipAppVersionUpdate: Dont create or update the app version that is being prepared for submission
2580
2594
  - force: Skip the HTML report file verification
2581
2595
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
2582
2596
  - submitForReview: Submit the new version for Review after uploading everything
@@ -2630,7 +2644,9 @@ public func deleteKeychain(name: String? = nil,
2630
2644
  `_upload_to_app_store_(force: true)`
2631
2645
  If your account is on multiple teams and you need to tell the `iTMSTransporter` which 'provider' to use, you can set the `:itc_provider` option to pass this info.
2632
2646
  */
2633
- public func deliver(username: Any = deliverfile.username,
2647
+ public func deliver(apiKeyPath: Any? = deliverfile.apiKeyPath,
2648
+ apiKey: [String: Any]? = deliverfile.apiKey,
2649
+ username: Any = deliverfile.username,
2634
2650
  appIdentifier: Any? = deliverfile.appIdentifier,
2635
2651
  appVersion: Any? = deliverfile.appVersion,
2636
2652
  ipa: Any? = deliverfile.ipa,
@@ -2691,7 +2707,9 @@ public func deliver(username: Any = deliverfile.username,
2691
2707
  precheckIncludeInAppPurchases: Bool = deliverfile.precheckIncludeInAppPurchases,
2692
2708
  app: Any = deliverfile.app)
2693
2709
  {
2694
- let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2710
+ let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
2711
+ RubyCommand.Argument(name: "api_key", value: apiKey),
2712
+ RubyCommand.Argument(name: "username", value: username),
2695
2713
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2696
2714
  RubyCommand.Argument(name: "app_version", value: appVersion),
2697
2715
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -2831,6 +2849,7 @@ public func download(url: String) {
2831
2849
  - version: The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs
2832
2850
  - buildNumber: The app build_number for dSYMs you wish to download
2833
2851
  - minVersion: The minimum app version for dSYMs you wish to download
2852
+ - afterUploadedDate: The uploaded date after which you wish to download dSYMs
2834
2853
  - outputDirectory: Where to save the download dSYMs, defaults to the current path
2835
2854
  - waitForDsymProcessing: Wait for dSYMs to process
2836
2855
  - waitTimeout: Number of seconds to wait for dSYMs to process
@@ -2854,6 +2873,7 @@ public func downloadDsyms(username: String,
2854
2873
  version: String? = nil,
2855
2874
  buildNumber: Any? = nil,
2856
2875
  minVersion: String? = nil,
2876
+ afterUploadedDate: String? = nil,
2857
2877
  outputDirectory: String? = nil,
2858
2878
  waitForDsymProcessing: Bool = false,
2859
2879
  waitTimeout: Int = 300)
@@ -2866,6 +2886,7 @@ public func downloadDsyms(username: String,
2866
2886
  RubyCommand.Argument(name: "version", value: version),
2867
2887
  RubyCommand.Argument(name: "build_number", value: buildNumber),
2868
2888
  RubyCommand.Argument(name: "min_version", value: minVersion),
2889
+ RubyCommand.Argument(name: "after_uploaded_date", value: afterUploadedDate),
2869
2890
  RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2870
2891
  RubyCommand.Argument(name: "wait_for_dsym_processing", value: waitForDsymProcessing),
2871
2892
  RubyCommand.Argument(name: "wait_timeout", value: waitTimeout)])
@@ -5184,8 +5205,8 @@ public func pem(development: Bool = false,
5184
5205
  Alias for the `upload_to_testflight` action
5185
5206
 
5186
5207
  - parameters:
5187
- - apiKeyPath: Path to your App Store Connect API key JSON file
5188
- - apiKey: Path to your App Store Connect API key JSON file
5208
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
5209
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
5189
5210
  - username: Your Apple ID Username
5190
5211
  - appIdentifier: The bundle identifier of the app to upload or manage testers (optional)
5191
5212
  - appPlatform: The platform to use (optional)
@@ -5472,6 +5493,8 @@ public func podioItem(clientId: String,
5472
5493
  Alias for the `check_app_store_metadata` action
5473
5494
 
5474
5495
  - parameters:
5496
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
5497
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
5475
5498
  - appIdentifier: The bundle identifier of your app
5476
5499
  - username: Your Apple ID Username
5477
5500
  - teamId: The ID of your App Store Connect team if you're in multiple teams
@@ -5485,7 +5508,9 @@ public func podioItem(clientId: String,
5485
5508
 
5486
5509
  More information: https://fastlane.tools/precheck
5487
5510
  */
5488
- public func precheck(appIdentifier: Any = precheckfile.appIdentifier,
5511
+ public func precheck(apiKeyPath: Any? = precheckfile.apiKeyPath,
5512
+ apiKey: [String: Any]? = precheckfile.apiKey,
5513
+ appIdentifier: Any = precheckfile.appIdentifier,
5489
5514
  username: Any = precheckfile.username,
5490
5515
  teamId: Any? = precheckfile.teamId,
5491
5516
  teamName: Any? = precheckfile.teamName,
@@ -5494,7 +5519,9 @@ public func precheck(appIdentifier: Any = precheckfile.appIdentifier,
5494
5519
  includeInAppPurchases: Bool = precheckfile.includeInAppPurchases,
5495
5520
  freeStuffInIap: Any? = precheckfile.freeStuffInIap)
5496
5521
  {
5497
- let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5522
+ let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
5523
+ RubyCommand.Argument(name: "api_key", value: apiKey),
5524
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5498
5525
  RubyCommand.Argument(name: "username", value: username),
5499
5526
  RubyCommand.Argument(name: "team_id", value: teamId),
5500
5527
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -7762,8 +7789,8 @@ public func testfairy(apiKey: String,
7762
7789
  Alias for the `upload_to_testflight` action
7763
7790
 
7764
7791
  - parameters:
7765
- - apiKeyPath: Path to your App Store Connect API key JSON file
7766
- - apiKey: Path to your App Store Connect API key JSON file
7792
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
7793
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
7767
7794
  - username: Your Apple ID Username
7768
7795
  - appIdentifier: The bundle identifier of the app to upload or manage testers (optional)
7769
7796
  - appPlatform: The platform to use (optional)
@@ -8356,6 +8383,8 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
8356
8383
  Upload metadata and binary to App Store Connect (via _deliver_)
8357
8384
 
8358
8385
  - parameters:
8386
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
8387
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
8359
8388
  - username: Your Apple ID Username
8360
8389
  - appIdentifier: The bundle identifier of your app
8361
8390
  - appVersion: The version that should be edited or created
@@ -8370,7 +8399,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
8370
8399
  - skipBinaryUpload: Skip uploading an ipa or pkg to App Store Connect
8371
8400
  - skipScreenshots: Don't upload the screenshots
8372
8401
  - skipMetadata: Don't upload the metadata (e.g. title, description). This will still upload screenshots
8373
- - skipAppVersionUpdate: Don't update app version for submission
8402
+ - skipAppVersionUpdate: Dont create or update the app version that is being prepared for submission
8374
8403
  - force: Skip the HTML report file verification
8375
8404
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
8376
8405
  - submitForReview: Submit the new version for Review after uploading everything
@@ -8424,7 +8453,9 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
8424
8453
  `_upload_to_app_store_(force: true)`
8425
8454
  If your account is on multiple teams and you need to tell the `iTMSTransporter` which 'provider' to use, you can set the `:itc_provider` option to pass this info.
8426
8455
  */
8427
- public func uploadToAppStore(username: String,
8456
+ public func uploadToAppStore(apiKeyPath: String? = nil,
8457
+ apiKey: [String: Any]? = nil,
8458
+ username: String,
8428
8459
  appIdentifier: String? = nil,
8429
8460
  appVersion: String? = nil,
8430
8461
  ipa: String? = nil,
@@ -8485,7 +8516,9 @@ public func uploadToAppStore(username: String,
8485
8516
  precheckIncludeInAppPurchases: Bool = true,
8486
8517
  app: Any)
8487
8518
  {
8488
- let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
8519
+ let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
8520
+ RubyCommand.Argument(name: "api_key", value: apiKey),
8521
+ RubyCommand.Argument(name: "username", value: username),
8489
8522
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
8490
8523
  RubyCommand.Argument(name: "app_version", value: appVersion),
8491
8524
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -8711,8 +8744,8 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
8711
8744
  Upload new binary to App Store Connect for TestFlight beta testing (via _pilot_)
8712
8745
 
8713
8746
  - parameters:
8714
- - apiKeyPath: Path to your App Store Connect API key JSON file
8715
- - apiKey: Path to your App Store Connect API key JSON file
8747
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
8748
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
8716
8749
  - username: Your Apple ID Username
8717
8750
  - appIdentifier: The bundle identifier of the app to upload or manage testers (optional)
8718
8751
  - appPlatform: The platform to use (optional)
@@ -9273,4 +9306,4 @@ public let snapshotfile = Snapshotfile()
9273
9306
 
9274
9307
  // Please don't remove the lines below
9275
9308
  // They are used to detect outdated files
9276
- // FastlaneRunnerAPIVersion [0.9.95]
9309
+ // FastlaneRunnerAPIVersion [0.9.96]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -184,4 +184,4 @@ public extension GymfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.45]
187
+ // FastlaneRunnerAPIVersion [0.9.46]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -168,4 +168,4 @@ public extension MatchfileProtocol {
168
168
 
169
169
  // Please don't remove the lines below
170
170
  // They are used to detect outdated files
171
- // FastlaneRunnerAPIVersion [0.9.39]
171
+ // FastlaneRunnerAPIVersion [0.9.40]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -2,6 +2,12 @@
2
2
  // Copyright (c) 2020 FastlaneTools
3
3
 
4
4
  public protocol PrecheckfileProtocol: class {
5
+ /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
6
+ var apiKeyPath: String? { get }
7
+
8
+ /// Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
9
+ var apiKey: [String: Any]? { get }
10
+
5
11
  /// The bundle identifier of your app
6
12
  var appIdentifier: String { get }
7
13
 
@@ -28,6 +34,8 @@ public protocol PrecheckfileProtocol: class {
28
34
  }
29
35
 
30
36
  public extension PrecheckfileProtocol {
37
+ var apiKeyPath: String? { return nil }
38
+ var apiKey: [String: Any]? { return nil }
31
39
  var appIdentifier: String { return "" }
32
40
  var username: String { return "" }
33
41
  var teamId: String? { return nil }
@@ -40,4 +48,4 @@ public extension PrecheckfileProtocol {
40
48
 
41
49
  // Please don't remove the lines below
42
50
  // They are used to detect outdated files
43
- // FastlaneRunnerAPIVersion [0.9.38]
51
+ // FastlaneRunnerAPIVersion [0.9.39]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -260,4 +260,4 @@ public extension ScanfileProtocol {
260
260
 
261
261
  // Please don't remove the lines below
262
262
  // They are used to detect outdated files
263
- // FastlaneRunnerAPIVersion [0.9.50]
263
+ // FastlaneRunnerAPIVersion [0.9.51]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.40]
99
+ // FastlaneRunnerAPIVersion [0.9.41]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.159.0
20
+ // Generated with fastlane 2.160.0
@@ -184,4 +184,4 @@ public extension SnapshotfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.34]
187
+ // FastlaneRunnerAPIVersion [0.9.35]
@@ -429,6 +429,7 @@ module Frameit
429
429
  # Add the actual title
430
430
  text_image.combine_options do |i|
431
431
  i.font(current_font) if current_font
432
+ i.weight(@config[key.to_s]['font_weight']) if @config[key.to_s]['font_weight']
432
433
  i.gravity("Center")
433
434
  i.pointsize(actual_font_size(key))
434
435
  i.draw("text 0,0 '#{text}'")
@@ -12,7 +12,7 @@ module Pilot
12
12
  [
13
13
  FastlaneCore::ConfigItem.new(key: :api_key_path,
14
14
  env_name: "PILOT_API_KEY_PATH",
15
- description: "Path to your App Store Connect API key JSON file",
15
+ description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
16
16
  optional: true,
17
17
  conflicting_options: [:username],
18
18
  verify_block: proc do |value|
@@ -20,7 +20,7 @@ module Pilot
20
20
  end),
21
21
  FastlaneCore::ConfigItem.new(key: :api_key,
22
22
  env_name: "PILOT_API_KEY",
23
- description: "Path to your App Store Connect API key JSON file",
23
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
24
24
  type: Hash,
25
25
  optional: true,
26
26
  sensitive: true,
@@ -25,6 +25,22 @@ module Precheck
25
25
  user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
26
26
 
27
27
  [
28
+ FastlaneCore::ConfigItem.new(key: :api_key_path,
29
+ env_name: "PRECHECK_API_KEY_PATH",
30
+ description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
31
+ optional: true,
32
+ conflicting_options: [:username],
33
+ verify_block: proc do |value|
34
+ UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
35
+ end),
36
+ FastlaneCore::ConfigItem.new(key: :api_key,
37
+ env_name: "PRECHECK_API_KEY",
38
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
39
+ type: Hash,
40
+ optional: true,
41
+ sensitive: true,
42
+ conflicting_options: [:api_key_path, :username]),
43
+
28
44
  FastlaneCore::ConfigItem.new(key: :app_identifier,
29
45
  short_option: "-a",
30
46
  env_name: "PRECHECK_APP_IDENTIFIER",
@@ -18,7 +18,20 @@ module Precheck
18
18
  hide_keys: [:output_path],
19
19
  title: "Summary for precheck #{Fastlane::VERSION}")
20
20
 
21
- unless Spaceship::Tunes.client
21
+ if api_token
22
+
23
+ # As of 2020-09-15, App Store Connect API does not have support for IAPs yet
24
+ # This means that API Key will fail if checking for IAPs.
25
+ #
26
+ # There is also a check in Deliver::Runner for this.
27
+ # Please remove check in Deliver when the API support IAPs.
28
+ if Precheck.config[:include_in_app_purchases]
29
+ UI.user_error!("Precheck cannot check In-app purchases with the App Store Connect API Key (yet). Exclude In-app purchases from precheck or use Apple ID login")
30
+ end
31
+
32
+ UI.message("Creating authorization token for App Store Connect API")
33
+ Spaceship::ConnectAPI.token = api_token
34
+ elsif Spaceship::Tunes.client.nil?
22
35
  # Team selection passed though FASTLANE_ITC_TEAM_ID and FASTLANE_ITC_TEAM_NAME environment variables
23
36
  # Prompts select team if multiple teams and none specified
24
37
  UI.message("Starting login with user '#{Precheck.config[:username]}'")
@@ -58,6 +71,12 @@ module Precheck
58
71
  return true
59
72
  end
60
73
 
74
+ def api_token
75
+ @api_token ||= Spaceship::ConnectAPI::Token.create(Precheck.config[:api_key]) if Precheck.config[:api_key]
76
+ @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Precheck.config[:api_key_path]) if Precheck.config[:api_key_path]
77
+ return @api_token
78
+ end
79
+
61
80
  def print_items_not_checked(processor_result: nil)
62
81
  names = processor_result.items_not_checked.map(&:friendly_name)
63
82
  UI.message("😶 Metadata fields not checked by any rule: #{names.join(', ')}".yellow) if names.length > 0