fastlane 2.192.0 → 2.195.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/cert/lib/cert/options.rb +1 -1
  4. data/deliver/lib/deliver/options.rb +1 -1
  5. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  6. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/gradle.rb +16 -3
  8. data/fastlane/lib/fastlane/actions/last_git_commit.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/notarize.rb +27 -18
  11. data/fastlane/lib/fastlane/actions/prompt.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/slather.rb +6 -0
  16. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +3 -1
  18. data/fastlane/lib/fastlane/actions/zip.rb +2 -2
  19. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +11 -5
  20. data/fastlane/lib/fastlane/version.rb +1 -1
  21. data/fastlane/swift/Deliverfile.swift +1 -1
  22. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  23. data/fastlane/swift/Fastlane.swift +89 -98
  24. data/fastlane/swift/Gymfile.swift +1 -1
  25. data/fastlane/swift/GymfileProtocol.swift +1 -1
  26. data/fastlane/swift/Matchfile.swift +1 -1
  27. data/fastlane/swift/MatchfileProtocol.swift +11 -3
  28. data/fastlane/swift/Precheckfile.swift +1 -1
  29. data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
  30. data/fastlane/swift/Scanfile.swift +1 -1
  31. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  32. data/fastlane/swift/Screengrabfile.swift +1 -1
  33. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  34. data/fastlane/swift/Snapshotfile.swift +1 -1
  35. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  36. data/fastlane/swift/formatting/Brewfile.lock.json +5 -5
  37. data/fastlane_core/lib/fastlane_core/build_watcher.rb +25 -6
  38. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +5 -0
  39. data/match/lib/match/generator.rb +2 -1
  40. data/match/lib/match/options.rb +12 -2
  41. data/match/lib/match/runner.rb +100 -15
  42. data/pilot/lib/pilot/build_manager.rb +14 -3
  43. data/pilot/lib/pilot/manager.rb +3 -1
  44. data/pilot/lib/pilot/options.rb +21 -2
  45. data/precheck/lib/precheck/options.rb +1 -1
  46. data/sigh/lib/assets/resign.sh +1 -1
  47. data/sigh/lib/sigh/options.rb +6 -1
  48. data/sigh/lib/sigh/runner.rb +2 -2
  49. data/snapshot/lib/snapshot/options.rb +1 -1
  50. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +9 -1
  51. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  52. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  53. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
  54. data/supply/lib/supply/uploader.rb +9 -6
  55. metadata +22 -25
  56. data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -207
  57. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +0 -157
  58. data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1c0c051ec3343adfcc8dcc927954b9fe5e76bf56d813be5d4f0823695dcb835
4
- data.tar.gz: 328239727a6f80cca28a6524784cb2f4e1b39454f0c6f2e2cf036735c26f6811
3
+ metadata.gz: 4cd7eb437e3a1f8298553886732f358e31eef1c3cc91f43d39c8cfa47630962e
4
+ data.tar.gz: 10e833b578831c678fa5515c12cc9fb18c9668d9296871e487571d92ceedeb53
5
5
  SHA512:
6
- metadata.gz: c430d54e72ceb927d096d02ac12578e196194405a6398768656ded1b0274d6fdb1988487d400b6c3e7434e02b82f372ac200959f524afaa9374d385a4ab00a46
7
- data.tar.gz: 3800cfae6b4add96d08f98fa780c721d2444c4e81e1bf24e437e5e7e9f455682b198a7bc63246738fd758da7f0437dfb311d410632b0d22faa4af0e58e7d0301
6
+ metadata.gz: 7bda6c9251396e39f8d88efe075f5684cdd22b6a144732cc472ee711e4b6b192f31a9fb7ec6a387a224d8904e0097596cc13f9cb1006d96d30048f3cba6cd56f
7
+ data.tar.gz: 7a64bc28296e873afa02ac9af4f6c7d48d1d46c328a84218185b840e761f40cf5154385d390b10e024b8bd66a335a811fe9db0d09be2d1a7516f7c3d23c7d870
data/README.md CHANGED
@@ -35,17 +35,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='stefan-natchev'>
39
- <a href='https://github.com/snatchev'>
40
- <img src='https://github.com/snatchev.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
43
- </td>
44
- <td id='maksym-grebenets'>
45
- <a href='https://github.com/mgrebenets'>
46
- <img src='https://github.com/mgrebenets.png' width='140px;'>
38
+ <td id='daniel-jankowski'>
39
+ <a href='https://github.com/mollyIV'>
40
+ <img src='https://github.com/mollyIV.png' width='140px;'>
47
41
  </a>
