fastlane 2.108.0 → 2.109.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +76 -76
  3. data/deliver/lib/deliver/app_screenshot.rb +22 -1
  4. data/fastlane/lib/fastlane/action_collector.rb +1 -22
  5. data/fastlane/lib/fastlane/actions/appetize.rb +20 -3
  6. data/fastlane/lib/fastlane/actions/docs/build_ios_app.md +12 -9
  7. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +25 -16
  8. data/fastlane/lib/fastlane/actions/pod_push.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/puts.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -0
  11. data/fastlane/lib/fastlane/actions/testfairy.rb +11 -5
  12. data/fastlane/lib/fastlane/fast_file.rb +9 -6
  13. data/fastlane/lib/fastlane/helper/adb_helper.rb +3 -3
  14. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +5 -5
  15. data/fastlane/lib/fastlane/version.rb +1 -1
  16. data/fastlane/swift/Deliverfile.swift +1 -1
  17. data/fastlane/swift/Fastlane.swift +16 -6
  18. data/fastlane/swift/Gymfile.swift +1 -1
  19. data/fastlane/swift/Matchfile.swift +1 -1
  20. data/fastlane/swift/Precheckfile.swift +1 -1
  21. data/fastlane/swift/Scanfile.swift +1 -1
  22. data/fastlane/swift/Screengrabfile.swift +1 -1
  23. data/fastlane/swift/Snapshotfile.swift +1 -1
  24. data/fastlane_core/lib/fastlane_core.rb +0 -1
  25. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +2 -2
  26. data/fastlane_core/lib/fastlane_core/project.rb +9 -11
  27. data/match/lib/match/encryption.rb +33 -9
  28. data/match/lib/match/runner.rb +15 -3
  29. data/match/lib/match/spaceship_ensure.rb +2 -5
  30. data/match/lib/match/storage.rb +29 -7
  31. data/match/lib/match/storage/git_storage.rb +30 -48
  32. data/match/lib/match/storage/interface.rb +39 -1
  33. data/precheck/lib/precheck/rules/other_platforms_rule.rb +4 -1
  34. data/scan/lib/scan/error_handler.rb +8 -1
  35. data/sigh/lib/assets/resign.sh +39 -63
  36. data/snapshot/lib/snapshot/reports_generator.rb +1 -0
  37. data/spaceship/lib/spaceship/client.rb +174 -58
  38. data/spaceship/lib/spaceship/commands_generator.rb +1 -0
  39. data/spaceship/lib/spaceship/du/du_client.rb +18 -12
  40. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  41. data/spaceship/lib/spaceship/tunes/app_submission.rb +2 -1
  42. data/spaceship/lib/spaceship/tunes/device_type.rb +1 -1
  43. data/spaceship/lib/spaceship/tunes/tunes_client.rb +5 -2
  44. data/spaceship/lib/spaceship/{two_step_client.rb → two_step_or_factor_client.rb} +65 -96
  45. data/supply/lib/supply/options.rb +17 -3
  46. data/supply/lib/supply/uploader.rb +12 -5
  47. metadata +17 -19
  48. data/deliver/lib/deliver/.app_screenshot.rb.swp +0 -0
  49. data/fastlane_core/lib/fastlane_core/tool_collector.rb +0 -304
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa3cbd3f3b511d812f34fc84b5e7ad24f186b795
4
- data.tar.gz: ab695f0bb745784889acef0d2d7ff8e0bc4735f6
3
+ metadata.gz: 8823fc5e9d2e0e9ce7c37543dbf4e90e7b4319ca
4
+ data.tar.gz: c048a9ecb12f102fafd217e9701c0eafa449f9f9
5
5
  SHA512:
