fastlane 2.140.0 → 2.141.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +81 -68
  3. data/cert/lib/cert/options.rb +12 -5
  4. data/cert/lib/cert/runner.rb +13 -0
  5. data/deliver/lib/deliver/options.rb +2 -2
  6. data/deliver/lib/deliver/runner.rb +13 -2
  7. data/fastlane/lib/fastlane/actions/build_app.rb +157 -6
  8. data/fastlane/lib/fastlane/actions/build_ios_app.rb +28 -132
  9. data/fastlane/lib/fastlane/actions/build_mac_app.rb +46 -0
  10. data/fastlane/lib/fastlane/actions/create_pull_request.rb +29 -0
  11. data/fastlane/lib/fastlane/actions/docs/{build_ios_app.md → build_app.md} +1 -1
  12. data/fastlane/lib/fastlane/actions/gym.rb +3 -7
  13. data/fastlane/lib/fastlane/actions/import_from_git.rb +4 -0
  14. data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/update_plist.rb +37 -2
  16. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -0
  17. data/fastlane/lib/fastlane/fast_file.rb +13 -3
  18. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -0
  19. data/fastlane/lib/fastlane/version.rb +1 -1
  20. data/fastlane/swift/Deliverfile.swift +1 -1
  21. data/fastlane/swift/DeliverfileProtocol.swift +3 -3
  22. data/fastlane/swift/Fastlane.swift +239 -35
  23. data/fastlane/swift/Gymfile.swift +1 -1
  24. data/fastlane/swift/GymfileProtocol.swift +17 -1
  25. data/fastlane/swift/Matchfile.swift +1 -1
  26. data/fastlane/swift/MatchfileProtocol.swift +7 -3
  27. data/fastlane/swift/Precheckfile.swift +1 -1
  28. data/fastlane/swift/Scanfile.swift +1 -1
  29. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  30. data/fastlane/swift/Screengrabfile.swift +1 -1
  31. data/fastlane/swift/Snapshotfile.swift +1 -1
  32. data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
  33. data/fastlane_core/lib/fastlane_core/cert_checker.rb +28 -0
  34. data/fastlane_core/lib/fastlane_core/project.rb +23 -0
  35. data/gym/lib/gym/code_signing_mapping.rb +32 -3
  36. data/gym/lib/gym/detect_values.rb +34 -2
  37. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  38. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +47 -17
  39. data/gym/lib/gym/module.rb +8 -0
  40. data/gym/lib/gym/options.rb +25 -1
  41. data/gym/lib/gym/runner.rb +25 -4
  42. data/match/lib/match/encryption/openssl.rb +1 -1
  43. data/match/lib/match/generator.rb +17 -3
  44. data/match/lib/match/module.rb +4 -1
  45. data/match/lib/match/nuke.rb +54 -16
  46. data/match/lib/match/options.rb +20 -15
  47. data/match/lib/match/runner.rb +20 -8
  48. data/match/lib/match/spaceship_ensure.rb +19 -9
  49. data/match/lib/match/storage/git_storage.rb +5 -2
  50. data/scan/lib/scan/options.rb +6 -1
  51. data/snapshot/lib/snapshot/options.rb +12 -1
  52. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  53. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +11 -0
  54. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +4 -0
  55. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +6 -0
  56. data/spaceship/lib/spaceship/portal/app.rb +11 -2
  57. data/spaceship/lib/spaceship/tunes/iap_status.rb +5 -1
  58. metadata +20 -25
  59. data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
  60. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  61. data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
  62. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  63. data/fastlane_core/lib/fastlane_core/.build_watcher.rb.swp +0 -0
  64. data/pilot/lib/pilot/.manager.rb.swp +0 -0
  65. data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
  66. data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
@@ -28,8 +28,8 @@ module Match
28
28
  return Spaceship.client.team_id
29
29
  end
30
30
 
31
- def bundle_identifier_exists(username: nil, app_identifier: nil)
32
- found = Spaceship.app.find(app_identifier)
31
+ def bundle_identifier_exists(username: nil, app_identifier: nil, platform: nil)
32
+ found = Spaceship.app.find(app_identifier, mac: platform == "macos")
33
33
  return if found