48
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
49
43
  </td>
50
44
  <td id='aaron-brager'>
51
45
  <a href='https://github.com/getaaron'>
@@ -53,63 +47,101 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
53
47
  </a>
54
48
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
55
49
  </td>
56
- <td id='satoshi-namai'>
57
- <a href='https://github.com/ainame'>
58
- <img src='https://github.com/ainame.png' width='140px;'>
59
- </a>
60
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
61
- </td>
62
50
  <td id='jorge-revuelta-h'>
63
51
  <a href='https://github.com/minuscorp'>
64
52
  <img src='https://github.com/minuscorp.png' width='140px;'>
65
53
  </a>
66
54
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
67
55
  </td>
56
+ <td id='danielle-tomlinson'>
57
+ <a href='https://github.com/endocrimes'>
58
+ <img src='https://github.com/endocrimes.png' width='140px;'>
59
+ </a>
60
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
61
+ </td>
62
+ <td id='jimmy-dee'>
63
+ <a href='https://github.com/jdee'>
64
+ <img src='https://github.com/jdee.png' width='140px;'>
65
+ </a>
66
+ <h4 align='center'>Jimmy Dee</h4>
67
+ </td>
68
68
  </tr>
69
69
  <tr>
70
+ <td id='max-ott'>
71
+ <a href='https://github.com/max-ott'>
72
+ <img src='https://github.com/max-ott.png' width='140px;'>
73
+ </a>
74
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
75
+ </td>
76
+ <td id='josh-holtz'>
77
+ <a href='https://github.com/joshdholtz'>
78
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
79
+ </a>
80
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
81
+ </td>
82
+ <td id='felix-krause'>
83
+ <a href='https://github.com/KrauseFx'>
84
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
85
+ </a>
86
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
87
+ </td>
70
88
  <td id='olivier-halligon'>
71
89
  <a href='https://github.com/AliSoftware'>
72
90
  <img src='https://github.com/AliSoftware.png' width='140px;'>
73
91
  </a>
74
92
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
75
93
  </td>
94
+ <td id='stefan-natchev'>
95
+ <a href='https://github.com/snatchev'>
96
+ <img src='https://github.com/snatchev.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td id='matthew-ellis'>
103
+ <a href='https://github.com/matthewellis'>
104
+ <img src='https://github.com/matthewellis.png' width='140px;'>
105
+ </a>
106
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
107
+ </td>
76
108
  <td id='manu-wallner'>
77
109
  <a href='https://github.com/milch'>
78
110
  <img src='https://github.com/milch.png' width='140px;'>
79
111
  </a>
80
112
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
81
113
  </td>
114
+ <td id='roger-oba'>
115
+ <a href='https://github.com/rogerluan'>
116
+ <img src='https://github.com/rogerluan.png' width='140px;'>
117
+ </a>
118
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
119
+ </td>
82
120
  <td id='joshua-liebowitz'>
83
121
  <a href='https://github.com/taquitos'>
84
122
  <img src='https://github.com/taquitos.png' width='140px;'>
85
123
  </a>
86
124
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
87
125
  </td>
88
- <td id='luka-mirosevic'>
89
- <a href='https://github.com/lmirosevic'>
90
- <img src='https://github.com/lmirosevic.png' width='140px;'>
91
- </a>
92
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
93
- </td>
94
- <td id='jan-piotrowski'>
95
- <a href='https://github.com/janpio'>
96
- <img src='https://github.com/janpio.png' width='140px;'>
126
+ <td id='helmut-januschka'>
127
+ <a href='https://github.com/hjanuschka'>
128
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
97
129
  </a>
