fastlane 2.105.2 → 2.106.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +73 -72
  3. data/bin/fastlane +24 -1
  4. data/deliver/lib/deliver/app_screenshot.rb +7 -0
  5. data/deliver/lib/deliver/submit_for_review.rb +14 -1
  6. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
  7. data/fastlane/lib/fastlane/actions/download_from_play_store.rb +61 -0
  8. data/fastlane/lib/fastlane/actions/modify_services.rb +7 -5
  9. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +2 -2
  10. data/fastlane/lib/fastlane/actions/register_device.rb +6 -4
  11. data/fastlane/lib/fastlane/actions/register_devices.rb +9 -8
  12. data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +12 -0
  13. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +1 -1
  14. data/fastlane/lib/fastlane/version.rb +1 -1
  15. data/fastlane/swift/Deliverfile.swift +1 -1
  16. data/fastlane/swift/Fastlane.swift +24 -6
  17. data/fastlane/swift/Gymfile.swift +1 -1
  18. data/fastlane/swift/Matchfile.swift +1 -1
  19. data/fastlane/swift/MatchfileProtocol.swift +3 -4
  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/device_manager.rb +1 -1
  26. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  27. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +13 -10
  28. data/frameit/lib/frameit/editor.rb +3 -2
  29. data/frameit/lib/frameit/frame_downloader.rb +1 -1
  30. data/match/lib/match.rb +2 -2
  31. data/match/lib/match/change_password.rb +31 -18
  32. data/match/lib/match/commands_generator.rb +20 -7
  33. data/match/lib/match/encryption.rb +18 -0
  34. data/match/lib/match/encryption/interface.rb +17 -0
  35. data/match/lib/match/encryption/openssl.rb +155 -0
  36. data/match/lib/match/generator.rb +5 -5
  37. data/match/lib/match/module.rb +5 -1
  38. data/match/lib/match/nuke.rb +33 -15
  39. data/match/lib/match/options.rb +11 -12
  40. data/match/lib/match/runner.rb +59 -38
  41. data/match/lib/match/storage.rb +16 -0
  42. data/match/lib/match/storage/git_storage.rb +228 -0
  43. data/match/lib/match/storage/interface.rb +50 -0
  44. data/snapshot/lib/snapshot/screenshot_rotate.rb +3 -8
  45. data/spaceship/README.md +10 -1
  46. data/spaceship/lib/spaceship/api/.DS_Store +0 -0
  47. data/spaceship/lib/spaceship/api/.base.rb.swp +0 -0
  48. data/spaceship/lib/spaceship/du/du_client.rb +2 -0
  49. data/spaceship/lib/spaceship/portal/device.rb +0 -1
  50. data/spaceship/lib/spaceship/portal/portal_client.rb +7 -1
  51. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  52. data/spaceship/lib/spaceship/tunes/app_details.rb +1 -1
  53. data/spaceship/lib/spaceship/tunes/device_type.rb +1 -1
  54. metadata +46 -20
  55. data/fastlane_core/lib/fastlane_core/itunes_search_api.rb +0 -50
  56. data/match/lib/match/encrypt.rb +0 -133
  57. data/match/lib/match/git_helper.rb +0 -209
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6588d34ba91007b2136bd34d9c40f7a4e42d3c2
4
- data.tar.gz: bf22dfcf54eea04a018dbaea492f98c681442020
3
+ metadata.gz: 5c7e61559acf160fa5f016ea363d32ad348ad583
4
+ data.tar.gz: 5ecf43f3ce74058e1b487db70d1d7a704ce601ef
5
5
  SHA512:
6
- metadata.gz: 90689ba66409444cb7445eedd7f0a42a7465a9288b6c05e1476c6944c6d23ddeac38b396895c6c190f78202ad1d5ddbb773499d84b74a6a6c0fd9376f0a1ed1e
7
- data.tar.gz: 3863dd7312a93b758d832f87b70fd16c88bbf5288458b003531bbfcc28ca4cdc916323673f8cd1b64ee4bddbc14c90f70cbdce3adbedba67ed46c1fd7ea123a5
6
+ metadata.gz: 6fa437b45269ee6e6f7a725779b745ea7b8dde2fc847331ab9e46d95c3f7e9072dcb299fd6148b026ec63c91002f06cec9d46026ffd790f44a54cead9aaf36d7
7
+ data.tar.gz: 88b20d20d5034c3dbfaae9a0445693a9b756574cc4ef770236fff8f75fca6514c2c2d178d753eda21d235b020b3d38a10bdc1186558a6be58b3a8f705c8aa536
data/README.md CHANGED
@@ -30,25 +30,32 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
30
30
 