34
34
 
35
35
  require 'sigh/runner'
@@ -45,24 +45,34 @@ module Match
45
45
  UI.user_error!("Couldn't find bundle identifier '#{app_identifier}' for the user '#{username}'")
46
46
  end
47
47
 
48
- def certificate_exists(username: nil, certificate_id: nil)
49
- found = Spaceship.certificate.all.find do |cert|
50
- cert.id == certificate_id
48
+ def certificates_exists(username: nil, certificate_ids: [], platform: nil)
49
+ Spaceship.certificate.all(mac: platform == "macos").each do |cert|
50
+ certificate_ids.delete(cert.id)
51
51
  end
52
- return if found
52
+ return if certificate_ids.empty?
53
53
 
54
- UI.error("Certificate '#{certificate_id}' (stored in your storage) is not available on the Developer Portal")
54
+ certificate_ids.each do |certificate_id|
55
+ UI.error("Certificate '#{certificate_id}' (stored in your storage) is not available on the Developer Portal")
56
+ end
55
57
  UI.error("for the user #{username}")
56
58
  UI.error("Make sure to use the same user and team every time you run 'match' for this")
57
59
  UI.error("Git repository. This might be caused by revoking the certificate on the Dev Portal")
58
60
  UI.user_error!("To reset the certificates of your Apple account, you can use the `fastlane match nuke` feature, more information on https://docs.fastlane.tools/actions/match/")
59
61
  end
60
62
 
61
- def profile_exists(username: nil, uuid: nil)
62
- found = Spaceship.provisioning_profile.all.find do |profile|
63
+ def profile_exists(username: nil, uuid: nil, platform: nil)
64
+ is_mac = platform == "macos"
65
+ found = Spaceship.provisioning_profile.all(mac: is_mac).find do |profile|
63
66
  profile.uuid == uuid
64
67
  end
65
68
 
69
+ # Look for iOS after looking for macOS (needed for Catalyst apps)
70
+ if !found && is_mac
71
+ found = Spaceship.provisioning_profile.all(mac: false).find do |profile|
72
+ profile.uuid == uuid
73
+ end
74
+ end
75
+
66
76
  unless found
67
77
  UI.error("Provisioning profile '#{uuid}' is not available on the Developer Portal for the user #{username}, fixing this now for you 🔨")
68
78
  return false
@@ -73,8 +73,11 @@ module Match
73
73
  self.working_directory = Dir.mktmpdir
74
74
 
75
75
  command = "git clone #{self.git_url.shellescape} #{self.working_directory.shellescape}"
76
- command << " -c http.extraheader='AUTHORIZATION: basic #{self.git_basic_authorization}'" unless self.git_basic_authorization.nil?
77
- command << " -c http.extraheader='AUTHORIZATION: bearer #{self.git_bearer_authorization}'" unless self.git_bearer_authorization.nil?
76
+ # HTTP headers are supposed to be be case insensitive but
77
+ # Bitbucket requires `Authorization: Basic` and `Authorization Bearer` to work
78
+ # https://github.com/fastlane/fastlane/pull/15928
79
+ command << " -c http.extraheader='Authorization: Basic #{self.git_basic_authorization}'" unless self.git_basic_authorization.nil?
80
+ command << " -c http.extraheader='Authorization: Bearer #{self.git_bearer_authorization}'" unless self.git_bearer_authorization.nil?
78
81
 
79
82
  if self.shallow_clone
80
83
  command << " --depth 1 --no-single-branch"
@@ -398,7 +398,12 @@ module Scan
398
398
  description: "Allows for override of the default `xcodebuild` command",
399
399
  type: String,
400
400
  optional: true,
401
- default_value: "env NSUnbufferedIO=YES xcodebuild")
401
+ default_value: "env NSUnbufferedIO=YES xcodebuild"),
402
+ FastlaneCore::ConfigItem.new(key: :cloned_source_packages_path,
403
+ env_name: "SCAN_CLONED_SOURCE_PACKAGES_PATH",
404
+ description: "Sets a custom path for Swift Package Manager dependencies",
405
+ type: String,
406
+ optional: true)
402
407
 