6
- metadata.gz: bfcabd009bc7c69ab51b39feeb9060643abc9a50691bfcefbbf63dbc117493d309f5cc96eb80e92bb5825167c2715ed5bf85ca8d3e7073d70fd274c843e33da8
7
- data.tar.gz: a1050f6120f8c496bed1e81d322da5f2e42c0811d697d92f4f143acf747bdf6975d78a889f96198796bbe8914c887e69a9fac330452a2bafc90b8c2914b21066
6
+ metadata.gz: 6e2179a0daad831c3a7cd153a76647c541e56f1d8f0fed493134c3ccb123ffe228743cc02011a09ed9f9144124690b1611e465ea20f4d328a38d4ef18183f870
7
+ data.tar.gz: d6a52d5306117c05428b248aae9ac1e11d57e0feb1382d16fe81bd9509265b1dcac66504b1f5d7cebd62be481088027da7883368010a634d7eb8a68d05227fc0
data/README.md CHANGED
@@ -33,61 +33,55 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
33
33
  <!-- This table is regenerated and resorted on each release -->
34
34
  <table id='team'>
35
35
  <tr>
36
- <td id='fumiya-nakamura'>
37
- <a href='https://github.com/nafu'>
38
- <img src='https://github.com/nafu.png?size=140'>
39
- </a>
40
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
41
- </td>
42
- <td id='jorge-revuelta-h'>
43
- <a href='https://github.com/minuscorp'>
44
- <img src='https://github.com/minuscorp.png?size=140'>
36
+ <td id='jimmy-dee'>
37
+ <a href='https://github.com/jdee'>
38
+ <img src='https://github.com/jdee.png?size=140'>
45
39
  </a>
46
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
40
+ <h4 align='center'>Jimmy Dee</h4>
47
41
  </td>
48
- <td id='maksym-grebenets'>
49
- <a href='https://github.com/mgrebenets'>
50
- <img src='https://github.com/mgrebenets.png?size=140'>
42
+ <td id='helmut-januschka'>
43
+ <a href='https://github.com/hjanuschka'>
44
+ <img src='https://github.com/hjanuschka.png?size=140'>
51
45
  </a>
52
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
46
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
53
47
  </td>
54
- <td id='danielle-tomlinson'>
55
- <a href='https://github.com/DanToml'>
56
- <img src='https://github.com/DanToml.png?size=140'>
48
+ <td id='stefan-natchev'>
49
+ <a href='https://github.com/snatchev'>
50
+ <img src='https://github.com/snatchev.png?size=140'>
57
51
  </a>
58
- <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
52
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
59
53
  </td>
60
- <td id='joshua-liebowitz'>
61
- <a href='https://github.com/taquitos'>
62
- <img src='https://github.com/taquitos.png?size=140'>
54
+ <td id='luka-mirosevic'>
55
+ <a href='https://github.com/lmirosevic'>
56
+ <img src='https://github.com/lmirosevic.png?size=140'>
63
57
  </a>
64
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
58
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
65
59
  </td>
66
- </tr>
67
- <tr>
68
60
  <td id='matthew-ellis'>
69
61
  <a href='https://github.com/matthewellis'>
70
62
  <img src='https://github.com/matthewellis.png?size=140'>
71
63
  </a>
72
64
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
73
65
  </td>
74
- <td id='helmut-januschka'>
75
- <a href='https://github.com/hjanuschka'>
76
- <img src='https://github.com/hjanuschka.png?size=140'>
66
+ </tr>
67
+ <tr>
68
+ <td id='jorge-revuelta-h'>
69
+ <a href='https://github.com/minuscorp'>
70
+ <img src='https://github.com/minuscorp.png?size=140'>
77
71
  </a>
78
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
72
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
79
73
  </td>
80
- <td id='josh-holtz'>
81
- <a href='https://github.com/joshdholtz'>
82
- <img src='https://github.com/joshdholtz.png?size=140'>
74
+ <td id='andrew-mcburney'>
75
+ <a href='https://github.com/armcburney'>
76
+ <img src='https://github.com/armcburney.png?size=140'>
83
77
  </a>
84
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
78
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
85
79
  </td>
86
- <td id='manu-wallner'>
87
- <a href='https://github.com/milch'>
88
- <img src='https://github.com/milch.png?size=140'>
80
+ <td id='felix-krause'>
81
+ <a href='https://github.com/KrauseFx'>
82
+ <img src='https://github.com/KrauseFx.png?size=140'>
89
83
  </a>
90
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
84
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
91
85
  </td>
92
86
  <td id='iulian-onofrei'>