31
31
  ## _fastlane_ team
32
32
 
33
+ <!-- This table is regenerated and resorted on each release -->
33
34
  <table id='team'>
34
35
  <tr>
35
- <td id='luka-mirosevic'>
36
- <a href='https://github.com/lmirosevic'>
37
- <img src='https://github.com/lmirosevic.png?size=140'>
36
+ <td id='jérôme-lacoste'>
37
+ <a href='https://github.com/lacostej'>
38
+ <img src='https://github.com/lacostej.png?size=140'>
38
39
  </a>
39
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
40
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
40
41
  </td>
41
- <td id='jimmy-dee'>
42
- <a href='https://github.com/jdee'>
43
- <img src='https://github.com/jdee.png?size=140'>
42
+ <td id='aaron-brager'>
43
+ <a href='https://github.com/getaaron'>
44
+ <img src='https://github.com/getaaron.png?size=140'>
44
45
  </a>
45
- <h4 align='center'>Jimmy Dee</h4>
46
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
46
47
  </td>
47
- <td id='matthew-ellis'>
48
- <a href='https://github.com/matthewellis'>
49
- <img src='https://github.com/matthewellis.png?size=140'>
48
+ <td id='fumiya-nakamura'>
49
+ <a href='https://github.com/nafu'>
50
+ <img src='https://github.com/nafu.png?size=140'>
50
51
  </a>
51
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
52
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
53
+ </td>
54
+ <td id='stefan-natchev'>
55
+ <a href='https://github.com/snatchev'>
56
+ <img src='https://github.com/snatchev.png?size=140'>
57
+ </a>
58
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
52
59
  </td>
53
60
  <td id='jorge-revuelta-h'>
54
61
  <a href='https://github.com/minuscorp'>
@@ -56,51 +63,51 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
56
63
  </a>
57
64
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
58
65
  </td>
59
- <td id='helmut-januschka'>
60
- <a href='https://github.com/hjanuschka'>
61
- <img src='https://github.com/hjanuschka.png?size=140'>
62
- </a>
63
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
64
- </td>
65
66
  </tr>
66
67
  <tr>
67
- <td id='stefan-natchev'>
68
- <a href='https://github.com/snatchev'>
69
- <img src='https://github.com/snatchev.png?size=140'>
68
+ <td id='maksym-grebenets'>
69
+ <a href='https://github.com/mgrebenets'>
70
+ <img src='https://github.com/mgrebenets.png?size=140'>
70
71
  </a>
71
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
72
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
72
73
  </td>
73
- <td id='felix-krause'>
74
- <a href='https://github.com/KrauseFx'>
75
- <img src='https://github.com/KrauseFx.png?size=140'>
74
+ <td id='andrew-mcburney'>
75
+ <a href='https://github.com/AndrewMcBurney'>
76
+ <img src='https://github.com/AndrewMcBurney.png?size=140'>
76
77
  </a>
77
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
78
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
78
79
  </td>
79
- <td id='jérôme-lacoste'>
80
- <a href='https://github.com/lacostej'>
81
- <img src='https://github.com/lacostej.png?size=140'>
80
+ <td id='matthew-ellis'>
81
+ <a href='https://github.com/matthewellis'>
82
+ <img src='https://github.com/matthewellis.png?size=140'>
82
83
  </a>
83
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
84
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
84
85
  </td>
85
- <td id='kohki-miki'>
86
- <a href='https://github.com/giginet'>
87
- <img src='https://github.com/giginet.png?size=140'>
86
+ <td id='luka-mirosevic'>
87
+ <a href='https://github.com/lmirosevic'>
88
+ <img src='https://github.com/lmirosevic.png?size=140'>
88
89
  </a>
89
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
90
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
91
+ </td>
92
+ <td id='iulian-onofrei'>
93
+ <a href='https://github.com/revolter'>
94
+ <img src='https://github.com/revolter.png?size=140'>
95
+ </a>
96
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
90
97
  </td>
98
+ </tr>
99
+ <tr>
91
100
  <td id='olivier-halligon'>
92
101
  <a href='https://github.com/AliSoftware'>
93
102
  <img src='https://github.com/AliSoftware.png?size=140'>
94
103
  </a>
95
104
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
96
105
  </td>