403
408
  ]
404
409
  end
@@ -221,7 +221,18 @@ module Snapshot
221
221
  env_name: "SNAPSHOT_EXECUTE_CONCURRENT_SIMULATORS",
222
222
  description: "Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9",
223
223
  default_value: true,
224
- is_string: false)
224
+ is_string: false),
225
+ FastlaneCore::ConfigItem.new(key: :disable_slide_to_type,
226
+ env_name: "SNAPSHOT_DISABLE_SLIDE_TO_TYPE",
227
+ description: "Disable the simulator from showing the 'Slide to type' prompt",
228
+ default_value: false,
229
+ optional: true,
230
+ is_string: false),
231
+ FastlaneCore::ConfigItem.new(key: :cloned_source_packages_path,
232
+ env_name: "SNAPSHOT_CLONED_SOURCE_PACKAGES_PATH",
233
+ description: "Sets a custom path for Swift Package Manager dependencies",
234
+ type: String,
235
+ optional: true)
225
236
  ]
226
237
  end
227
238
  end
@@ -11,6 +11,7 @@ module Snapshot
11
11
  attr_accessor :dark_mode
12
12
  attr_accessor :reinstall_app
13
13
  attr_accessor :app_identifier
14
+ attr_accessor :disable_slide_to_type
14
15
 
15
16
  # xcode 8
16
17
  attr_accessor :number_of_retries
@@ -41,6 +42,7 @@ module Snapshot
41
42
  @output_simulator_logs = snapshot_config[:output_simulator_logs]
42
43
  @output_directory = snapshot_config[:output_directory]
43
44
  @concurrent_simulators = snapshot_config[:concurrent_simulators]
45
+ @disable_slide_to_type = snapshot_config[:disable_slide_to_type]
44
46
 
45
47
  launch_arguments = Array(snapshot_config[:launch_arguments])
46
48
  # if more than 1 set of arguments, use a tuple with an index
@@ -67,6 +67,9 @@ module Snapshot
67
67
  # no need to reinstall if device has been erased
68
68
  uninstall_app(type)
69
69
  end
70
+ if launcher_config.disable_slide_to_type
71
+ disable_slide_to_type(type)
72
+ end
70
73
  end
71
74
  end
72
75
 
@@ -139,6 +142,14 @@ module Snapshot
139
142
  end
140
143
  end
141
144
 
145
+ def disable_slide_to_type(device_type)
146
+ device_udid = TestCommandGenerator.device_udid(device_type)
147
+ if device_udid
148
+ UI.message("Disabling slide to type on #{device_type}")
149
+ FastlaneCore::Simulator.disable_slide_to_type(udid: device_udid)
150
+ end
151
+ end
152
+
142
153
  def copy_simulator_logs(device_names, language, locale, launch_arguments)
143
154
  return unless launcher_config.output_simulator_logs
144
155
 
@@ -66,6 +66,10 @@ module Spaceship
66
66
  def self.all(filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil)
67
67
  return Spaceship::ConnectAPI.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort)
68
68
  end
69
+
70
+ def delete!
71
+ return Spaceship::ConnectAPI.delete_beta_feedback(feedback_id: self.id)
72
+ end
69
73
  end
70
74
  end
71
75
  end
@@ -326,6 +326,12 @@ module Spaceship
326
326
  params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
327
327
  Client.instance.get("betaFeedbacks", params)
328
328
  end
329
+
330
+ def delete_beta_feedback(feedback_id: nil)
331
+ raise "Feedback id is nil" if feedback_id.nil?
332
+
333
+ Client.instance.delete("betaFeedbacks/#{feedback_id}")
334
+ end
329
335
  end
330
336
  end
331
337
  end
@@ -108,9 +108,18 @@ module Spaceship
108
108
  # @return (App) The app you're looking for. This is nil if the app can't be found.