93
87
  <a href='https://github.com/revolter'>
@@ -95,69 +89,75 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
95
89
  </a>
96
90
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
97
91
  </td>
92
+ <td id='olivier-halligon'>
93
+ <a href='https://github.com/AliSoftware'>
94
+ <img src='https://github.com/AliSoftware.png?size=140'>
95
+ </a>
96
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
97
+ </td>
98
98
  </tr>
99
99
  <tr>
100
- <td id='jérôme-lacoste'>
101
- <a href='https://github.com/lacostej'>
102
- <img src='https://github.com/lacostej.png?size=140'>
100
+ <td id='maksym-grebenets'>
101
+ <a href='https://github.com/mgrebenets'>
102
+ <img src='https://github.com/mgrebenets.png?size=140'>
103
103
  </a>
104
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
104
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
105
105
  </td>
106
- <td id='felix-krause'>
107
- <a href='https://github.com/KrauseFx'>
108
- <img src='https://github.com/KrauseFx.png?size=140'>
106
+ <td id='fumiya-nakamura'>
107
+ <a href='https://github.com/nafu'>
108
+ <img src='https://github.com/nafu.png?size=140'>
109
109
  </a>
110
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
110
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
111
111
  </td>
112
- <td id='aaron-brager'>
113
- <a href='https://github.com/getaaron'>
114
- <img src='https://github.com/getaaron.png?size=140'>
112
+ <td id='manu-wallner'>
113
+ <a href='https://github.com/milch'>
114
+ <img src='https://github.com/milch.png?size=140'>
115
115
  </a>
116
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
116
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
117
117
  </td>
118
- <td id='luka-mirosevic'>
119
- <a href='https://github.com/lmirosevic'>
120
- <img src='https://github.com/lmirosevic.png?size=140'>
118
+ <td id='jan-piotrowski'>
119
+ <a href='https://github.com/janpio'>
120
+ <img src='https://github.com/janpio.png?size=140'>
121
121
  </a>
122
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
122
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
123
123
  </td>
124
- <td id='andrew-mcburney'>
125
- <a href='https://github.com/armcburney'>
126
- <img src='https://github.com/armcburney.png?size=140'>
124
+ <td id='josh-holtz'>
125
+ <a href='https://github.com/joshdholtz'>
126
+ <img src='https://github.com/joshdholtz.png?size=140'>
127
127
  </a>
128
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
128
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
129
129
  </td>
130
130
  </tr>
131
131
  <tr>
132
- <td id='olivier-halligon'>
133
- <a href='https://github.com/AliSoftware'>
134
- <img src='https://github.com/AliSoftware.png?size=140'>
132
+ <td id='aaron-brager'>
133
+ <a href='https://github.com/getaaron'>
134
+ <img src='https://github.com/getaaron.png?size=140'>
135
135
  </a>
136
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
136
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
137
137
  </td>
138
- <td id='stefan-natchev'>
139
- <a href='https://github.com/snatchev'>
140
- <img src='https://github.com/snatchev.png?size=140'>
138
+ <td id='danielle-tomlinson'>
139
+ <a href='https://github.com/DanToml'>
140
+ <img src='https://github.com/DanToml.png?size=140'>
141
141
  </a>
142
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
142
+ <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
143
143
  </td>
144
- <td id='kohki-miki'>
145
- <a href='https://github.com/giginet'>
146
- <img src='https://github.com/giginet.png?size=140'>
144
+ <td id='jérôme-lacoste'>
145
+ <a href='https://github.com/lacostej'>
146
+ <img src='https://github.com/lacostej.png?size=140'>
147
147
  </a>
148
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
148
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
149
149
  </td>
150
- <td id='jan-piotrowski'>
151
- <a href='https://github.com/janpio'>
152
- <img src='https://github.com/janpio.png?size=140'>
150
+ <td id='joshua-liebowitz'>
151
+ <a href='https://github.com/taquitos'>
152
+ <img src='https://github.com/taquitos.png?size=140'>
153
153
  </a>
154
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
154
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
155
155
  </td>