98
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
99
131
  </td>
100
132
  </tr>
101
133
  <tr>
102
- <td id='daniel-jankowski'>
103
- <a href='https://github.com/mollyIV'>
104
- <img src='https://github.com/mollyIV.png' width='140px;'>
134
+ <td id='fumiya-nakamura'>
135
+ <a href='https://github.com/nafu'>
136
+ <img src='https://github.com/nafu.png' width='140px;'>
105
137
  </a>
106
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
138
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
107
139
  </td>
108
- <td id='helmut-januschka'>
109
- <a href='https://github.com/hjanuschka'>
110
- <img src='https://github.com/hjanuschka.png' width='140px;'>
140
+ <td id='kohki-miki'>
141
+ <a href='https://github.com/giginet'>
142
+ <img src='https://github.com/giginet.png' width='140px;'>
111
143
  </a>
112
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
113
145
  </td>
114
146
  <td id='jérôme-lacoste'>
115
147
  <a href='https://github.com/lacostej'>
@@ -117,57 +149,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
117
149
  </a>
118
150
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
119
151
  </td>
120
- <td id='matthew-ellis'>
121
- <a href='https://github.com/matthewellis'>
122
- <img src='https://github.com/matthewellis.png' width='140px;'>
152
+ <td id='andrew-mcburney'>
153
+ <a href='https://github.com/armcburney'>
154
+ <img src='https://github.com/armcburney.png' width='140px;'>
123
155
  </a>
124
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
125
157
  </td>
126
- <td id='fumiya-nakamura'>
127
- <a href='https://github.com/nafu'>
128
- <img src='https://github.com/nafu.png' width='140px;'>
158
+ <td id='luka-mirosevic'>
159
+ <a href='https://github.com/lmirosevic'>
160
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
129
161
  </a>
130
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
131
163
  </td>
132
164
  </tr>
133
165
  <tr>
134
- <td id='danielle-tomlinson'>
135
- <a href='https://github.com/endocrimes'>
136
- <img src='https://github.com/endocrimes.png' width='140px;'>
137
- </a>
138
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
139
- </td>
140
- <td id='roger-oba'>
141
- <a href='https://github.com/rogerluan'>
142
- <img src='https://github.com/rogerluan.png' width='140px;'>
143
- </a>
144
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
145
- </td>
146
166
  <td id='iulian-onofrei'>
147
167
  <a href='https://github.com/revolter'>
148
168
  <img src='https://github.com/revolter.png' width='140px;'>
149
169
  </a>
150
170
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
151
171
  </td>
152
- <td id='jimmy-dee'>
153
- <a href='https://github.com/jdee'>
154
- <img src='https://github.com/jdee.png' width='140px;'>
155
- </a>
156
- <h4 align='center'>Jimmy Dee</h4>
157
- </td>
158
- <td id='felix-krause'>
159
- <a href='https://github.com/KrauseFx'>
160
- <img src='https://github.com/KrauseFx.png' width='140px;'>
161
- </a>
162
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
163
- </td>
164
- </tr>
165
- <tr>
166
- <td id='max-ott'>
167
- <a href='https://github.com/max-ott'>
168
- <img src='https://github.com/max-ott.png' width='140px;'>
172
+ <td id='maksym-grebenets'>
173
+ <a href='https://github.com/mgrebenets'>
174
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
169
175
  </a>
170
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
171
177
  </td>
172
178
  <td id='manish-rathi'>
173
179
  <a href='https://github.com/crazymanish'>
@@ -175,23 +181,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
175
181
  </a>
176
182
  <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
177
183
  </td>
178
- <td id='kohki-miki'>
179
- <a href='https://github.com/giginet'>
180
- <img src='https://github.com/giginet.png' width='140px;'>
181
- </a>
182
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
183
- </td>
184
- <td id='andrew-mcburney'>
185
- <a href='https://github.com/armcburney'>
186
- <img src='https://github.com/armcburney.png' width='140px;'>
184
+ <td id='jan-piotrowski'>
185
+ <a href='https://github.com/janpio'>
186
+ <img src='https://github.com/janpio.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
189
189
  </td>