97
- </tr>
98
- <tr>
99
- <td id='iulian-onofrei'>
100
- <a href='https://github.com/revolter'>
101
- <img src='https://github.com/revolter.png?size=140'>
106
+ <td id='josh-holtz'>
107
+ <a href='https://github.com/joshdholtz'>
108
+ <img src='https://github.com/joshdholtz.png?size=140'>
102
109
  </a>
103
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
110
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
104
111
  </td>
105
112
  <td id='jan-piotrowski'>
106
113
  <a href='https://github.com/janpio'>
@@ -108,55 +115,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
108
115
  </a>
109
116
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
110
117
  </td>
111
- <td id='aaron-brager'>
112
- <a href='https://github.com/getaaron'>
113
- <img src='https://github.com/getaaron.png?size=140'>
114
- </a>
115
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
116
- </td>
117
- <td id='manu-wallner'>
118
- <a href='https://github.com/milch'>
119
- <img src='https://github.com/milch.png?size=140'>
118
+ <td id='joshua-liebowitz'>
119
+ <a href='https://github.com/taquitos'>
120
+ <img src='https://github.com/taquitos.png?size=140'>
120
121
  </a>
121
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
122
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
122
123
  </td>
123
- <td id='maksym-grebenets'>
124
- <a href='https://github.com/mgrebenets'>
125
- <img src='https://github.com/mgrebenets.png?size=140'>
124
+ <td id='felix-krause'>
125
+ <a href='https://github.com/KrauseFx'>
126
+ <img src='https://github.com/KrauseFx.png?size=140'>
126
127
  </a>
127
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
128
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
128
129
  </td>
129
130
  </tr>
130
131
  <tr>
132
+ <td id='helmut-januschka'>
133
+ <a href='https://github.com/hjanuschka'>
134
+ <img src='https://github.com/hjanuschka.png?size=140'>
135
+ </a>
136
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
137
+ </td>
131
138
  <td id='danielle-tomlinson'>
132
139
  <a href='https://github.com/DanToml'>
133
140
  <img src='https://github.com/DanToml.png?size=140'>
134
141
  </a>
135
142
  <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
136
143
  </td>
137
- <td id='joshua-liebowitz'>
138
- <a href='https://github.com/taquitos'>
139
- <img src='https://github.com/taquitos.png?size=140'>
140
- </a>
141
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
142
- </td>
143
- <td id='josh-holtz'>
144
- <a href='https://github.com/joshdholtz'>
145
- <img src='https://github.com/joshdholtz.png?size=140'>
144
+ <td id='jimmy-dee'>
145
+ <a href='https://github.com/jdee'>
146
+ <img src='https://github.com/jdee.png?size=140'>
146
147
  </a>
147
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
148
+ <h4 align='center'>Jimmy Dee</h4>
148
149
  </td>
149
- <td id='andrew-mcburney'>
150
- <a href='https://github.com/AndrewMcBurney'>
151
- <img src='https://github.com/AndrewMcBurney.png?size=140'>
150
+ <td id='kohki-miki'>
151
+ <a href='https://github.com/giginet'>
152
+ <img src='https://github.com/giginet.png?size=140'>
152
153
  </a>
153
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
154
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
154
155
  </td>
155
- <td id='fumiya-nakamura'>
156
- <a href='https://github.com/nafu'>
157
- <img src='https://github.com/nafu.png?size=140'>
156
+ <td id='manu-wallner'>
157
+ <a href='https://github.com/milch'>
158
+ <img src='https://github.com/milch.png?size=140'>
158
159
  </a>
159
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
160
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
160
161
  </td>
161
162
  </tr>
162
163
  </table>
@@ -4,7 +4,30 @@ if RUBY_VERSION < '2.0.0'
4
4
  abort("fastlane requires Ruby 2.0.0 or higher")
5
5
  end
6
6
 