156
- <td id='jimmy-dee'>
157
- <a href='https://github.com/jdee'>
158
- <img src='https://github.com/jdee.png?size=140'>
156
+ <td id='kohki-miki'>
157
+ <a href='https://github.com/giginet'>
158
+ <img src='https://github.com/giginet.png?size=140'>
159
159
  </a>
160
- <h4 align='center'>Jimmy Dee</h4>
160
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
161
161
  </td>
162
162
  </tr>
163
163
  </table>
@@ -23,6 +23,8 @@ module Deliver
23
23
  IOS_IPAD = "iOS-iPad"
24
24
  # iPad 10.5
25
25
  IOS_IPAD_10_5 = "iOS-iPad-10.5"
26
+ # iPad 11
27
+ IOS_IPAD_11 = "iOS-iPad-11"
26
28
  # iPad Pro
27
29
  IOS_IPAD_PRO = "iOS-iPad-Pro"
28
30
  # iPhone 5 iMessage
@@ -39,6 +41,8 @@ module Deliver
39
41
  IOS_IPAD_MESSAGES = "iOS-iPad-messages"
40
42
  # iPad 10.5 iMessage
41
43
  IOS_IPAD_10_5_MESSAGES = "iOS-10.5-messages"
44
+ # iPad 11 iMessage
45
+ IOS_IPAD_11_MESSAGES = "iOS-11-messages"
42
46
  # iPad Pro iMessage
43
47
  IOS_IPAD_PRO_MESSAGES = "iOS-iPad-Pro-messages"
44
48
  # Apple Watch
@@ -75,6 +79,8 @@ module Deliver
75
79
 
76
80
  # The iTC API requires a different notation for the device
77
81
  def device_type
82
+ # This list does not include iPad Pro 12.9-inch (3rd generation)
83
+ # because it has same resoluation as IOS_IPAD_PRO and will clobber
78
84
  matching = {
79
85
  ScreenSize::IOS_35 => "iphone35",
80
86
  ScreenSize::IOS_40 => "iphone4",
@@ -84,6 +90,7 @@ module Deliver
84
90
  ScreenSize::IOS_65 => "iphone65",
85
91
  ScreenSize::IOS_IPAD => "ipad",
86
92
  ScreenSize::IOS_IPAD_10_5 => "ipad105",
93
+ ScreenSize::IOS_IPAD_11 => "ipadPro11",
87
94
  ScreenSize::IOS_IPAD_PRO => "ipadPro",
88
95
  ScreenSize::IOS_40_MESSAGES => "iphone4",
89
96
  ScreenSize::IOS_47_MESSAGES => "iphone6",
@@ -93,6 +100,7 @@ module Deliver
93
100
  ScreenSize::IOS_IPAD_MESSAGES => "ipad",
94
101
  ScreenSize::IOS_IPAD_PRO_MESSAGES => "ipadPro",
95
102
  ScreenSize::IOS_IPAD_10_5_MESSAGES => "ipad105",
103
+ ScreenSize::IOS_IPAD_11_MESSAGES => "ipadPro11",
96
104
  ScreenSize::MAC => "desktop",
97
105
  ScreenSize::IOS_APPLE_WATCH => "watch",
98
106
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => "watchSeries4",
@@ -103,6 +111,8 @@ module Deliver
103
111
 
104
112
  # Nice name
105
113
  def formatted_name
114
+ # This list does not include iPad Pro 12.9-inch (3rd generation)
115
+ # because it has same resoluation as IOS_IPAD_PRO and will clobber
106
116
  matching = {
107
117
  ScreenSize::IOS_35 => "iPhone 4",
108
118
  ScreenSize::IOS_40 => "iPhone 5",
@@ -112,6 +122,7 @@ module Deliver
112
122
  ScreenSize::IOS_65 => "iPhone XS Max",
113
123
  ScreenSize::IOS_IPAD => "iPad",
114
124
  ScreenSize::IOS_IPAD_10_5 => "iPad 10.5",
125
+ ScreenSize::IOS_IPAD_11 => "iPad 11",
115
126
  ScreenSize::IOS_IPAD_PRO => "iPad Pro",
116
127
  ScreenSize::IOS_40_MESSAGES => "iPhone 5 (iMessage)",
117
128
  ScreenSize::IOS_47_MESSAGES => "iPhone 6 (iMessage)",
@@ -121,6 +132,7 @@ module Deliver
121
132
  ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
122
133
  ScreenSize::IOS_IPAD_PRO_MESSAGES => "iPad Pro (iMessage)",
123
134
  ScreenSize::IOS_IPAD_10_5_MESSAGES => "iPad 10.5 (iMessage)",
135
+ ScreenSize::IOS_IPAD_11_MESSAGES => "iPad 11 (iMessage)",
124
136
  ScreenSize::MAC => "Mac",
125
137
  ScreenSize::IOS_APPLE_WATCH => "Watch",
126
138
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
@@ -145,7 +157,8 @@ module Deliver
145
157
  ScreenSize::IOS_65_MESSAGES,
146
158
  ScreenSize::IOS_IPAD_MESSAGES,
147
159
  ScreenSize::IOS_IPAD_PRO_MESSAGES,
148
- ScreenSize::IOS_IPAD_10_5_MESSAGES
160
+ ScreenSize::IOS_IPAD_10_5_MESSAGES,
161
+ ScreenSize::IOS_IPAD_11_MESSAGES
149
162
  ].include?(self.screen_size)
150
163
  end
151
164
 
@@ -183,6 +196,10 @@ module Deliver
183
196
  [1668, 2224],
184
197
  [2224, 1668]
185
198
  ],