190
- <td id='josh-holtz'>
191
- <a href='https://github.com/joshdholtz'>
192
- <img src='https://github.com/joshdholtz.png' width='140px;'>
190
+ <td id='satoshi-namai'>
191
+ <a href='https://github.com/ainame'>
192
+ <img src='https://github.com/ainame.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  </table>
@@ -47,7 +47,7 @@ module Cert
47
47
  end),
48
48
  FastlaneCore::ConfigItem.new(key: :api_key,
49
49
  env_names: ["CERT_API_KEY", "DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
50
- 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)",
50
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
51
51
  type: Hash,
52
52
  optional: true,
53
53
  sensitive: true,
@@ -22,7 +22,7 @@ module Deliver
22
22
  end),
23
23
  FastlaneCore::ConfigItem.new(key: :api_key,
24
24
  env_names: ["DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
25
- 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)",
25
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
26
26
  type: Hash,
27
27
  optional: true,
28
28
  sensitive: true,
@@ -125,7 +125,7 @@ module Fastlane
125
125
  end),
126
126
  FastlaneCore::ConfigItem.new(key: :api_key,
127
127
  env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
128
- 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)",
128
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
129
129
  type: Hash,
130
130
  default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
131
131
  default_value_dynamic: true,
@@ -64,7 +64,7 @@ module Fastlane
64
64
  ['SIGH_PROFILE_PATHS', 'Paths in which certificates, key and profile are exported'],
65
65
  ['SIGH_UUID', 'UUID (Universally Unique IDentifier) of a provisioning profile'],
66
66
  ['SIGH_NAME', 'The name of the profile'],
67
- ['SIGH_PROFILE_TYPE', 'The profile type, can be appstore, adhoc, development, enterprise']
67
+ ['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in `build_app` as a default value for `export_method`']
68
68
  ]
69
69
  end
70
70
 
@@ -64,7 +64,7 @@ module Fastlane
64
64
  print_command_output: params[:print_command_output])
65
65
 
66
66
  # If we didn't build, then we return now, as it makes no sense to search for apk's in a non-`assemble` or non-`build` scenario
67
- return result unless task =~ /\b(assemble)/ || task =~ /\b(bundle)/
67
+ return result unless gradle_task =~ /\b(assemble)/ || gradle_task =~ /\b(bundle)/
68
68
 
69
69
  apk_search_path = File.join(project_dir, '**', 'build', 'outputs', 'apk', '**', '*.apk')
70
70
  aab_search_path = File.join(project_dir, '**', 'build', 'outputs', 'bundle', '**', '*.aab')
@@ -258,8 +258,21 @@ module Fastlane
258
258
  # ...
259
259
 
260
260
  properties: {
261
- "versionCode" => 100,
262
- "versionName" => "1.0.0",
261
+ "exampleNumber" => 100,
262
+ "exampleString" => "1.0.0",
263
+ # ...
264
+ }
265
+ )
266
+ ```
267
+
268
+ You can use this to change the version code and name of your app:
269
+ ```ruby
270
+ gradle(
271
+ # ...
272
+
273
+ properties: {
274
+ "android.injected.version.code" => 100,
275
+ "android.injected.version.name" => "1.0.0",
263
276
  # ...
264
277
  }
265
278
  )
@@ -32,7 +32,7 @@ module Fastlane
32
32
  def self.example_code
33
33
  [
34
34
  'commit = last_git_commit
35
- crashlytics(notes: commit[:message]) # message of commit
35
+ pilot(changelog: commit[:message]) # message of commit
36
36
  author = commit[:author] # author of the commit
37
37
  author_email = commit[:author_email] # email of the author of the commit
38
38
  hash = commit[:commit_hash] # long sha of commit
@@ -47,7 +47,7 @@ module Fastlane
47
47
  end),