109
109
  def find(bundle_id, mac: false)
110
110
  raise "`bundle_id` parameter must not be nil" if bundle_id.nil?
111
- all(mac: mac).find do |app|
112
- return app if app.bundle_id.casecmp(bundle_id) == 0
111
+ found_app = all(mac: mac).find do |app|
112
+ app if app.bundle_id.casecmp(bundle_id) == 0
113
113
  end
114
+
115
+ # Find catalyst enabled mac apps (look for mac first and then iOS)
116
+ if !found_app && mac
117
+ found_app = all(mac: false).find do |app|
118
+ app if app.bundle_id.casecmp(bundle_id) == 0
119
+ end
120
+ end
121
+
122
+ found_app
114
123
  end
115
124
  end
116
125
 
@@ -28,6 +28,9 @@ module Spaceship
28
28
  # The developer took the app from the App Store
29
29
  DEVELOPER_REMOVED_FROM_SALE = "Developer Removed From Sale"
30
30
 
31
+ # In-app purchase need developer's action
32
+ DEVELOPER_ACTION_NEEDED = "Developer Action Needed"
33
+
31
34
  # Get the iap status matching based on a string (given by App Store Connect)
32
35
  def self.get_from_string(text)
33
36
  mapping = {
@@ -38,7 +41,8 @@ module Spaceship
38
41
  'readyForSale' => APPROVED,
39
42
  'deleted' => DELETED,
40
43
  'rejected' => REJECTED,
41
- 'developerRemovedFromSale' => DEVELOPER_REMOVED_FROM_SALE
44
+ 'developerRemovedFromSale' => DEVELOPER_REMOVED_FROM_SALE,
45
+ 'developerActionNeeded' => DEVELOPER_ACTION_NEEDED
42
46
  }
43
47
 
44
48
  mapping.each do |itc_status, readable_status|
metadata CHANGED
@@ -1,33 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.140.0
4
+ version: 2.141.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Jorge Revuelta H
8
+ - Maksym Grebenets
7
9
  - Olivier Halligon
8
- - Jan Piotrowski
9
- - Manu Wallner
10
- - Kohki Miki
11
- - Stefan Natchev
10
+ - Daniel Jankowski
11
+ - Fumiya Nakamura
12
12
  - Josh Holtz
13
- - Jérôme Lacoste
14
- - Maksym Grebenets
15
13
  - Andrew McBurney
14
+ - Iulian Onofrei
15
+ - Kohki Miki
16
16
  - Joshua Liebowitz
17
- - Matthew Ellis
17
+ - Max Ott
18
+ - Stefan Natchev
19
+ - Jérôme Lacoste
20
+ - Aaron Brager
21
+ - Jan Piotrowski
22
+ - Danielle Tomlinson
18
23
  - Jimmy Dee
19
- - Fumiya Nakamura
24
+ - Manu Wallner
25
+ - Luka Mirosevic
20
26
  - Felix Krause
21
- - Danielle Tomlinson
27
+ - Matthew Ellis
22
28
  - Helmut Januschka
23
- - Aaron Brager
24
- - Iulian Onofrei
25
- - Luka Mirosevic
26
- - Jorge Revuelta H
27
29
  autorequire:
28
30
  bindir: bin
29
31
  cert_chain: []
30
- date: 2020-01-08 00:00:00.000000000 Z
32
+ date: 2020-01-29 00:00:00.000000000 Z
31
33
  dependencies:
32
34
  - !ruby/object:Gem::Dependency
33
35
  name: slack-notifier
@@ -1000,9 +1002,6 @@ files:
1000
1002
  - fastlane/lib/fastlane.rb
1001
1003
  - fastlane/lib/fastlane/action.rb
1002
1004
  - fastlane/lib/fastlane/action_collector.rb
1003
- - fastlane/lib/fastlane/actions/.hockey.rb.swp
1004
- - fastlane/lib/fastlane/actions/.slack.rb.swp
1005
- - fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
1006
1005
  - fastlane/lib/fastlane/actions/README.md