7
- $LOAD_PATH.push(File.expand_path("../../lib", __FILE__))
7
+ def self.windows?
8
+ # taken from: https://stackoverflow.com/a/171011/1945875
9
+ (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
10
+ end
11
+
12
+ if ENV["FASTLANE_OPTIMIZE_BOOT"]
13
+ require 'bootsnap'
14
+ require 'tmpdir'
15
+ require 'fileutils'
16
+ require_relative "../fastlane/lib/fastlane/version.rb"
17
+ cache_dir = "#{Dir.tmpdir}/fastlane/bootsnap-cache/" + Fastlane::VERSION
18
+ unless File.directory?(cache_dir)
19
+ FileUtils.mkdir_p(cache_dir)
20
+ end
21
+ Bootsnap.setup(
22
+ cache_dir: cache_dir, # Path to your cache
23
+ development_mode: false, # Current working environment
24
+ load_path_cache: true, # Optimize the LOAD_PATH with a cache
25
+ autoload_paths_cache: false, # Not relevant for fastlane (Optimize ActiveSupport autoloads with cache)
26
+ disable_trace: true, # (Alpha) Set `RubyVM::InstructionSequence.compile_option = { trace_instruction: false }`
27
+ compile_cache_iseq: !self.windows?, # Compile Ruby code into ISeq cache, breaks coverage reporting.
28
+ compile_cache_yaml: true # Compile YAML into a cache
29
+ )
30
+ end
8
31
 
9
32
  require "fastlane/cli_tools_distributor"
10
33
 
@@ -43,6 +43,8 @@ module Deliver
43
43
  IOS_IPAD_PRO_MESSAGES = "iOS-iPad-Pro-messages"
44
44
  # Apple Watch
45
45
  IOS_APPLE_WATCH = "iOS-Apple-Watch"
46
+ # Apple Watch Series 4
47
+ IOS_APPLE_WATCH_SERIES4 = "iOS-Apple-Watch-Series4"
46
48
  # Mac
47
49
  MAC = "Mac"
48
50
  # Apple TV
@@ -93,6 +95,7 @@ module Deliver
93
95
  ScreenSize::IOS_IPAD_10_5_MESSAGES => "ipad105",
94
96
  ScreenSize::MAC => "desktop",
95
97
  ScreenSize::IOS_APPLE_WATCH => "watch",
98
+ ScreenSize::IOS_APPLE_WATCH_SERIES4 => "watchSeries4",
96
99
  ScreenSize::APPLE_TV => "appleTV"
97
100
  }
98
101
  return matching[self.screen_size]
@@ -120,6 +123,7 @@ module Deliver
120
123
  ScreenSize::IOS_IPAD_10_5_MESSAGES => "iPad 10.5 (iMessage)",
121
124
  ScreenSize::MAC => "Mac",
122
125
  ScreenSize::IOS_APPLE_WATCH => "Watch",
126
+ ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
123
127
  ScreenSize::APPLE_TV => "Apple TV"
124
128
  }
125
129
  return matching[self.screen_size]
@@ -238,6 +242,9 @@ module Deliver
238
242
  ScreenSize::IOS_APPLE_WATCH => [
239
243
  [312, 390]
240
244
  ],
245
+ ScreenSize::IOS_APPLE_WATCH_SERIES4 => [
246
+ [368, 448]
247
+ ],
241
248
  ScreenSize::APPLE_TV => [
242
249
  [1920, 1080]
243
250
  ]
@@ -58,8 +58,21 @@ module Deliver
58
58
  build = nil
59
59
 
60
60
  loop do
61
- latest_build = find_build(app.latest_version.candidate_builds)
61
+ # Sometimes candidate_builds don't appear immediately after submittion
62
+ # Wait for candidate_builds to appear on App Store Connect
63
+ # Issue https://github.com/fastlane/fastlane/issues/10411
64
+ candidate_builds = app.latest_version.candidate_builds
65
+ if (candidate_builds || []).count == 0
66
+ UI.message("Waiting for candidate builds to appear...")
67
+ if (Time.now - start) > (60 * 5)
68
+ UI.user_error!("Could not find any available candidate builds on App Store Connect to submit")
69
+ else
70
+ sleep(30)
71
+ next
72
+ end
73
+ end
62
74
 
75
+ latest_build = find_build(candidate_builds)
63
76
  # Sometimes latest build will disappear and a different build would get selected
64
77
  # Only set build if no latest build found or if same build versions as previously fetched build
65
78
  # Issue: https://github.com/fastlane/fastlane/issues/10945
@@ -2,7 +2,7 @@
2
2
  <img src="/img/actions/match.png" width="250">
3
3
  </p>
4
4
 
5
- ###### Easily sync your certificates and profiles across your team using git
5
+ ###### Easily sync your certificates and profiles across your team
6
6
 
7
7
  A new approach to iOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues.
8
8
 