199
+ ScreenSize::IOS_IPAD_11 => [
200
+ [1668, 2388],
201
+ [2388, 1668]
202
+ ],
186
203
  ScreenSize::IOS_IPAD_PRO_MESSAGES => [
187
204
  [2732, 2048],
188
205
  [2048, 2732]
@@ -229,6 +246,10 @@ module Deliver
229
246
  [1668, 2224],
230
247
  [2224, 1668]
231
248
  ],
249
+ ScreenSize::IOS_IPAD_11 => [
250
+ [1668, 2388],
251
+ [2388, 1668]
252
+ ],
232
253
  ScreenSize::IOS_IPAD_PRO => [
233
254
  [2732, 2048],
234
255
  [2048, 2732]
@@ -1,23 +1,5 @@
1
- require 'fastlane_core/tool_collector'
2
-
3
1
  module Fastlane
4
- class ActionCollector < FastlaneCore::ToolCollector
5
- # Is this an official fastlane action, that is bundled with fastlane?
6
- def is_official?(name)
7
- return true if name == :lane_switch
8
- Actions.get_all_official_actions.include?(name)
9
- end
10
-
11
- def name_to_track(name)
12
- return name if is_official?(name)
13
-
14
- Fastlane.plugin_manager.plugin_references.each do |plugin_name, value|
15
- return "#{plugin_name}/#{name}" if value[:actions].include?(name)
16
- end
17
-
18
- return nil
19
- end
20
-
2
+ class ActionCollector
21
3
  def show_message
22
4
  UI.message("Sending Crash/Success information. Learn more at https://docs.fastlane.tools/#metrics")
23
5
  UI.message("No personal/sensitive data is sent. Only sharing the following:")
@@ -36,9 +18,6 @@ module Fastlane
36
18
  # :xcversion
37
19
  # "fastlane-plugin-my_plugin/xcversion"
38
20
  def self.determine_version(name)
39
- result = super(name)
40
- return result if result
41
-
42
21
  if name.to_s.include?(PluginManager.plugin_prefix)
43
22
  # That's an action from a plugin, we need to fetch its version number
44
23
  begin
@@ -4,6 +4,7 @@ module Fastlane
4
4
  APPETIZE_PUBLIC_KEY = :APPETIZE_PUBLIC_KEY
5
5
  APPETIZE_APP_URL = :APPETIZE_APP_URL
6
6
  APPETIZE_MANAGE_URL = :APPETIZE_MANAGE_URL
7
+ APPETIZE_API_HOST = :APPETIZE_API_HOST
7
8
  end
8
9
 
9
10
  class AppetizeAction < Action
@@ -54,7 +55,8 @@ module Fastlane
54
55
  end
55
56
 
56
57
  def self.appetize_url(options)
57
- "https://api.appetize.io/v1/apps/#{options[:public_key]}"
58
+ Actions.lane_context[SharedValues::APPETIZE_API_HOST] = options[:api_host]
59
+ "https://#{options[:api_host]}/v1/apps/#{options[:public_key]}"
58
60
  end
59
61
  private_class_method :appetize_url
60
62
 
@@ -100,6 +102,14 @@ module Fastlane
100
102
 
101
103
  def self.available_options
102
104
  [
105
+ FastlaneCore::ConfigItem.new(key: :api_host,
106
+ env_name: "APPETIZE_API_HOST",
107
+ description: "Appetize API host",
108
+ is_string: true,
109
+ default_value: 'api.appetize.io',
110
+ verify_block: proc do |value|
111
+ UI.user_error!("API host should not contain the scheme e.g. `https`") if value.start_with?('https')
112
+ end),
103
113
  FastlaneCore::ConfigItem.new(key: :api_token,
104
114
  env_name: "APPETIZE_API_TOKEN",
105
115
  sensitive: true,
@@ -143,14 +153,15 @@ module Fastlane
143
153
 
144
154
  def self.output
145
155
  [
146
- ['APPETIZE_PUBLIC_KEY', 'a public identifier for your app. Use this to update your app after it has been initially created'],
156
+ ['APPETIZE_API_HOST', 'Appetize API host.'],
157
+ ['APPETIZE_PUBLIC_KEY', 'a public identifier for your app. Use this to update your app after it has been initially created.'],
147
158
  ['APPETIZE_APP_URL', 'a page to test and share your app.'],
148
159
  ['APPETIZE_MANAGE_URL', 'a page to manage your app.']
149
160
  ]
150
161
  end
151
162
 
152
163
  def self.authors
153
- ["klundberg", "giginet"]
164
+ ["klundberg", "giginet", "steprescott"]
154
165
  end
155
166
 
156
167
  def self.category
@@ -163,6 +174,12 @@ module Fastlane
163
174
  path: "./MyApp.zip",
164
175
  api_token: "yourapitoken", # get it from https://appetize.io/docs#request-api-token
165
176
  public_key: "your_public_key" # get it from https://appetize.io/dashboard
177
+ )',
178
+ 'appetize(
179
+ path: "./MyApp.zip",
180
+ api_host: "company.appetize.io", # only needed for enterprise hosted solution
181
+ api_token: "yourapitoken", # get it from https://appetize.io/docs#request-api-token
182
+ public_key: "your_public_key" # get it from https://appetize.io/dashboard
166
183
  )'
167
184
  ]
