match 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2bf8411a952af7ce0f17769170a217aeef8bf939
4
- data.tar.gz: 1c34d864fdde067fea574ee3a2f4ab5db1ab3e52
3
+ metadata.gz: 087266c797f85b986e6053a174598705e80fc126
4
+ data.tar.gz: 8656cd27778e0aa10eb69666575c0f403b50e2ce
5
5
  SHA512:
6
- metadata.gz: 3f823abc052fe4527efdffb73f54fbdb9eced633fc27cfa6274f867ad35d19a9ead31ee1e69d7a1fbf0d894e35c34b4211d828b1e42653a6db5dcc84d54b0f51
7
- data.tar.gz: 4dcebb2b25763a1e4f69569ac27ccb609d6621f28ff5255b4b58ce33ef7caec35ef4398039fb3e171bf76a622ed4471a065d98a91b6de4c1dedb9ef28b19277c
6
+ metadata.gz: 4f6c119f14cf2dd4b410c3ed0637a174e022e29063644ce62324445f63924bbe09ee906cc4f28ceef39b0bf60c80f33c714cf81408823604fac84ef90cb10f0b
7
+ data.tar.gz: 3c603250ade06074968158c231b5d4a56e19378f6163f81aa6b6d089a85a2d5ae910ff9241dee85381dc93ee759070edf6d6cb0b9278918ba8a7f06ccd707e6c
data/README.md CHANGED
@@ -38,7 +38,7 @@ match
38
38
 
39
39
  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.
40
40
 
41
- `match` is the implementation of the https://codesigning.guide concept. `match` creates all required certificates & provisioning profiles and stores them in a separate git repository. Every team member with access to the repo can use those credentials for code signing. `match` also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams"
41
+ `match` is the implementation of the https://codesigning.guide concept. `match` creates all required certificates & provisioning profiles and stores them in a separate git repository. Every team member with access to the repo can use those credentials for code signing. `match` also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams
42
42
 
43
43
  [More information on how to get started with codesigning](/fastlane/docs/Codesigning)
44
44
 
@@ -258,6 +258,25 @@ gym
258
258
  ...