48
48
  FastlaneCore::ConfigItem.new(key: :api_key,
49
49
  env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
50
- 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)",
50
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
51
51
  type: Hash,
52
52
  optional: true,
53
53
  sensitive: true,
@@ -8,7 +8,12 @@ module Fastlane
8
8
  try_early_stapling = params[:try_early_stapling]
9
9
  print_log = params[:print_log]
10
10
  verbose = params[:verbose]
11
- api_key_path = params[:api_key_path]
11
+
12
+ # Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
13
+ unless params[:api_key_path]
14
+ params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
15
+ end
16
+ api_key = Spaceship::ConnectAPI::Token.from(hash: params[:api_key], filepath: params[:api_key_path])
12
17
 
13
18
  use_notarytool = params[:use_notarytool]
14
19
 
@@ -33,20 +38,18 @@ module Fastlane
33
38
  UI.user_error!('Could not read bundle identifier, provide as a parameter') unless bundle_id
34
39
 
35
40
  if use_notarytool
36
- notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key_path, compressed_package_path)
41
+ notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
37
42
  else
38
- altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key_path, compressed_package_path)
43
+ altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
39
44
  end
40
45
  end
41
46
 
42
- def self.notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key_path, compressed_package_path)
47
+ def self.notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
43
48
  temp_file = nil
44
49
 
45
50
  # Create authorization part of command with either API Key or Apple ID
46
51
  auth_parts = []
47
- if api_key_path
48
- api_key = Spaceship::ConnectAPI::Token.from_json_file(api_key_path)
49
-
52
+ if api_key
50
53
  # Writes key contents to temporary file for command
51
54
  require 'tempfile'
52
55
  temp_file = Tempfile.new
@@ -99,14 +102,14 @@ module Fastlane
99
102
  temp_file.delete if temp_file
100
103
  end
101
104
 
102
- def self.altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key_path, compressed_package_path)
105
+ def self.altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
103
106
  UI.message('Uploading package to notarization service, might take a while')
104
107
 
105
108
  notarization_upload_command = "xcrun altool --notarize-app -t osx -f \"#{compressed_package_path || package_path}\" --primary-bundle-id #{bundle_id} --output-format xml"
106
109
 
107
110
  notarization_info = {}
108
- with_notarize_authenticator(params, api_key_path) do |notarize_authenticator|
109
- notarization_upload_command << " --asc-provider \"#{params[:asc_provider]}\"" if params[:asc_provider] && api_key_path.nil?
111
+ with_notarize_authenticator(params, api_key) do |notarize_authenticator|
112
+ notarization_upload_command << " --asc-provider \"#{params[:asc_provider]}\"" if params[:asc_provider] && api_key.nil?
110
113
 
111
114
  notarization_upload_response = Actions.sh(
112
115
  notarize_authenticator.call(notarization_upload_command),
@@ -200,11 +203,10 @@ module Fastlane
200
203
  )
201
204
  end
202
205
 
203
- def self.with_notarize_authenticator(params, api_key_path)
204
- if api_key_path
206
+ def self.with_notarize_authenticator(params, api_key)
207
+ if api_key
205
208
  # From xcrun altool for --apiKey:
206
209
  # This option will search the following directories in sequence for a private key file with the name of 'AuthKey_<api_key>.p8': './private_keys', '~/private_keys', '~/.private_keys', and '~/.appstoreconnect/private_keys'.
207
- api_key = Spaceship::ConnectAPI::Token.from_json_file(api_key_path)
208
210
  api_key_folder_path = File.expand_path('~/.appstoreconnect/private_keys')
209
211
  api_key_file_path = File.join(api_key_folder_path, "AuthKey_#{api_key.key_id}.p8")
210
212
  directory_exists = File.directory?(api_key_folder_path)
@@ -271,7 +273,7 @@ module Fastlane
271
273
  description: 'Apple ID username',
272
274
  default_value: username,
273
275
  optional: true,
274
- conflicting_options: [:api_key_path],
276
+ conflicting_options: [:api_key_path, :api_key],
275
277
  default_value_dynamic: true),