168
185
  end
@@ -134,25 +134,28 @@ export_options("./ExportOptions.plist")
134
134
  or you can provide hash of values directly in the `Gymfile`:
135
135
 
136
136
  ```ruby-skip-tests
137
- export_options = {
137
+ export_options({
138
138
  method: "ad-hoc",
139
139
  manifest: {
140
140
  appURL: "https://example.com/My App.ipa",
141
141
  },
142
142
  thinning: "<thin-for-all-variants>"
143
- }
143
+ })
144
144
  ```
145
145
 
146
146
  Optional: If _gym_ can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles:
147
147
 
148
- ```ruby-skip-tests
149
- export_options: {
150
- method: "app-store",
151
- provisioningProfiles: {
152
- "com.example.bundleid" => "Provisioning Profile Name",
153
- "com.example.bundleid2" => "Provisioning Profile Name 2"
148
+ ```ruby
149
+ build_ios_app(
150
+ scheme: "Release",
151
+ export_options: {
152
+ method: "app-store",
153
+ provisioningProfiles: {
154
+ "com.example.bundleid" => "Provisioning Profile Name",
155
+ "com.example.bundleid2" => "Provisioning Profile Name 2"
156
+ }
154
157
  }
155
- }
158
+ )
156
159
  ```
157
160
 
158
161
  **Note**: If you use [_fastlane_](https://fastlane.tools) with [_match_](https://fastlane.tools/match) you don't need to provide those values manually.