fastlane 2.241.0 → 2.241.1
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/README.md +43 -43
- data/deliver/lib/deliver/app_screenshot.rb +8 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +1 -17
- 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 +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/produce/lib/produce/developer_center.rb +2 -49
- data/produce/lib/produce/module.rb +0 -21
- data/produce/lib/produce/options.rb +0 -17
- data/produce/lib/produce/service.rb +4 -3
- data/snapshot/lib/snapshot/reports_generator.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +2 -13
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +0 -6
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +0 -16
- metadata +21 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 41082316db6260b452820acb2f6254dd8666b30092363544b46f4bf7da8a372d
|
|
4
|
+
data.tar.gz: 72020a428f0804273e1dbe44b2ae1dcac74b2eede448370932cbf63b94f3d5f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da0f67a4715290e286ef7faf42aa12b73ccc2c3de580f96807b22dda347411b0fb138c21284a91f18f983825555161bd6072556fb980d1c14976a8f76a3a1b8a
|
|
7
|
+
data.tar.gz: c22918d93563fd3181c3f4cf3fa21c48873e16b0130ac8a5453145311943dd34b822e250e85ddcbcaccfc2b843934a355e562654ce2144cfdea6f56f67011b62
|
data/README.md
CHANGED
|
@@ -30,61 +30,61 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
30
30
|
<!-- team:start -->
|
|
31
31
|
<table id='team'>
|
|
32
32
|
<tr>
|
|
33
|
+
<td id='stefan-natchev'>
|
|
34
|
+
<a href='https://github.com/snatchev'>
|
|
35
|
+
<img src='https://github.com/snatchev.png?size=200' width='140'>
|
|
36
|
+
</a>
|
|
37
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
38
|
+
</td>
|
|
33
39
|
<td id='jan-piotrowski'>
|
|
34
40
|
<a href='https://github.com/janpio'>
|
|
35
41
|
<img src='https://github.com/janpio.png?size=200' width='140'>
|
|
36
42
|
</a>
|
|
37
43
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
38
44
|
</td>
|
|
45
|
+
<td id='connor-tumbleson'>
|
|
46
|
+
<a href='https://github.com/ibotpeaches'>
|
|
47
|
+
<img src='https://github.com/ibotpeaches.png?size=200' width='140'>
|
|
48
|
+
</a>
|
|
49
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
50
|
+
</td>
|
|
51
|
+
<td id='felix-krause'>
|
|
52
|
+
<a href='https://github.com/KrauseFx'>
|
|
53
|
+
<img src='https://github.com/KrauseFx.png?size=200' width='140'>
|
|
54
|
+
</a>
|
|
55
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
56
|
+
</td>
|
|
39
57
|
<td id='jérôme-lacoste'>
|
|
40
58
|
<a href='https://github.com/lacostej'>
|
|
41
59
|
<img src='https://github.com/lacostej.png?size=200' width='140'>
|
|
42
60
|
</a>
|
|
43
61
|
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
44
62
|
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
<tr>
|
|
65
|
+
<td id='roger-oba'>
|
|
66
|
+
<a href='https://github.com/rogerluan'>
|
|
67
|
+
<img src='https://github.com/rogerluan.png?size=200' width='140'>
|
|
68
|
+
</a>
|
|
69
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
70
|
+
</td>
|
|
45
71
|
<td id='joshua-liebowitz'>
|
|
46
72
|
<a href='https://github.com/taquitos'>
|
|
47
73
|
<img src='https://github.com/taquitos.png?size=200' width='140'>
|
|
48
74
|
</a>
|
|
49
75
|
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
50
76
|
</td>
|
|
51
|
-
<td id='josh-holtz'>
|
|
52
|
-
<a href='https://github.com/joshdholtz'>
|
|
53
|
-
<img src='https://github.com/joshdholtz.png?size=200' width='140'>
|
|
54
|
-
</a>
|
|
55
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
56
|
-
</td>
|
|
57
|
-
<td id='stefan-natchev'>
|
|
58
|
-
<a href='https://github.com/snatchev'>
|
|
59
|
-
<img src='https://github.com/snatchev.png?size=200' width='140'>
|
|
60
|
-
</a>
|
|
61
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
62
|
-
</td>
|
|
63
|
-
</tr>
|
|
64
|
-
<tr>
|
|
65
77
|
<td id='olivier-halligon'>
|
|
66
78
|
<a href='https://github.com/AliSoftware'>
|
|
67
79
|
<img src='https://github.com/AliSoftware.png?size=200' width='140'>
|
|
68
80
|
</a>
|
|
69
81
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
70
82
|
</td>
|
|
71
|
-
<td id='
|
|
72
|
-
<a href='https://github.com/
|
|
73
|
-
<img src='https://github.com/
|
|
74
|
-
</a>
|
|
75
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
76
|
-
</td>
|
|
77
|
-
<td id='connor-tumbleson'>
|
|
78
|
-
<a href='https://github.com/ibotpeaches'>
|
|
79
|
-
<img src='https://github.com/ibotpeaches.png?size=200' width='140'>
|
|
80
|
-
</a>
|
|
81
|
-
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
82
|
-
</td>
|
|
83
|
-
<td id='roger-oba'>
|
|
84
|
-
<a href='https://github.com/rogerluan'>
|
|
85
|
-
<img src='https://github.com/rogerluan.png?size=200' width='140'>
|
|
83
|
+
<td id='josh-holtz'>
|
|
84
|
+
<a href='https://github.com/joshdholtz'>
|
|
85
|
+
<img src='https://github.com/joshdholtz.png?size=200' width='140'>
|
|
86
86
|
</a>
|
|
87
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
87
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
88
88
|
</td>
|
|
89
89
|
</tr>
|
|
90
90
|
</table>
|
|
@@ -94,24 +94,24 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
94
94
|
_fastlane_ wouldn't be what it is today without the countless hours these former team members have dedicated to the project ❤️
|
|
95
95
|
|
|
96
96
|
<p id='alumni'>
|
|
97
|
-
<a href='https://github.com/endocrimes'>Danielle Tomlinson</a>,
|
|
98
|
-
<a href='https://github.com/crazymanish'>Manish Rathi</a>,
|
|
99
|
-
<a href='https://github.com/ainame'>Satoshi Namai</a>,
|
|
100
|
-
<a href='https://github.com/giginet'>Kohki Miki</a>,
|
|
101
97
|
<a href='https://github.com/lmirosevic'>Luka Mirosevic</a>,
|
|
102
98
|
<a href='https://github.com/minuscorp'>Jorge Revuelta H</a>,
|
|
103
|
-
<a href='https://github.com/mollyIV'>Daniel Jankowski</a>,
|
|
104
|
-
<a href='https://github.com/armcburney'>Andrew McBurney</a>,
|
|
105
|
-
<a href='https://github.com/max-ott'>Max Ott</a>,
|
|
106
|
-
<a href='https://github.com/lucgrabowski'>Łukasz Grabowski</a>,
|
|
107
|
-
<a href='https://github.com/matthewellis'>Matthew Ellis</a>,
|
|
108
|
-
<a href='https://github.com/jdee'>Jimmy Dee</a>,
|
|
109
|
-
<a href='https://github.com/nafu'>Fumiya Nakamura</a>,
|
|
110
|
-
<a href='https://github.com/hjanuschka'>Helmut Januschka</a>,
|
|
111
99
|
<a href='https://github.com/milch'>Manu Wallner</a>,
|
|
100
|
+
<a href='https://github.com/nafu'>Fumiya Nakamura</a>,
|
|
101
|
+
<a href='https://github.com/revolter'>Iulian Onofrei</a>,
|
|
102
|
+
<a href='https://github.com/ainame'>Satoshi Namai</a>,
|
|
112
103
|
<a href='https://github.com/getaaron'>Aaron Brager</a>,
|
|
104
|
+
<a href='https://github.com/hjanuschka'>Helmut Januschka</a>,
|
|
105
|
+
<a href='https://github.com/max-ott'>Max Ott</a>,
|
|
106
|
+
<a href='https://github.com/mollyIV'>Daniel Jankowski</a>,
|
|
107
|
+
<a href='https://github.com/matthewellis'>Matthew Ellis</a>,
|
|
113
108
|
<a href='https://github.com/mgrebenets'>Maksym Grebenets</a>,
|
|
114
|
-
<a href='https://github.com/
|
|
109
|
+
<a href='https://github.com/armcburney'>Andrew McBurney</a>,
|
|
110
|
+
<a href='https://github.com/giginet'>Kohki Miki</a>,
|
|
111
|
+
<a href='https://github.com/endocrimes'>Danielle Tomlinson</a>,
|
|
112
|
+
<a href='https://github.com/crazymanish'>Manish Rathi</a>,
|
|
113
|
+
<a href='https://github.com/jdee'>Jimmy Dee</a>,
|
|
114
|
+
<a href='https://github.com/lucgrabowski'>Łukasz Grabowski</a>
|
|
115
115
|
</p>
|
|
116
116
|
<!-- team:end -->
|
|
117
117
|
|
|
@@ -19,6 +19,7 @@ module Deliver
|
|
|
19
19
|
DisplayType::APP_IPHONE_61 => "iPhone 14 Pro",
|
|
20
20
|
DisplayType::APP_IPHONE_65 => "iPhone XS Max",
|
|
21
21
|
DisplayType::APP_IPHONE_67 => "iPhone 14 Pro Max",
|
|
22
|
+
DisplayType::APP_IPHONE_DUO => "iPhone Duo",
|
|
22
23
|
DisplayType::APP_IPAD_97 => "iPad",
|
|
23
24
|
DisplayType::APP_IPAD_105 => "iPad 10.5",
|
|
24
25
|
DisplayType::APP_IPAD_PRO_3GEN_11 => "iPad 11",
|
|
@@ -100,6 +101,13 @@ module Deliver
|
|
|
100
101
|
[960, 600],
|
|
101
102
|
[960, 640]
|
|
102
103
|
],
|
|
104
|
+
# iPhone Duo outer and inner displays
|
|
105
|
+
DisplayType::APP_IPHONE_DUO => [
|
|
106
|
+
[1398, 2034],
|
|
107
|
+
[2034, 1398],
|
|
108
|
+
[2007, 2853],
|
|
109
|
+
[2853, 2007]
|
|
110
|
+
],
|
|
103
111
|
DisplayType::APP_IPAD_97 => [
|
|
104
112
|
[1024, 748],
|
|
105
113
|
[1024, 768],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.241.
|
|
2
|
+
VERSION = '2.241.1'.freeze
|
|
3
3
|
SUMMARY = "The easiest way to build and release mobile apps.".freeze
|
|
4
4
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
|
5
5
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
|
@@ -3437,8 +3437,6 @@ public func createAppOnManagedPlayStore(jsonKey: OptionalConfigValue<String?> =
|
|
|
3437
3437
|
|
|
3438
3438
|
- parameters:
|
|
3439
3439
|
- username: Your Apple ID Username
|
|
3440
|
-
- 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)
|
|
3441
|
-
- apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)
|
|
3442
3440
|
- appIdentifier: App Identifier (Bundle ID, e.g. com.krausefx.app)
|
|
3443
3441
|
- bundleIdentifierSuffix: App Identifier Suffix (Ignored if App Identifier does not end with .*)
|
|
3444
3442
|
- appName: App Name
|
|
@@ -3463,8 +3461,6 @@ public func createAppOnManagedPlayStore(jsonKey: OptionalConfigValue<String?> =
|
|
|
3463
3461
|
For more information about _produce_, visit its documentation page: [https://docs.fastlane.tools/actions/produce/](https://docs.fastlane.tools/actions/produce/).
|
|
3464
3462
|
*/
|
|
3465
3463
|
public func createAppOnline(username: String,
|
|
3466
|
-
apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
3467
|
-
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
|
3468
3464
|
appIdentifier: String,
|
|
3469
3465
|
bundleIdentifierSuffix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
3470
3466
|
appName: String,
|
|
@@ -3485,8 +3481,6 @@ public func createAppOnline(username: String,
|
|
|
3485
3481
|
itcTeamName: OptionalConfigValue<String?> = .fastlaneDefault(nil))
|
|
3486
3482
|
{
|
|
3487
3483
|
let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
|
|
3488
|
-
let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
|
|
3489
|
-
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
|
3490
3484
|
let appIdentifierArg = RubyCommand.Argument(name: "app_identifier", value: appIdentifier, type: nil)
|
|
3491
3485
|
let bundleIdentifierSuffixArg = bundleIdentifierSuffix.asRubyArgument(name: "bundle_identifier_suffix", type: nil)
|
|
3492
3486
|
let appNameArg = RubyCommand.Argument(name: "app_name", value: appName, type: nil)
|
|
@@ -3506,8 +3500,6 @@ public func createAppOnline(username: String,
|
|
|
3506
3500
|
let itcTeamIdArg = RubyCommand.Argument(name: "itc_team_id", value: itcTeamId, type: nil)
|
|
3507
3501
|
let itcTeamNameArg = itcTeamName.asRubyArgument(name: "itc_team_name", type: nil)
|
|
3508
3502
|
let array: [RubyCommand.Argument?] = [usernameArg,
|
|
3509
|
-
apiKeyPathArg,
|
|
3510
|
-
apiKeyArg,
|
|
3511
3503
|
appIdentifierArg,
|
|
3512
3504
|
bundleIdentifierSuffixArg,
|
|
3513
3505
|
appNameArg,
|
|
@@ -8437,8 +8429,6 @@ public func println(message: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
|
8437
8429
|
|
|
8438
8430
|
- parameters:
|
|
8439
8431
|
- username: Your Apple ID Username
|
|
8440
|
-
- 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)
|
|
8441
|
-
- apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)
|
|
8442
8432
|
- appIdentifier: App Identifier (Bundle ID, e.g. com.krausefx.app)
|
|
8443
8433
|
- bundleIdentifierSuffix: App Identifier Suffix (Ignored if App Identifier does not end with .*)
|
|
8444
8434
|
- appName: App Name
|
|
@@ -8463,8 +8453,6 @@ public func println(message: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
|
8463
8453
|
For more information about _produce_, visit its documentation page: [https://docs.fastlane.tools/actions/produce/](https://docs.fastlane.tools/actions/produce/).
|
|
8464
8454
|
*/
|
|
8465
8455
|
public func produce(username: String,
|
|
8466
|
-
apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
8467
|
-
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
|
8468
8456
|
appIdentifier: String,
|
|
8469
8457
|
bundleIdentifierSuffix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
8470
8458
|
appName: String,
|
|
@@ -8485,8 +8473,6 @@ public func produce(username: String,
|
|
|
8485
8473
|
itcTeamName: OptionalConfigValue<String?> = .fastlaneDefault(nil))
|
|
8486
8474
|
{
|
|
8487
8475
|
let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
|
|
8488
|
-
let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
|
|
8489
|
-
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
|
8490
8476
|
let appIdentifierArg = RubyCommand.Argument(name: "app_identifier", value: appIdentifier, type: nil)
|
|
8491
8477
|
let bundleIdentifierSuffixArg = bundleIdentifierSuffix.asRubyArgument(name: "bundle_identifier_suffix", type: nil)
|
|
8492
8478
|
let appNameArg = RubyCommand.Argument(name: "app_name", value: appName, type: nil)
|
|
@@ -8506,8 +8492,6 @@ public func produce(username: String,
|
|
|
8506
8492
|
let itcTeamIdArg = RubyCommand.Argument(name: "itc_team_id", value: itcTeamId, type: nil)
|
|
8507
8493
|
let itcTeamNameArg = itcTeamName.asRubyArgument(name: "itc_team_name", type: nil)
|
|
8508
8494
|
let array: [RubyCommand.Argument?] = [usernameArg,
|
|
8509
|
-
apiKeyPathArg,
|
|
8510
|
-
apiKeyArg,
|
|
8511
8495
|
appIdentifierArg,
|
|
8512
8496
|
bundleIdentifierSuffixArg,
|
|
8513
8497
|
appNameArg,
|
|
@@ -14261,4 +14245,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
|
14261
14245
|
|
|
14262
14246
|
// Please don't remove the lines below
|
|
14263
14247
|
// They are used to detect outdated files
|
|
14264
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
14248
|
+
// FastlaneRunnerAPIVersion [0.9.210]
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
require 'ostruct'
|
|
2
1
|
require 'spaceship'
|
|
3
2
|
require_relative 'module'
|
|
4
|
-
require_relative 'service'
|
|
5
3
|
|
|
6
4
|
module Produce
|
|
7
5
|
class DeveloperCenter
|
|
@@ -88,8 +86,6 @@ module Produce
|
|
|
88
86
|
end
|
|
89
87
|
|
|
90
88
|
def create_new_app
|
|
91
|
-
return create_new_app_via_connect_api if using_connect_api?
|
|
92
|
-
|
|
93
89
|
ENV["CREATED_NEW_APP_ID"] = Time.now.to_i.to_s
|
|
94
90
|
if app_exists?
|
|
95
91
|
UI.success("[DevCenter] App '#{Produce.config[:app_identifier]}' already exists, nothing to do on the Dev Center")
|
|
@@ -122,31 +118,6 @@ module Produce
|
|
|
122
118
|
return true
|
|
123
119
|
end
|
|
124
120
|
|
|
125
|
-
# App Store Connect API key path — used instead of Spaceship.login.
|
|
126
|
-
def create_new_app_via_connect_api
|
|
127
|
-
config_enabled_services = Produce.config[:enable_services] || Produce.config[:enabled_features]
|
|
128
|
-
|
|
129
|
-
existing = Spaceship::ConnectAPI::BundleId.find(app_identifier)
|
|
130
|
-
if existing
|
|
131
|
-
UI.success("[DevCenter] App '#{Produce.config[:app_identifier]}' already exists, nothing to do on the Dev Center")
|
|
132
|
-
return true
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
app_name = Produce.config[:app_name]
|
|
136
|
-
UI.message("Creating new app '#{app_name}' on the Apple Dev Center")
|
|
137
|
-
|
|
138
|
-
connect_api_platform = Spaceship::ConnectAPI::BundleIdPlatform.map(platform)
|
|
139
|
-
bundle_id = Spaceship::ConnectAPI::BundleId.create(name: app_name, platform: connect_api_platform, identifier: app_identifier)
|
|
140
|
-
|
|
141
|
-
UI.crash!("Something went wrong when creating the new app - it's not listed in the apps list") unless bundle_id
|
|
142
|
-
|
|
143
|
-
UI.message("Created app #{bundle_id.id}")
|
|
144
|
-
enable_inline_services(config_enabled_services) if config_enabled_services && !config_enabled_services.empty?
|
|
145
|
-
UI.success("Finished creating new app '#{app_name}' on the Dev Center")
|
|
146
|
-
|
|
147
|
-
return true
|
|
148
|
-
end
|
|
149
|
-
|
|
150
121
|
def enable_services
|
|
151
122
|
app_service = Spaceship.app_service
|
|
152
123
|
enabled_clean_options = {}
|
|
@@ -190,17 +161,6 @@ module Produce
|
|
|
190
161
|
|
|
191
162
|
private
|
|
192
163
|
|
|
193
|
-
# Delegates to Service#update instead of duplicating its ~40-capability mapping.
|
|
194
|
-
# Skips any capability explicitly marked "off" — meaningless on a brand-new app.
|
|
195
|
-
def enable_inline_services(config_enabled_services)
|
|
196
|
-
to_enable = config_enabled_services.reject { |_, v| v == SERVICE_OFF }
|
|
197
|
-
return if to_enable.empty?
|
|
198
|
-
|
|
199
|
-
options = OpenStruct.new(to_enable)
|
|
200
|
-
options.define_singleton_method(:__hash__) { to_enable }
|
|
201
|
-
Produce::Service.new.update(true, options)
|
|
202
|
-
end
|
|
203
|
-
|
|
204
164
|
def platform
|
|
205
165
|
# This was added to support creation of multiple platforms
|
|
206
166
|
# Produce::ItunesConnect can take an array of platforms to create for App Store Connect
|
|
@@ -214,16 +174,9 @@ module Produce
|
|
|
214
174
|
Spaceship.app.find(app_identifier, mac: platform == "osx") != nil
|
|
215
175
|
end
|
|
216
176
|
|
|
217
|
-
def using_connect_api?
|
|
218
|
-
!connect_api_token.nil?
|
|
219
|
-
end
|
|
220
|
-
|
|
221
|
-
def connect_api_token
|
|
222
|
-
Spaceship::ConnectAPI::Token.from(hash: Produce.config[:api_key], filepath: Produce.config[:api_key_path])
|
|
223
|
-
end
|
|
224
|
-
|
|
225
177
|
def login
|
|
226
|
-
Produce.
|
|
178
|
+
Spaceship.login(Produce.config[:username], nil)
|
|
179
|
+
Spaceship.select_team
|
|
227
180
|
end
|
|
228
181
|
end
|
|
229
182
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
require 'fastlane_core/helper'
|
|
2
|
-
require 'spaceship'
|
|
3
2
|
|
|
4
3
|
module Produce
|
|
5
4
|
class << self
|
|
@@ -12,24 +11,4 @@ module Produce
|
|
|
12
11
|
|
|
13
12
|
ENV['FASTLANE_TEAM_ID'] ||= ENV["PRODUCE_TEAM_ID"]
|
|
14
13
|
ENV['DELIVER_USER'] ||= ENV["PRODUCE_USERNAME"]
|
|
15
|
-
|
|
16
|
-
# Shared by DeveloperCenter#login and Service#bundle_id. Prefers a configured API key, falls
|
|
17
|
-
# back to a token already set by another lane (e.g. app_store_connect_api_key), then falls
|
|
18
|
-
# back to username-based session login.
|
|
19
|
-
def self.authenticate_connect_api!
|
|
20
|
-
if (token = Spaceship::ConnectAPI::Token.from(hash: Produce.config[:api_key], filepath: Produce.config[:api_key_path]))
|
|
21
|
-
UI.message("Authenticating with App Store Connect API Key")
|
|
22
|
-
|
|
23
|
-
# `current_team_id:` avoids a live, session-based team_id lookup elsewhere in
|
|
24
|
-
# ConnectAPI's provisioning client, which has no session to use here.
|
|
25
|
-
Spaceship::ConnectAPI.client = Spaceship::ConnectAPI::Client.new(token: token, current_team_id: Produce.config[:team_id])
|
|
26
|
-
elsif !Spaceship::ConnectAPI.token.nil?
|
|
27
|
-
UI.message("Using existing authorization token for App Store Connect API")
|
|
28
|
-
else
|
|
29
|
-
UI.message("Starting login with user '#{Produce.config[:username]}'")
|
|
30
|
-
Spaceship.login(Produce.config[:username], nil)
|
|
31
|
-
Spaceship.select_team
|
|
32
|
-
UI.message("Successfully logged in")
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
14
|
end
|
|
@@ -17,23 +17,6 @@ module Produce
|
|
|
17
17
|
code_gen_sensitive: true,
|
|
18
18
|
default_value: user,
|
|
19
19
|
default_value_dynamic: true),
|
|
20
|
-
|
|
21
|
-
# App Store Connect API
|
|
22
|
-
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
|
23
|
-
env_names: ["PRODUCE_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
|
24
|
-
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)",
|
|
25
|
-
optional: true,
|
|
26
|
-
conflicting_options: [:api_key],
|
|
27
|
-
verify_block: proc do |value|
|
|
28
|
-
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
|
29
|
-
end),
|
|
30
|
-
FastlaneCore::ConfigItem.new(key: :api_key,
|
|
31
|
-
env_names: ["PRODUCE_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
|
32
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
|
33
|
-
type: Hash,
|
|
34
|
-
optional: true,
|
|
35
|
-
sensitive: true,
|
|
36
|
-
conflicting_options: [:api_key_path]),
|
|
37
20
|
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
|
38
21
|
env_name: "PRODUCE_APP_IDENTIFIER",
|
|
39
22
|
short_option: "-a",
|
|
@@ -419,9 +419,10 @@ module Produce
|
|
|
419
419
|
|
|
420
420
|
def bundle_id
|
|
421
421
|
return @bundle_id if @bundle_id
|
|
422
|
-
|
|
423
|
-
Produce.
|
|
424
|
-
|
|
422
|
+
UI.message("Starting login with user '#{Produce.config[:username]}'")
|
|
423
|
+
Spaceship.login(Produce.config[:username], nil)
|
|
424
|
+
Spaceship.select_team
|
|
425
|
+
UI.message("Successfully logged in")
|
|
425
426
|
@bundle_id ||= Spaceship::ConnectAPI::BundleId.find(Produce.config[:app_identifier].to_s)
|
|
426
427
|
end
|
|
427
428
|
end
|
|
@@ -84,6 +84,8 @@ module Snapshot
|
|
|
84
84
|
{
|
|
85
85
|
# snapshot in Xcode 9 saves screenshots with the SIMULATOR_DEVICE_NAME
|
|
86
86
|
# which includes spaces
|
|
87
|
+
'iPhone 18 Pro Max' => "iPhone 18 Pro Max",
|
|
88
|
+
'iPhone 18 Pro' => "iPhone 18 Pro",
|
|
87
89
|
'iPhone 17 Pro Max' => "iPhone 17 Pro Max",
|
|
88
90
|
'iPhone 17 Pro' => "iPhone 17 Pro",
|
|
89
91
|
'iPhone 17' => "iPhone 17",
|
|
@@ -19,6 +19,7 @@ module Spaceship
|
|
|
19
19
|
APP_IPHONE_61 = "APP_IPHONE_61"
|
|
20
20
|
APP_IPHONE_65 = "APP_IPHONE_65"
|
|
21
21
|
APP_IPHONE_67 = "APP_IPHONE_67"
|
|
22
|
+
APP_IPHONE_DUO = "APP_IPHONE_DUO"
|
|
22
23
|
|
|
23
24
|
APP_IPAD_97 = "APP_IPAD_97"
|
|
24
25
|
APP_IPAD_105 = "APP_IPAD_105"
|
|
@@ -77,6 +78,7 @@ module Spaceship
|
|
|
77
78
|
APP_IPHONE_61,
|
|
78
79
|
APP_IPHONE_65,
|
|
79
80
|
APP_IPHONE_67,
|
|
81
|
+
APP_IPHONE_DUO,
|
|
80
82
|
|
|
81
83
|
APP_IPAD_97,
|
|
82
84
|
APP_IPAD_105,
|
|
@@ -81,23 +81,12 @@ module Spaceship
|
|
|
81
81
|
return resp.to_models.first
|
|
82
82
|
end
|
|
83
83
|
|
|
84
|
-
# `patch_bundle_id_capability` patches the wrong resource (bundleIds, with
|
|
85
|
-
# attributes nested inside a relationship's `data` entry) — invalid JSON:API,
|
|
86
|
-
# rejected by Apple. This uses the real per-capability endpoints instead:
|
|
87
|
-
# create to enable, PATCH to update settings, delete to disable.
|
|
88
84
|
def update_capability(capability_type, enabled: false, settings: [], client: nil)
|
|
89
85
|
raise "capability_type is required " if capability_type.nil?
|
|
90
86
|
|
|
91
87
|
client ||= Spaceship::ConnectAPI
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if enabled
|
|
95
|
-
return create_capability(capability_type, settings: settings, client: client) unless existing
|
|
96
|
-
return existing.update!(client: client, settings: settings)
|
|
97
|
-
else
|
|
98
|
-
existing&.delete!(client: client)
|
|
99
|
-
return nil
|
|
100
|
-
end
|
|
88
|
+
resp = client.patch_bundle_id_capability(bundle_id_id: id, seed_id: seed_id, enabled: enabled, capability_type: capability_type, settings: settings)
|
|
89
|
+
return resp.to_models.first
|
|
101
90
|
end
|
|
102
91
|
end
|
|
103
92
|
end
|
|
@@ -133,12 +133,6 @@ module Spaceship
|
|
|
133
133
|
client ||= Spaceship::ConnectAPI
|
|
134
134
|
client.delete_bundle_id_capability(bundle_id_capability_id: id)
|
|
135
135
|
end
|
|
136
|
-
|
|
137
|
-
def update!(client: nil, enabled: true, settings: [])
|
|
138
|
-
client ||= Spaceship::ConnectAPI
|
|
139
|
-
resp = client.patch_bundle_id_capability_configuration(bundle_id_capability_id: id, enabled: enabled, settings: settings)
|
|
140
|
-
return resp.to_models.first
|
|
141
|
-
end
|
|
142
136
|
end
|
|
143
137
|
end
|
|
144
138
|
end
|
|
@@ -89,22 +89,6 @@ module Spaceship
|
|
|
89
89
|
provisioning_request_client.post("#{Version::V1}/bundleIdCapabilities", body)
|
|
90
90
|
end
|
|
91
91
|
|
|
92
|
-
# Modify a Capability Configuration — patches the bundleIdCapability resource
|
|
93
|
-
# directly (attributes at the top level), not the bundleId it belongs to.
|
|
94
|
-
def patch_bundle_id_capability_configuration(bundle_id_capability_id:, enabled: false, settings: [])
|
|
95
|
-
body = {
|
|
96
|
-
data: {
|
|
97
|
-
type: "bundleIdCapabilities",
|
|
98
|
-
id: bundle_id_capability_id,
|
|
99
|
-
attributes: {
|
|
100
|
-
enabled: enabled,
|
|
101
|
-
settings: settings
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
provisioning_request_client.patch("#{Version::V1}/bundleIdCapabilities/#{bundle_id_capability_id}", body)
|
|
106
|
-
end
|
|
107
|
-
|
|
108
92
|
def patch_bundle_id_capability(bundle_id_id:, seed_id:, enabled: false, capability_type:, settings: [])
|
|
109
93
|
body = {
|
|
110
94
|
data: {
|
metadata
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.241.
|
|
4
|
+
version: 2.241.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
- Manu Wallner
|
|
9
|
-
- Jan Piotrowski
|
|
10
|
-
- Fumiya Nakamura
|
|
11
|
-
- Satoshi Namai
|
|
7
|
+
- Felix Krause
|
|
12
8
|
- Jimmy Dee
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- Łukasz Grabowski
|
|
16
|
-
- Iulian Onofrei
|
|
17
|
-
- Olivier Halligon
|
|
18
|
-
- Jérôme Lacoste
|
|
19
|
-
- Helmut Januschka
|
|
9
|
+
- Connor Tumbleson
|
|
10
|
+
- Manish Rathi
|
|
20
11
|
- Daniel Jankowski
|
|
21
|
-
-
|
|
22
|
-
- Jorge Revuelta H
|
|
23
|
-
- Aaron Brager
|
|
12
|
+
- Kohki Miki
|
|
24
13
|
- Josh Holtz
|
|
25
|
-
-
|
|
14
|
+
- Manu Wallner
|
|
26
15
|
- Stefan Natchev
|
|
16
|
+
- Olivier Halligon
|
|
17
|
+
- Max Ott
|
|
18
|
+
- Helmut Januschka
|
|
27
19
|
- Luka Mirosevic
|
|
28
|
-
-
|
|
20
|
+
- Satoshi Namai
|
|
29
21
|
- Roger Oba
|
|
30
|
-
- Kohki Miki
|
|
31
|
-
- Felix Krause
|
|
32
|
-
- Joshua Liebowitz
|
|
33
22
|
- Danielle Tomlinson
|
|
23
|
+
- Andrew McBurney
|
|
24
|
+
- Iulian Onofrei
|
|
25
|
+
- Aaron Brager
|
|
26
|
+
- Jan Piotrowski
|
|
27
|
+
- Jérôme Lacoste
|
|
28
|
+
- Jorge Revuelta H
|
|
29
|
+
- Maksym Grebenets
|
|
30
|
+
- Joshua Liebowitz
|
|
31
|
+
- Fumiya Nakamura
|
|
32
|
+
- Łukasz Grabowski
|
|
33
|
+
- Matthew Ellis
|
|
34
34
|
bindir: bin
|
|
35
35
|
cert_chain: []
|
|
36
36
|
date: 1980-01-02 00:00:00.000000000 Z
|