276
278
  FastlaneCore::ConfigItem.new(key: :asc_provider,
277
279
  env_name: 'FL_NOTARIZE_ASC_PROVIDER',
@@ -291,13 +293,20 @@ module Fastlane
291
293
  default_value: false,
292
294
  type: Boolean),
293
295
  FastlaneCore::ConfigItem.new(key: :api_key_path,
294
- env_name: 'FL_NOTARIZE_API_KEY_PATH',
295
- description: 'Path to AppStore Connect API key',
296
+ env_names: ['FL_NOTARIZE_API_KEY_PATH', "APP_STORE_CONNECT_API_KEY_PATH"],
297
+ 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)",
296
298
  optional: true,
297
- conflicting_options: [:username],
299
+ conflicting_options: [:username, :api_key],
298
300
  verify_block: proc do |value|
299
301
  UI.user_error!("API Key not found at '#{value}'") unless File.exist?(value)
300
- end)
302
+ end),
303
+ FastlaneCore::ConfigItem.new(key: :api_key,
304
+ env_names: ['FL_NOTARIZE_API_KEY', "APP_STORE_CONNECT_API_KEY"],
305
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
306
+ optional: true,
307
+ conflicting_options: [:username, :api_key_path],
308
+ sensitive: true,
309
+ type: Hash)
301
310
  ]
302
311
  end
303
312
 
@@ -98,7 +98,7 @@ module Fastlane
98
98
  multi_line_end_keyword: "END"
99
99
  )
100
100
 
101
- crashlytics(notes: changelog)'
101
+ pilot(changelog: changelog)'
102
102
  ]
103
103
  end
104
104
 
@@ -73,7 +73,7 @@ module Fastlane
73
73
  end),
74
74
  FastlaneCore::ConfigItem.new(key: :api_key,
75
75
  env_names: ["FL_REGISTER_DEVICE_API_KEY", "APP_STORE_CONNECT_API_KEY"],
76
- 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)",
76
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
77
77
  type: Hash,
78
78
  default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
79
79
  default_value_dynamic: true,
@@ -121,7 +121,7 @@ module Fastlane
121
121
  end),
122
122
  FastlaneCore::ConfigItem.new(key: :api_key,
123
123
  env_names: ["FL_REGISTER_DEVICES_API_KEY", "APP_STORE_CONNECT_API_KEY"],
124
- 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)",
124
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
125
125
  type: Hash,
126
126
  default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
127
127
  default_value_dynamic: true,
@@ -115,7 +115,7 @@ module Fastlane
115
115
  end),
116
116
  FastlaneCore::ConfigItem.new(key: :api_key,
117
117
  env_names: ["FL_SET_CHANGELOG_API_KEY", "APP_STORE_CONNECT_API_KEY"],
118
- 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)",
118
+ description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
119
119
  type: Hash,
120
120
  default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
121
121
  default_value_dynamic: true,
@@ -9,6 +9,7 @@ module Fastlane
9
9
  jenkins: '--jenkins',
10
10
  buildkite: '--buildkite',
11
11
  teamcity: '--teamcity',
12
+ github: '--github',
12
13
 
13
14
  coveralls: '--coveralls',
14
15
  simple_output: '--simple-output',
@@ -155,6 +156,11 @@ module Fastlane
155
156
  env_name: "FL_SLATHER_INPUT_FORMAT", # The name of the environment variable
156
157
  description: "The input format that slather should look for",
157
158
  optional: true),