@@ -0,0 +1,61 @@
1
+ module Fastlane
2
+ module Actions
3
+ class DownloadFromPlayStoreAction < Action
4
+ def self.run(params)
5
+ require 'supply'
6
+ require 'supply/options'
7
+
8
+ Supply.config = params # we already have the finished config
9
+
10
+ require 'supply/setup'
11
+ Supply::Setup.new.perform_download
12
+ end
13
+
14
+ #####################################################
15
+ # @!group Documentation
16
+ #####################################################
17
+
18
+ def self.description
19
+ "Download metadata and binaries from Google Play (via _supply_)"
20
+ end
21
+
22
+ def self.details
23
+ "More information: https://docs.fastlane.tools/actions/download_from_play_store/"
24
+ end
25
+
26
+ def self.available_options
27
+ require 'supply'
28
+ require 'supply/options'
29
+ options = Supply::Options.available_options.clone
30
+
31
+ # remove all the unnecessary (for this action) options
32
+ options_to_keep = [:package_name, :metadata_path, :json_key, :json_key_data, :root_url, :timeout, :key, :issuer]
33
+ options.delete_if { |option| options_to_keep.include?(option.key) == false }
34
+ end
35
+
36
+ def self.output
37
+ end
38
+
39
+ def self.return_value
40
+ end
41
+
42
+ def self.authors
43
+ ["janpio"]
44
+ end
45
+
46
+ def self.is_supported?(platform)
47
+ platform == :android
48
+ end
49
+
50
+ def self.example_code
51
+ [
52
+ 'download_from_play_store'
53
+ ]
54
+ end
55
+
56
+ def self.category
57
+ :production
58
+ end
59
+ end
60
+ end
61
+ end
@@ -52,18 +52,20 @@ module Fastlane
52
52
  game_center: 'game_center',
53
53
  health_kit: 'healthkit',
54
54
  home_kit: 'homekit',
55
- wireless_accessory: 'wireless_conf',
55
+ hotspot: 'hotspot',
56
56
  icloud: 'icloud',
57
57
  in_app_purchase: 'in_app_purchase',
58
58
  inter_app_audio: 'inter_app_audio',
59
+ multipath: 'multipath',
60
+ network_extension: 'network_extension',
61
+ nfc_tag_reading: 'nfc_tag_reading',
62
+ personal_vpn: 'personal_vpn',
59
63
  passbook: 'passbook',
60
64
  push_notification: 'push_notification',
61
65
  siri_kit: 'sirikit',
62
66
  vpn_configuration: 'vpn_conf',
63
- network_extension: 'network_extension',
64
- hotspot: 'hotspot',
65
- multipath: 'multipath',
66
- nfc_tag_reading: 'nfc_tag_reading'
67
+ wallet: 'wallet',
68
+ wireless_accessory: 'wireless_conf'
67
69
  }
68
70
  end
69
71
 
@@ -14,7 +14,7 @@ module Fastlane
14
14
  'git',
15
15
  'push',
16
16
  params[:remote],
17
- "#{local_branch}:#{remote_branch}"
17
+ "#{local_branch.shellescape}:#{remote_branch.shellescape}"
18
18
  ]
19
19
 
20
20
  # optionally add the tags component
@@ -89,7 +89,7 @@ module Fastlane
89
89
  'push_to_git_remote # simple version. pushes "master" branch to "origin" remote',
90
90
  'push_to_git_remote(
91
91
  remote: "origin", # optional, default: "origin"
92
- local_branch: "develop", # optional, aliased by "branch", default: "master"
92
+ local_branch: "develop", # optional, aliased by "branch", default is set to current branch
93
93
  remote_branch: "develop", # optional, default is set to local_branch
94
94
  force: true, # optional, default: false
95
95
  force_with_lease: true, # optional, default: false
@@ -3,8 +3,6 @@ require 'credentials_manager'
3
3
  module Fastlane
4
4
  module Actions
5
5
  class RegisterDeviceAction < Action
6
- UDID_REGEXP = /^(\h{40}|\h{8}-\h{16})$/
7
-
8
6
  def self.is_supported?(platform)
9
7
  platform == :ios
10
8
  end
@@ -19,8 +17,12 @@ module Fastlane
19
17
  Spaceship.login(credentials.user, credentials.password)
20
18
  Spaceship.select_team
21
19
 
22
- UI.user_error!("Passed invalid UDID: #{udid} for device: #{name}") unless UDID_REGEXP =~ udid
23
- Spaceship::Device.create!(name: name, udid: udid)
20
+ begin
21
+ Spaceship::Device.create!(name: name, udid: udid)
22
+ rescue => ex
23
+ UI.error(ex.to_s)
24
+ UI.crash!("Failed to register new device (name: #{name}, UDID: #{udid})")
25
+ end
24
26
 
25
27
  UI.success("Successfully registered new device")
26
28
  return udid