1007
1006
  - fastlane/lib/fastlane/actions/actions_helper.rb
1008
1007
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1026,6 +1025,7 @@ files:
1026
1025
  - fastlane/lib/fastlane/actions/build_android_app.rb
1027
1026
  - fastlane/lib/fastlane/actions/build_app.rb
1028
1027
  - fastlane/lib/fastlane/actions/build_ios_app.rb
1028
+ - fastlane/lib/fastlane/actions/build_mac_app.rb
1029
1029
  - fastlane/lib/fastlane/actions/bundle_install.rb
1030
1030
  - fastlane/lib/fastlane/actions/capture_android_screenshots.rb
1031
1031
  - fastlane/lib/fastlane/actions/capture_ios_screenshots.rb
@@ -1056,7 +1056,7 @@ files:
1056
1056
  - fastlane/lib/fastlane/actions/deliver.rb
1057
1057
  - fastlane/lib/fastlane/actions/deploygate.rb
1058
1058
  - fastlane/lib/fastlane/actions/device_grid/README.md
1059
- - fastlane/lib/fastlane/actions/docs/build_ios_app.md
1059
+ - fastlane/lib/fastlane/actions/docs/build_app.md
1060
1060
  - fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md
1061
1061
  - fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md
1062
1062
  - fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md
@@ -1332,7 +1332,6 @@ files:
1332
1332
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1333
1333
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1334
1334
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
1335
- - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
1336
1335
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1337
1336
  - fastlane/swift/FastlaneSwiftRunner/README.txt
1338
1337
  - fastlane/swift/Gymfile.swift
@@ -1361,7 +1360,6 @@ files:
1361
1360
  - fastlane_core/README.md
1362
1361
  - fastlane_core/lib/assets/XMLTemplate.xml.erb
1363
1362
  - fastlane_core/lib/fastlane_core.rb
1364
- - fastlane_core/lib/fastlane_core/.build_watcher.rb.swp
1365
1363
  - fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
1366
1364
  - fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
1367
1365
  - fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
@@ -1488,7 +1486,6 @@ files:
1488
1486
  - pem/lib/pem/options.rb
1489
1487
  - pilot/README.md
1490
1488
  - pilot/lib/pilot.rb
1491
- - pilot/lib/pilot/.manager.rb.swp
1492
1489
  - pilot/lib/pilot/build_manager.rb
1493
1490
  - pilot/lib/pilot/commands_generator.rb
1494
1491
  - pilot/lib/pilot/features.rb
@@ -1620,7 +1617,6 @@ files:
1620
1617
  - spaceship/lib/spaceship/client.rb
1621
1618
  - spaceship/lib/spaceship/commands_generator.rb
1622
1619
  - spaceship/lib/spaceship/connect_api.rb
1623
- - spaceship/lib/spaceship/connect_api/.DS_Store
1624
1620
  - spaceship/lib/spaceship/connect_api/client.rb
1625
1621
  - spaceship/lib/spaceship/connect_api/model.rb
1626
1622
  - spaceship/lib/spaceship/connect_api/models/app.rb
@@ -1663,7 +1659,6 @@ files:
1663
1659
  - spaceship/lib/spaceship/launcher.rb
1664
1660
  - spaceship/lib/spaceship/module.rb
1665
1661
  - spaceship/lib/spaceship/playground.rb
1666
- - spaceship/lib/spaceship/portal/.certificate.rb.swp
1667
1662
  - spaceship/lib/spaceship/portal/app.rb
1668
1663
  - spaceship/lib/spaceship/portal/app_group.rb
1669
1664
  - spaceship/lib/spaceship/portal/app_service.rb
@@ -1803,7 +1798,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1803
1798
  - !ruby/object:Gem::Version
1804
1799
  version: '0'
1805
1800
  requirements: []
1806
- rubygems_version: 3.0.3
1801
+ rubygems_version: 3.0.6
1807
1802
  signing_key:
1808
1803
  specification_version: 4
1809
1804
  summary: The easiest way to automate beta deployments and releases for your iOS and