apple_certs_info 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +16 -16
- data/README.md +51 -6
- data/apple_certs_info.gemspec +3 -2
- data/lib/apple_certs_info/version.rb +1 -1
- data/lib/apple_certs_info.rb +25 -57
- metadata +10 -20
- data/.gitignore +0 -56
- data/.idea/.gitignore +0 -8
- data/.idea/.rakeTasks +0 -7
- data/.idea/apple_certs_info.iml +0 -138
- data/.idea/inspectionProfiles/Project_Default.xml +0 -6
- data/.idea/misc.xml +0 -7
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
- data/.rakeTasks +0 -7
- data/.rspec +0 -3
- data/.rspec_status +0 -6
- data/LICENSE.txt +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d0ebfe01852707c469bebb6c19cb61ead202d4386b441f77d14b27fb9c5aa0a4
|
|
4
|
+
data.tar.gz: da5575bf7d113c0eb6af72d08dd706c497fc921237b66ef965b1bff71fb89b93
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ae1bd29c9e5a8f742fa5839629b9b198b8484e3466f6f36f2d15df9fd33fc2e7151f4db3e99ea12f237b1ead6a675c8b71cd86484e11cf9eebbeacbc4bb09ca
|
|
7
|
+
data.tar.gz: ef1e4489820f419379744ede0bcc9afb5568c377b9b78f9c1472d001142ce094a033f1a7274c8dbc61251af997d829747847c5b6122905fb340200abdc75da24
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
apple_certs_info (0.
|
|
4
|
+
apple_certs_info (0.4.0)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
diff-lcs (1.
|
|
10
|
-
rake (
|
|
11
|
-
rspec (3.
|
|
12
|
-
rspec-core (~> 3.
|
|
13
|
-
rspec-expectations (~> 3.
|
|
14
|
-
rspec-mocks (~> 3.
|
|
15
|
-
rspec-core (3.
|
|
16
|
-
rspec-support (~> 3.
|
|
17
|
-
rspec-expectations (3.
|
|
9
|
+
diff-lcs (1.6.2)
|
|
10
|
+
rake (13.4.2)
|
|
11
|
+
rspec (3.13.2)
|
|
12
|
+
rspec-core (~> 3.13.0)
|
|
13
|
+
rspec-expectations (~> 3.13.0)
|
|
14
|
+
rspec-mocks (~> 3.13.0)
|
|
15
|
+
rspec-core (3.13.6)
|
|
16
|
+
rspec-support (~> 3.13.0)
|
|
17
|
+
rspec-expectations (3.13.5)
|
|
18
18
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
19
|
-
rspec-support (~> 3.
|
|
20
|
-
rspec-mocks (3.
|
|
19
|
+
rspec-support (~> 3.13.0)
|
|
20
|
+
rspec-mocks (3.13.8)
|
|
21
21
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
22
|
-
rspec-support (~> 3.
|
|
23
|
-
rspec-support (3.
|
|
22
|
+
rspec-support (~> 3.13.0)
|
|
23
|
+
rspec-support (3.13.7)
|
|
24
24
|
|
|
25
25
|
PLATFORMS
|
|
26
26
|
ruby
|
|
27
27
|
|
|
28
28
|
DEPENDENCIES
|
|
29
29
|
apple_certs_info!
|
|
30
|
-
rake (~>
|
|
30
|
+
rake (~> 13.0)
|
|
31
31
|
rspec (~> 3.0)
|
|
32
32
|
|
|
33
33
|
BUNDLED WITH
|
|
34
|
-
2.
|
|
34
|
+
2.7.2
|
data/README.md
CHANGED
|
@@ -16,20 +16,25 @@ Or install it yourself as:
|
|
|
16
16
|
|
|
17
17
|
$ gem install apple_certs_info
|
|
18
18
|
|
|
19
|
+
## Requirements
|
|
20
|
+
|
|
21
|
+
macOS only. This gem shells out to `security`, `openssl` and `/usr/libexec/PlistBuddy`.
|
|
22
|
+
|
|
19
23
|
## Usage
|
|
20
24
|
|
|
25
|
+
### Expiring soon
|
|
26
|
+
|
|
21
27
|
Information with an expiration date of 10 days or less will return.
|
|
22
28
|
|
|
23
29
|
- Provisioning Profiles
|
|
24
30
|
|
|
25
|
-
```
|
|
31
|
+
```ruby
|
|
26
32
|
AppleCertsInfo.provisioning_profile_list_limit_days_for(days: 10)
|
|
27
33
|
```
|
|
28
34
|
|
|
29
|
-
-
|
|
30
|
-
|
|
35
|
+
- Certificate files(Development / Distribution)
|
|
31
36
|
|
|
32
|
-
```
|
|
37
|
+
```ruby
|
|
33
38
|
# iPhone Developer / Apple Development
|
|
34
39
|
AppleCertsInfo.certificate_development_list_limit_days_for(days: 10)
|
|
35
40
|
|
|
@@ -37,10 +42,50 @@ AppleCertsInfo.certificate_development_list_limit_days_for(days: 10)
|
|
|
37
42
|
AppleCertsInfo.certificate_distribution_list_limit_days_for(days: 10)
|
|
38
43
|
```
|
|
39
44
|
|
|
45
|
+
### All entries
|
|
46
|
+
|
|
47
|
+
Without filtering by the remaining days.
|
|
48
|
+
|
|
49
|
+
```ruby
|
|
50
|
+
AppleCertsInfo.provisioning_profile_list
|
|
51
|
+
AppleCertsInfo.certificate_development_list
|
|
52
|
+
AppleCertsInfo.certificate_distribution_list
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`provisioning_profile_list` reads `~/Library/MobileDevice/Provisioning Profiles/` by default,
|
|
56
|
+
and another directory can be given with the `dir:` keyword.
|
|
57
|
+
|
|
58
|
+
### Return value
|
|
59
|
+
|
|
60
|
+
Each method returns an Array of Hash.
|
|
61
|
+
|
|
62
|
+
- Certificates
|
|
63
|
+
|
|
64
|
+
| key | description |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `:expire_datetime` | expiration date (`Time`) |
|
|
67
|
+
| `:limit_days` | days left until the expiration date (`Integer`) |
|
|
68
|
+
| `:cname` | CN of the certificate |
|
|
69
|
+
|
|
70
|
+
- Provisioning Profiles
|
|
71
|
+
|
|
72
|
+
| key | description |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| `:expire_datetime` | expiration date (`Time`) |
|
|
75
|
+
| `:limit_days` | days left until the expiration date (`Integer`) |
|
|
76
|
+
| `:app_identifier` | Bundle Identifier |
|
|
77
|
+
| `:app_id_name` | App ID Name |
|
|
78
|
+
| `:file_path` | path of the `.mobileprovision` file |
|
|
79
|
+
|
|
80
|
+
### Debug log
|
|
81
|
+
|
|
82
|
+
```ruby
|
|
83
|
+
AppleCertsInfo.set_debug_log(true)
|
|
84
|
+
```
|
|
40
85
|
|
|
41
86
|
## Contributing
|
|
42
87
|
|
|
43
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/tarappo/apple_certs_info. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/
|
|
88
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/tarappo/apple_certs_info. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/main/CODE_OF_CONDUCT.md).
|
|
44
89
|
|
|
45
90
|
|
|
46
91
|
## License
|
|
@@ -49,4 +94,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
|
49
94
|
|
|
50
95
|
## Code of Conduct
|
|
51
96
|
|
|
52
|
-
Everyone interacting in the AppleCertsInfo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/
|
|
97
|
+
Everyone interacting in the AppleCertsInfo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/main/CODE_OF_CONDUCT.md).
|
data/apple_certs_info.gemspec
CHANGED
|
@@ -7,9 +7,10 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.email = ["tarappo@gmail.com"]
|
|
8
8
|
|
|
9
9
|
spec.summary = %q{Apple Certificate files and Provisioning Profile information.}
|
|
10
|
+
spec.description = %q{Collects expiration dates of the Apple certificates in your macOS Keychain and of the provisioning profiles on your machine, and lists the ones that expire within a given number of days.}
|
|
10
11
|
spec.homepage = "https://github.com/tarappo/apple_certs_info"
|
|
11
12
|
spec.license = "MIT"
|
|
12
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
|
13
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
|
13
14
|
|
|
14
15
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
15
16
|
spec.metadata["source_code_uri"] = "https://github.com/tarappo/apple_certs_info"
|
|
@@ -18,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
|
18
19
|
# Specify which files should be added to the gem when it is released.
|
|
19
20
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
20
21
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
21
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|\.github|\.idea)/}) || f.match(%r{^\.(rspec|rspec_status|gitignore|rakeTasks)$}) }
|
|
22
23
|
end
|
|
23
24
|
spec.bindir = "exe"
|
|
24
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
data/lib/apple_certs_info.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require "apple_certs_info/version"
|
|
2
2
|
require "time"
|
|
3
3
|
require "tempfile"
|
|
4
|
+
require "shellwords"
|
|
4
5
|
|
|
5
6
|
module AppleCertsInfo
|
|
6
7
|
@debug_log = false
|
|
@@ -13,21 +14,6 @@ module AppleCertsInfo
|
|
|
13
14
|
@debug_log
|
|
14
15
|
end
|
|
15
16
|
|
|
16
|
-
# Remove duplicate certificate
|
|
17
|
-
# remove first data
|
|
18
|
-
def self.remove_duplicate_certificate
|
|
19
|
-
list = []
|
|
20
|
-
dist_list = certificate_distribution_list
|
|
21
|
-
develop_list = certificate_development_list
|
|
22
|
-
list.concat(dist_list) unless dist_list.nil?
|
|
23
|
-
list.concat(develop_list) unless develop_list.nil?
|
|
24
|
-
|
|
25
|
-
duplicate_cname = list.group_by{ |e| e[:cname] }.select { |k, v| v.size > 1 }.map(&:first)
|
|
26
|
-
duplicate_cname.each do |cname|
|
|
27
|
-
delete_first_match_keychain(name: cname)
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
17
|
# Check Certificate file for iPhone Developer /Apple Development in the KeyChain
|
|
32
18
|
# @param days: limit days
|
|
33
19
|
# @return:
|
|
@@ -64,22 +50,12 @@ module AppleCertsInfo
|
|
|
64
50
|
|
|
65
51
|
# All iPhone Developer and Apple Development List
|
|
66
52
|
def self.certificate_development_list
|
|
67
|
-
|
|
68
|
-
iphone_list = certificate_list_for(name: "iPhone Developer")
|
|
69
|
-
apple_list = certificate_list_for(name: "Apple Development")
|
|
70
|
-
list.concat(iphone_list) unless iphone_list.nil?
|
|
71
|
-
list.concat(apple_list) unless apple_list.nil?
|
|
72
|
-
return list
|
|
53
|
+
certificate_list_for(name: "iPhone Developer") + certificate_list_for(name: "Apple Development")
|
|
73
54
|
end
|
|
74
55
|
|
|
75
56
|
# All iPhone Distribution and Apple Distribution List
|
|
76
57
|
def self.certificate_distribution_list
|
|
77
|
-
|
|
78
|
-
iphone_list = certificate_list_for(name: "iPhone Distribution")
|
|
79
|
-
apple_list = certificate_list_for(name: "Apple Distribution")
|
|
80
|
-
list.concat(iphone_list) unless iphone_list.nil?
|
|
81
|
-
list.concat(apple_list) unless apple_list.nil?
|
|
82
|
-
return list
|
|
58
|
+
certificate_list_for(name: "iPhone Distribution") + certificate_list_for(name: "Apple Distribution")
|
|
83
59
|
end
|
|
84
60
|
|
|
85
61
|
# Provisioning Profile List
|
|
@@ -95,26 +71,26 @@ module AppleCertsInfo
|
|
|
95
71
|
|
|
96
72
|
begin
|
|
97
73
|
# exchange plist file
|
|
98
|
-
system("security cms -D -i
|
|
74
|
+
unless system("security cms -D -i #{Shellwords.escape(file)} > #{Shellwords.escape(plist_file)}")
|
|
75
|
+
raise "failed to decode Provisioning Profile: #{file}"
|
|
76
|
+
end
|
|
99
77
|
|
|
100
78
|
# checking plist file
|
|
101
|
-
expire_datetime = Time.parse(`/usr/libexec/PlistBuddy -c 'Print ExpirationDate' #{plist_file}`)
|
|
102
|
-
app_identifier = `/usr/libexec/PlistBuddy -c 'Print Entitlements:application-identifier' #{plist_file}`.chomp
|
|
103
|
-
app_id_name = `/usr/libexec/PlistBuddy -c 'Print AppIDName' #{plist_file}`.chomp
|
|
79
|
+
expire_datetime = Time.parse(`/usr/libexec/PlistBuddy -c 'Print ExpirationDate' #{Shellwords.escape(plist_file)}`)
|
|
80
|
+
app_identifier = `/usr/libexec/PlistBuddy -c 'Print Entitlements:application-identifier' #{Shellwords.escape(plist_file)}`.chomp
|
|
81
|
+
app_id_name = `/usr/libexec/PlistBuddy -c 'Print AppIDName' #{Shellwords.escape(plist_file)}`.chomp
|
|
104
82
|
|
|
105
83
|
limit_days = calc_limit_days(datetime: expire_datetime)
|
|
106
|
-
|
|
107
|
-
rescue StandardError => e
|
|
108
|
-
raise(e.message)
|
|
109
84
|
ensure
|
|
110
|
-
temp_plist_file.close
|
|
85
|
+
temp_plist_file.close!
|
|
111
86
|
end
|
|
112
87
|
|
|
113
88
|
list << {
|
|
114
89
|
:expire_datetime => expire_datetime,
|
|
115
90
|
:limit_days => limit_days,
|
|
116
91
|
:app_identifier => app_identifier,
|
|
117
|
-
:app_id_name => app_id_name
|
|
92
|
+
:app_id_name => app_id_name,
|
|
93
|
+
:file_path => file_name_match[0]
|
|
118
94
|
}
|
|
119
95
|
end
|
|
120
96
|
return list
|
|
@@ -129,12 +105,12 @@ module AppleCertsInfo
|
|
|
129
105
|
raise "do not set name param" if name.nil?
|
|
130
106
|
|
|
131
107
|
info = []
|
|
108
|
+
temp_pem_file = certificate_exchange_pem_file_for(name: name)
|
|
132
109
|
begin
|
|
133
|
-
|
|
134
|
-
result = `openssl crl2pkcs7 -nocrl -certfile #{temp_pem_file.path} | openssl pkcs7 -print_certs -text -noout`
|
|
110
|
+
result = `openssl crl2pkcs7 -nocrl -certfile #{Shellwords.escape(temp_pem_file.path)} | openssl pkcs7 -print_certs -text -noout`
|
|
135
111
|
|
|
136
112
|
expire_datetime_match = result.scan(/.*Not After :(.*)/)
|
|
137
|
-
raise "not
|
|
113
|
+
raise "not exists expire date" if expire_datetime_match.empty?
|
|
138
114
|
|
|
139
115
|
cname_match = result.match(/Subject: .* CN=(.*), OU=.*/)
|
|
140
116
|
raise "not exists cname:#{result}" if cname_match.nil?
|
|
@@ -150,31 +126,18 @@ module AppleCertsInfo
|
|
|
150
126
|
:cname => cname,
|
|
151
127
|
}
|
|
152
128
|
end
|
|
153
|
-
rescue StandardError => e
|
|
154
|
-
raise(e.message)
|
|
155
129
|
ensure
|
|
156
|
-
temp_pem_file.close
|
|
130
|
+
temp_pem_file.close!
|
|
157
131
|
end
|
|
158
132
|
|
|
159
133
|
return info
|
|
160
134
|
end
|
|
161
135
|
|
|
162
136
|
|
|
163
|
-
|
|
164
|
-
def self.delete_first_match_keychain(name:)
|
|
165
|
-
result = `security find-certificate -a -c "#{name}" -Z`
|
|
166
|
-
sha_match = result.match(/SHA-1 hash: (.*)/)
|
|
167
|
-
keychain_path = result.match(/keychain: (.*)/)
|
|
168
|
-
raise "not exits sha-1" if sha_match.nil?
|
|
169
|
-
raise "not exits keychain_path" if keychain_path.nil?
|
|
170
|
-
sha1 = sha_match[1]
|
|
171
|
-
puts "Delete #{name} / SHA-1: #{sha1}"
|
|
172
|
-
|
|
173
|
-
result = `security delete-certificate -Z #{sha1} #{keychain_path[1]}`
|
|
174
|
-
end
|
|
137
|
+
# --- internal methods ---
|
|
175
138
|
|
|
176
139
|
def self.certificate_list_for(name:)
|
|
177
|
-
result = `security find-certificate -a -c
|
|
140
|
+
result = `security find-certificate -a -c #{Shellwords.escape(name)} -Z`
|
|
178
141
|
name_match_list = result.scan(/.*alis".*=\"(.*)\".*/)
|
|
179
142
|
puts(name_match_list) if @debug_log == true
|
|
180
143
|
|
|
@@ -183,7 +146,7 @@ module AppleCertsInfo
|
|
|
183
146
|
info << certificate_info_for(name:name_match[0])
|
|
184
147
|
end
|
|
185
148
|
|
|
186
|
-
info.flatten
|
|
149
|
+
info.flatten
|
|
187
150
|
end
|
|
188
151
|
|
|
189
152
|
# filtering list
|
|
@@ -200,7 +163,7 @@ module AppleCertsInfo
|
|
|
200
163
|
# @param name: unique name
|
|
201
164
|
def self.certificate_exchange_pem_file_for(name:)
|
|
202
165
|
temp_pem_file = Tempfile.new(::File.basename("temp_pem"))
|
|
203
|
-
`security find-certificate -a -c
|
|
166
|
+
`security find-certificate -a -c #{Shellwords.escape(name)} -p > #{Shellwords.escape(temp_pem_file.path)}`
|
|
204
167
|
|
|
205
168
|
temp_pem_file
|
|
206
169
|
end
|
|
@@ -208,4 +171,9 @@ module AppleCertsInfo
|
|
|
208
171
|
def self.calc_limit_days(datetime:)
|
|
209
172
|
((datetime - Time.now)/(24*60*60)).ceil
|
|
210
173
|
end
|
|
174
|
+
|
|
175
|
+
private_class_method :certificate_list_for,
|
|
176
|
+
:filtering_limit_days_for,
|
|
177
|
+
:certificate_exchange_pem_file_for,
|
|
178
|
+
:calc_limit_days
|
|
211
179
|
end
|
metadata
CHANGED
|
@@ -1,38 +1,28 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: apple_certs_info
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- tarappo
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-08-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
|
-
description:
|
|
13
|
+
description: Collects expiration dates of the Apple certificates in your macOS Keychain
|
|
14
|
+
and of the provisioning profiles on your machine, and lists the ones that expire
|
|
15
|
+
within a given number of days.
|
|
14
16
|
email:
|
|
15
17
|
- tarappo@gmail.com
|
|
16
18
|
executables: []
|
|
17
19
|
extensions: []
|
|
18
20
|
extra_rdoc_files: []
|
|
19
21
|
files:
|
|
20
|
-
- ".gitignore"
|
|
21
|
-
- ".idea/.gitignore"
|
|
22
|
-
- ".idea/.rakeTasks"
|
|
23
|
-
- ".idea/apple_certs_info.iml"
|
|
24
|
-
- ".idea/inspectionProfiles/Project_Default.xml"
|
|
25
|
-
- ".idea/misc.xml"
|
|
26
|
-
- ".idea/modules.xml"
|
|
27
|
-
- ".idea/vcs.xml"
|
|
28
|
-
- ".rakeTasks"
|
|
29
|
-
- ".rspec"
|
|
30
|
-
- ".rspec_status"
|
|
31
22
|
- CODE_OF_CONDUCT.md
|
|
32
23
|
- Gemfile
|
|
33
24
|
- Gemfile.lock
|
|
34
25
|
- LICENSE
|
|
35
|
-
- LICENSE.txt
|
|
36
26
|
- README.md
|
|
37
27
|
- Rakefile
|
|
38
28
|
- apple_certs_info.gemspec
|
|
@@ -45,7 +35,7 @@ metadata:
|
|
|
45
35
|
homepage_uri: https://github.com/tarappo/apple_certs_info
|
|
46
36
|
source_code_uri: https://github.com/tarappo/apple_certs_info
|
|
47
37
|
changelog_uri: https://github.com/tarappo/apple_certs_info/releases
|
|
48
|
-
post_install_message:
|
|
38
|
+
post_install_message:
|
|
49
39
|
rdoc_options: []
|
|
50
40
|
require_paths:
|
|
51
41
|
- lib
|
|
@@ -53,15 +43,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
53
43
|
requirements:
|
|
54
44
|
- - ">="
|
|
55
45
|
- !ruby/object:Gem::Version
|
|
56
|
-
version: 2.
|
|
46
|
+
version: 2.5.0
|
|
57
47
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
58
48
|
requirements:
|
|
59
49
|
- - ">="
|
|
60
50
|
- !ruby/object:Gem::Version
|
|
61
51
|
version: '0'
|
|
62
52
|
requirements: []
|
|
63
|
-
rubygems_version: 3.
|
|
64
|
-
signing_key:
|
|
53
|
+
rubygems_version: 3.4.19
|
|
54
|
+
signing_key:
|
|
65
55
|
specification_version: 4
|
|
66
56
|
summary: Apple Certificate files and Provisioning Profile information.
|
|
67
57
|
test_files: []
|
data/.gitignore
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
*.gem
|
|
2
|
-
*.rbc
|
|
3
|
-
/.config
|
|
4
|
-
/coverage/
|
|
5
|
-
/InstalledFiles
|
|
6
|
-
/pkg/
|
|
7
|
-
/spec/reports/
|
|
8
|
-
/spec/examples.txt
|
|
9
|
-
/test/tmp/
|
|
10
|
-
/test/version_tmp/
|
|
11
|
-
/tmp/
|
|
12
|
-
|
|
13
|
-
# Used by dotenv library to load environment variables.
|
|
14
|
-
# .env
|
|
15
|
-
|
|
16
|
-
# Ignore Byebug command history file.
|
|
17
|
-
.byebug_history
|
|
18
|
-
|
|
19
|
-
## Specific to RubyMotion:
|
|
20
|
-
.dat*
|
|
21
|
-
.repl_history
|
|
22
|
-
build/
|
|
23
|
-
*.bridgesupport
|
|
24
|
-
build-iPhoneOS/
|
|
25
|
-
build-iPhoneSimulator/
|
|
26
|
-
|
|
27
|
-
## Specific to RubyMotion (use of CocoaPods):
|
|
28
|
-
#
|
|
29
|
-
# We recommend against adding the Pods directory to your .gitignore. However
|
|
30
|
-
# you should judge for yourself, the pros and cons are mentioned at:
|
|
31
|
-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
|
32
|
-
#
|
|
33
|
-
# vendor/Pods/
|
|
34
|
-
|
|
35
|
-
## Documentation cache and generated files:
|
|
36
|
-
/.yardoc/
|
|
37
|
-
/_yardoc/
|
|
38
|
-
/doc/
|
|
39
|
-
/rdoc/
|
|
40
|
-
|
|
41
|
-
## Environment normalization:
|
|
42
|
-
/.bundle/
|
|
43
|
-
/vendor/bundle
|
|
44
|
-
/lib/bundler/man/
|
|
45
|
-
|
|
46
|
-
# for a library or gem, you might want to ignore these files since the code is
|
|
47
|
-
# intended to run in multiple environments; otherwise, check them in:
|
|
48
|
-
# Gemfile.lock
|
|
49
|
-
# .ruby-version
|
|
50
|
-
# .ruby-gemset
|
|
51
|
-
|
|
52
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
53
|
-
.rvmrc
|
|
54
|
-
|
|
55
|
-
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
|
56
|
-
# .rubocop-https?--*
|
data/.idea/.gitignore
DELETED
data/.idea/.rakeTasks
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<Settings><!--This file was automatically generated by Ruby plugin.
|
|
3
|
-
You are allowed to:
|
|
4
|
-
1. Remove rake task
|
|
5
|
-
2. Add existing rake tasks
|
|
6
|
-
To add existing rake tasks automatically delete this file and reload the project.
|
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
data/.idea/apple_certs_info.iml
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
|
3
|
-
<component name="ModuleRunConfigurationManager">
|
|
4
|
-
<shared />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="NewModuleRootManager">
|
|
7
|
-
<content url="file://$MODULE_DIR$">
|
|
8
|
-
<sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
|
|
9
|
-
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
|
10
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
|
11
|
-
<excludeFolder url="file://$MODULE_DIR$/vendor/bundle" />
|
|
12
|
-
</content>
|
|
13
|
-
<orderEntry type="inheritedJdk" />
|
|
14
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
15
|
-
<orderEntry type="module-library">
|
|
16
|
-
<library name="diff-lcs (vbundled(1.4.4)) [path][gem]" type="rubylib">
|
|
17
|
-
<properties>
|
|
18
|
-
<option name="version" value="4" />
|
|
19
|
-
</properties>
|
|
20
|
-
<CLASSES>
|
|
21
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/bin" />
|
|
22
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/lib" />
|
|
23
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/docs" />
|
|
24
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/spec" />
|
|
25
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/autotest" />
|
|
26
|
-
</CLASSES>
|
|
27
|
-
<SOURCES>
|
|
28
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/bin" />
|
|
29
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/lib" />
|
|
30
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/docs" />
|
|
31
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/spec" />
|
|
32
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/autotest" />
|
|
33
|
-
</SOURCES>
|
|
34
|
-
<excluded>
|
|
35
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/bin" />
|
|
36
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/docs" />
|
|
37
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/spec" />
|
|
38
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/autotest" />
|
|
39
|
-
</excluded>
|
|
40
|
-
</library>
|
|
41
|
-
</orderEntry>
|
|
42
|
-
<orderEntry type="module-library">
|
|
43
|
-
<library name="rake (vbundled(12.3.3)) [path][gem]" type="rubylib">
|
|
44
|
-
<properties>
|
|
45
|
-
<option name="version" value="4" />
|
|
46
|
-
</properties>
|
|
47
|
-
<CLASSES>
|
|
48
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin" />
|
|
49
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc" />
|
|
50
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe" />
|
|
51
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib" />
|
|
52
|
-
</CLASSES>
|
|
53
|
-
<SOURCES>
|
|
54
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin" />
|
|
55
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc" />
|
|
56
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe" />
|
|
57
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib" />
|
|
58
|
-
</SOURCES>
|
|
59
|
-
<excluded>
|
|
60
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin" />
|
|
61
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc" />
|
|
62
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe" />
|
|
63
|
-
</excluded>
|
|
64
|
-
</library>
|
|
65
|
-
</orderEntry>
|
|
66
|
-
<orderEntry type="module-library">
|
|
67
|
-
<library name="rspec (vbundled(3.10.0)) [path][gem]" type="rubylib">
|
|
68
|
-
<properties>
|
|
69
|
-
<option name="version" value="4" />
|
|
70
|
-
</properties>
|
|
71
|
-
<CLASSES>
|
|
72
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-3.10.0/lib" />
|
|
73
|
-
</CLASSES>
|
|
74
|
-
<SOURCES>
|
|
75
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-3.10.0/lib" />
|
|
76
|
-
</SOURCES>
|
|
77
|
-
</library>
|
|
78
|
-
</orderEntry>
|
|
79
|
-
<orderEntry type="module-library">
|
|
80
|
-
<library name="rspec-core (vbundled(3.10.1)) [path][gem]" type="rubylib">
|
|
81
|
-
<properties>
|
|
82
|
-
<option name="version" value="4" />
|
|
83
|
-
</properties>
|
|
84
|
-
<CLASSES>
|
|
85
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/exe" />
|
|
86
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib" />
|
|
87
|
-
</CLASSES>
|
|
88
|
-
<SOURCES>
|
|
89
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/exe" />
|
|
90
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib" />
|
|
91
|
-
</SOURCES>
|
|
92
|
-
<excluded>
|
|
93
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/exe" />
|
|
94
|
-
</excluded>
|
|
95
|
-
</library>
|
|
96
|
-
</orderEntry>
|
|
97
|
-
<orderEntry type="module-library">
|
|
98
|
-
<library name="rspec-expectations (vbundled(3.10.1)) [path][gem]" type="rubylib">
|
|
99
|
-
<properties>
|
|
100
|
-
<option name="version" value="4" />
|
|
101
|
-
</properties>
|
|
102
|
-
<CLASSES>
|
|
103
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib" />
|
|
104
|
-
</CLASSES>
|
|
105
|
-
<SOURCES>
|
|
106
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib" />
|
|
107
|
-
</SOURCES>
|
|
108
|
-
</library>
|
|
109
|
-
</orderEntry>
|
|
110
|
-
<orderEntry type="module-library">
|
|
111
|
-
<library name="rspec-mocks (vbundled(3.10.2)) [path][gem]" type="rubylib">
|
|
112
|
-
<properties>
|
|
113
|
-
<option name="version" value="4" />
|
|
114
|
-
</properties>
|
|
115
|
-
<CLASSES>
|
|
116
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib" />
|
|
117
|
-
</CLASSES>
|
|
118
|
-
<SOURCES>
|
|
119
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib" />
|
|
120
|
-
</SOURCES>
|
|
121
|
-
</library>
|
|
122
|
-
</orderEntry>
|
|
123
|
-
<orderEntry type="module-library">
|
|
124
|
-
<library name="rspec-support (vbundled(3.10.2)) [path][gem]" type="rubylib">
|
|
125
|
-
<properties>
|
|
126
|
-
<option name="version" value="4" />
|
|
127
|
-
</properties>
|
|
128
|
-
<CLASSES>
|
|
129
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib" />
|
|
130
|
-
</CLASSES>
|
|
131
|
-
<SOURCES>
|
|
132
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib" />
|
|
133
|
-
</SOURCES>
|
|
134
|
-
</library>
|
|
135
|
-
</orderEntry>
|
|
136
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.2, rbenv: 2.6.5) [gem]" level="application" />
|
|
137
|
-
</component>
|
|
138
|
-
</module>
|
data/.idea/misc.xml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="JavaScriptSettings">
|
|
4
|
-
<option name="languageLevel" value="ES6" />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="ProjectRootManager" version="2" project-jdk-name="rbenv: 2.6.5" project-jdk-type="RUBY_SDK" />
|
|
7
|
-
</project>
|
data/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/apple_certs_info.iml" filepath="$PROJECT_DIR$/.idea/apple_certs_info.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
data/.idea/vcs.xml
DELETED
data/.rakeTasks
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<Settings><!--This file was automatically generated by Ruby plugin.
|
|
3
|
-
You are allowed to:
|
|
4
|
-
1. Remove rake task
|
|
5
|
-
2. Add existing rake tasks
|
|
6
|
-
To add existing rake tasks automatically delete this file and reload the project.
|
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
data/.rspec
DELETED
data/.rspec_status
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
example_id | status | run_time |
|
|
2
|
-
------------------------------------ | ------- | --------------- |
|
|
3
|
-
./spec/apple_certs_info_spec.rb[1:1] | passed | 0.00054 seconds |
|
|
4
|
-
./spec/apple_certs_info_spec.rb[1:2] | pending | 0.00001 seconds |
|
|
5
|
-
./spec/apple_certs_info_spec.rb[1:3] | passed | 0.37772 seconds |
|
|
6
|
-
./spec/apple_certs_info_spec.rb[1:4] | pending | 0.00002 seconds |
|
data/LICENSE.txt
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2021 Toshiyuki Hirata
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE.
|