259
259
  ```
260
260
 
261
+ ##### Registering new devices
262
+
263
+ By using `match`, you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use `match` in combination with the [`register_devices`](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md#register_devices) action.
264
+
265
+ ```ruby
266
+ lane :beta do
267
+ register_devices(devices_file: "./devices.txt")
268
+ match(type: "adhoc", force_for_new_devices: true)
269
+ end
270
+ ```
271
+
272
+ By using the `force_for_new_devices` parameter, `match` will check if the device count has changed since the last time you ran `match`, and automatically re-generate the provisioning profile if necessary. You can also use `force: true` to re-generate the provisioning profile on each run.
273
+
274
+ If you're not using `fastlane`, you can also use the `force_for_new_devices` option from the command line:
275
+
276
+ ```
277
+ match adhoc --force_for_new_devices
278
+ ```
279
+
261
280
  ##### Multiple Targets
262
281
 
263
282
  If your app has multiple targets (e.g. Today Widget or WatchOS Extension)
@@ -360,7 +379,7 @@ What's the worst that could happen for each of the profile types?
360
379
 
361
380
  ##### App Store Profiles
362
381
 
363
- An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review (which takes around 7 days). Attackers could only submit an app for review, if they also got access to your iTunes Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage.
382
+ An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout [appreviewtimes.com](http://appreviewtimes.com) for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your iTunes Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage.
364
383
 
365
384
  ##### Development and Ad Hoc Profiles
366
385
 
data/lib/match.rb CHANGED
@@ -18,6 +18,7 @@ require 'spaceship'
18
18
  module Match
19
19
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
20
20
  UI = FastlaneCore::UI
21
+ ROOT = Pathname.new(File.expand_path('../..', __FILE__))
21
22
 
22
23
  def self.environments
23
24
  envs = %w(appstore adhoc development)
@@ -14,8 +14,6 @@ module Match
14
14
  FastlaneCore::UpdateChecker.show_update_status('match', Match::VERSION)
15
15
  end
16
16
 
17
- # rubocop:disable Metrics/MethodLength
18
- # rubocop:disable Metrics/AbcSize
19
17
  def run
20
18
  program :version, Match::VERSION
21
19
  program :description, Match::DESCRIPTION
@@ -120,7 +118,5 @@ module Match
120
118
 
121
119
  run!
122
120
  end
123
- # rubocop:enable Metrics/MethodLength
124
- # rubocop:enable Metrics/AbcSize
125
121
  end
126
122
  end
@@ -122,7 +122,7 @@ module Match
122
122
 
123
123
  # Copies the README.md into the git repo
124
124
  def self.copy_readme(directory)
125
- template = File.read("#{Helper.gem_path('match')}/lib/assets/READMETemplate.md")
125
+ template = File.read("#{Match::ROOT}/lib/assets/READMETemplate.md")
126
126
  File.write(File.join(directory, "README.md"), template)
127
127
  end
128
128
  end
data/lib/match/runner.rb CHANGED
@@ -31,6 +31,12 @@ module Match
31
31
  TablePrinter.print_summary(params, uuid)
32
32
 
33
33
  UI.success "All required keys, certificates and provisioning profiles are installed 🙌".green
34
+ rescue Spaceship::Client::UnexpectedResponse, Spaceship::Client::InvalidUserCredentialsError, Spaceship::Client::NoUserCredentialsError => ex
35
+ UI.error("An error occured while verifying your certificates and profiles with the Apple Developer Portal.")
36
+ UI.error("If you already have your certificates stored in git, you can run `match` in readonly mode")
37
+ UI.error("to just install the certificates and profiles without accessing the Dev Portal.")
38
+ UI.error("To do so, just pass `readonly: true` to your match call.")
39
+ raise ex
34
40
  ensure
35
41
  GitHelper.clear_changes
36
42
  end
data/lib/match/setup.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Match
2
2
  class Setup
3
3
  def run(path)
4
- template = File.read("#{Helper.gem_path('match')}/lib/assets/MatchfileTemplate")
4
+ template = File.read("#{Match::ROOT}/lib/assets/MatchfileTemplate")
5
5
 
6
6
  UI.important "Please create a new, private git repository"
7
7
  UI.important "to store the certificates and profiles there"
data/lib/match/utils.rb CHANGED
@@ -7,9 +7,14 @@ module Match
7
7
  #
8
8
  # So, if the passed value can't be resolved as a file in Library/Keychains, just use it as-is
9
9
  # as the keychain path.
10
- keychain_paths = [File.join(Dir.home, 'Library', 'Keychains', keychain), keychain]
10
+ #
11
+ # We need to expand each path because File.exist? won't handle directories including ~ properly
12
+ keychain_paths = [
13
+ File.join(Dir.home, 'Library', 'Keychains', keychain),
14
+ keychain
15
+ ].map { |path| File.expand_path(path) }
11
16
 
12
- keychain_path = keychain_paths.detect { |path| File.exist?(path) }
17
+ keychain_path = keychain_paths.find { |path| File.exist?(path) }
13
18
 
14
19
  UI.user_error!("Could not locate the provided keychain. Tried:\n\t#{keychain_paths.join("\n\t")}") unless keychain_path
15
20
 
data/lib/match/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Match
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  DESCRIPTION = "Easily sync your certificates and profiles across your team using git"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: match
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-03 00:00:00.000000000 Z
11
+ date: 2016-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: security
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.39.0
33
+ version: 0.50.3
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
36
  version: 1.0.0
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 0.39.0
43
+ version: 0.50.3
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.0.0
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 0.13.0
53
+ version: 0.16.0
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
56
  version: 1.0.0
@@ -60,7 +60,7 @@ dependencies:
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 0.13.0
63
+ version: 0.16.0
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
66
  version: 1.0.0
@@ -70,7 +70,7 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.24.0
73
+ version: 0.31.10
74
74
  - - "<"
75
75
  - !ruby/object:Gem::Version
76
76
  version: 1.0.0
@@ -80,7 +80,7 @@ dependencies:
80
80
  requirements:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: 0.24.0
83
+ version: 0.31.10
84
84
  - - "<"
85
85
  - !ruby/object:Gem::Version
86
86
  version: 1.0.0
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 1.2.2
93
+ version: 1.9.0
94
94
  - - "<"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 2.0.0
@@ -100,7 +100,7 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.2.2
103
+ version: 1.9.0
104
104
  - - "<"
105
105
  - !ruby/object:Gem::Version
106
106
  version: 2.0.0
@@ -110,7 +110,7 @@ dependencies:
110
110
  requirements:
111
111
  - - ">="
112
112
  - !ruby/object:Gem::Version
113
- version: 1.2.8
113
+ version: 1.4.1
114
114
  - - "<"
115
115
  - !ruby/object:Gem::Version
116
116
  version: 2.0.0
@@ -120,7 +120,7 @@ dependencies:
120
120
  requirements:
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
- version: 1.2.8
123
+ version: 1.4.1
124
124
  - - "<"
125
125
  - !ruby/object:Gem::Version
126
126
  version: 2.0.0
@@ -311,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
311
311
  version: '0'
312
312
  requirements: []
313
313
  rubyforge_project:
314
- rubygems_version: 2.4.5.1
314
+ rubygems_version: 2.5.1
315
315
  signing_key:
316
316
  specification_version: 4
317
317
  summary: Easily sync your certificates and profiles across your team using git