159
+ FastlaneCore::ConfigItem.new(key: :github,
160
+ env_name: "FL_SLATHER_GITHUB_ENABLED", # The name of the environment variable
161
+ description: "Tell slather that it is running on Github Actions",
162
+ type: Boolean,
163
+ optional: true),
158
164
  FastlaneCore::ConfigItem.new(key: :buildkite,
159
165
  env_name: "FL_SLATHER_BUILDKITE_ENABLED", # The name of the environment variable
160
166
  description: "Tell slather that it is running on Buildkite",
@@ -82,7 +82,7 @@ module Fastlane
82
82
  def self.output
83
83
  [
84
84
  ['MATCH_PROVISIONING_PROFILE_MAPPING', 'The match provisioning profile mapping'],
85
- ['SIGH_PROFILE_TYPE', 'The profile type, can be appstore, adhoc, development, enterprise']
85
+ ['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, can be used in `build_app` as a default value for `export_method`']
86
86
  ]
87
87
  end
88
88
 
@@ -13,6 +13,8 @@ module Fastlane
13
13
  unless distribute_only
14
14
  values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
15
15
  values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
16
+ values[:pkg] ||= Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
17
+ values[:pkg] = File.expand_path(values[:pkg]) if values[:pkg]
16
18
  end
17
19
 
18
20
  # Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
@@ -117,7 +119,7 @@ module Fastlane
117
119
  end
118
120
 
119
121
  def self.is_supported?(platform)
120
- [:ios].include?(platform)
122
+ [:ios, :mac, :tvos].include?(platform)
121
123
  end
122
124
  end
123
125
  end
@@ -10,8 +10,8 @@ module Fastlane
10
10
  @verbose = params[:verbose]
11
11
  @password = params[:password]
12
12
  @symlinks = params[:symlinks]
13
- @include = params[:include]
14
- @exclude = params[:exclude]
13
+ @include = params[:include] || []
14
+ @exclude = params[:exclude] || []
15
15
 
16
16
  @output_path += ".zip" unless @output_path.end_with?(".zip")
17
17
  end
@@ -134,15 +134,17 @@ module Fastlane
134
134
  require 'yaml'
135
135
  FileUtils.mkdir_p(target_path)
136
136
  docs_dir = File.join(target_path, "docs")
137
+ generated_actions_dir = File.join("generated", "actions")
138
+ FileUtils.mkdir_p(File.join(docs_dir, generated_actions_dir))
137
139
 
138
140
  # Generate actions.md
139
141
  template = File.join(Fastlane::ROOT, "lib/assets/Actions.md.erb")
140
142
  result = ERB.new(File.read(template), 0, '-').result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
141
- File.write(File.join(docs_dir, "actions.md"), result)
143
+ File.write(File.join(docs_dir, "generated", "actions.md"), result)
142
144
 
143
- # Generate actions sub pages (e.g. actions/slather.md, actions/scan.md)
145
+ # Generate actions sub pages (e.g. generated/actions/slather.md, generated/actions/scan.md)
144
146
  all_actions_ref_yml = []
145
- FileUtils.mkdir_p(File.join(docs_dir, "actions"))
147
+ FileUtils.mkdir_p(File.join(docs_dir, generated_actions_dir))
146
148
  ActionsList.all_actions do |action|
147
149
  @action = action # to provide a reference in the .html.erb template
148
150
  @action_filename = filename_for_action(action)
@@ -165,10 +167,14 @@ module Fastlane
165
167
  template = File.join(Fastlane::ROOT, "lib/assets/ActionDetails.md.erb")
166
168
  result = ERB.new(File.read(template), 0, '-').result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
167
169
 
168
- file_name = File.join("actions", "#{action.action_name}.md")
170
+ # Actions get placed in "generated/actions" directory
171
+ file_name = File.join(generated_actions_dir, "#{action.action_name}.md")
169
172
  File.write(File.join(docs_dir, file_name), result)
170
173
 
171
- all_actions_ref_yml << { action.action_name => file_name }
174
+ # The action pages when published get moved to the "actions" directory
175
+ # The mkdocs.yml file needs to reference the "actions" directory (not the "generated/actions" directory)
176
+ published_file_name = File.join("actions", "#{action.action_name}.md")
177
+ all_actions_ref_yml << { action.action_name => published_file_name }
172
178
  end
173
179
 
174
180
  # Modify the mkdocs.yml to list all the actions
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.192.0'.freeze
2
+ VERSION = '2.195.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 = '1.12.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.192.0
20
+ // Generated with fastlane 2.195.0