cupertino 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +13 -13
- data/README.md +48 -123
- data/cupertino.gemspec +4 -3
- data/lib/cupertino/provisioning_portal/agent.rb +144 -199
- data/lib/cupertino/provisioning_portal/commands/certificates.rb +6 -6
- data/lib/cupertino/provisioning_portal/commands/devices.rb +1 -1
- data/lib/cupertino/provisioning_portal/commands/login.rb +2 -2
- data/lib/cupertino/provisioning_portal/commands/logout.rb +2 -2
- data/lib/cupertino/provisioning_portal/commands/profiles.rb +2 -2
- data/lib/cupertino/provisioning_portal/commands.rb +0 -1
- data/lib/cupertino/provisioning_portal/helpers.rb +13 -4
- data/lib/cupertino/provisioning_portal.rb +7 -4
- data/lib/cupertino.rb +1 -2
- metadata +35 -62
- data/cupertino-0.7.0.gem +0 -0
- data/lib/cupertino/provisioning_portal/commands/pass_type_ids.rb +0 -139
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fb126a731dcababd39c34124ed4b45c17a997083
|
4
|
+
data.tar.gz: 58b36f572201660c304b410205f2d6246fba3c01
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6284590a5d7ac5264dedfc1e504ea8c2fe1084b2386e1f9e5fc13a9fb592597a9f3004c81e4b425f54e56ea55b5ef3c3fdf0c58a682be9c67897d09725cee03b
|
7
|
+
data.tar.gz: 895b0ea5f3c2ab46661bbdb18b5e6a27b5be1ad8365bb33f3c47b6d4be3d87528bcb15949a0f366d857d1ceb6350142b8a665f12bce8c381a81e623d7443e646
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cupertino (0.
|
4
|
+
cupertino (0.8.0)
|
5
5
|
certified (>= 0.1.0)
|
6
6
|
commander (~> 4.1.2)
|
7
7
|
mechanize (~> 2.5.1)
|
@@ -11,19 +11,19 @@ PATH
|
|
11
11
|
terminal-table (~> 1.4.5)
|
12
12
|
|
13
13
|
GEM
|
14
|
-
remote:
|
14
|
+
remote: https://rubygems.org/
|
15
15
|
specs:
|
16
16
|
certified (0.1.1)
|
17
|
-
commander (4.1.
|
17
|
+
commander (4.1.3)
|
18
18
|
highline (~> 1.6.11)
|
19
|
-
domain_name (0.5.
|
19
|
+
domain_name (0.5.7)
|
20
20
|
unf (~> 0.0.3)
|
21
|
-
faraday (0.8.
|
21
|
+
faraday (0.8.7)
|
22
22
|
multipart-post (~> 1.1)
|
23
23
|
faraday_middleware (0.8.8)
|
24
24
|
faraday (>= 0.7.4, < 0.9)
|
25
|
-
highline (1.6.
|
26
|
-
json (1.7.
|
25
|
+
highline (1.6.18)
|
26
|
+
json (1.7.7)
|
27
27
|
mechanize (2.5.1)
|
28
28
|
domain_name (~> 0.5, >= 0.5.1)
|
29
29
|
mime-types (~> 1.17, >= 1.17.2)
|
@@ -32,16 +32,16 @@ GEM
|
|
32
32
|
nokogiri (~> 1.4)
|
33
33
|
ntlm-http (~> 0.1, >= 0.1.1)
|
34
34
|
webrobots (~> 0.0, >= 0.0.9)
|
35
|
-
mime-types (1.
|
36
|
-
multipart-post (1.
|
35
|
+
mime-types (1.23)
|
36
|
+
multipart-post (1.2.0)
|
37
37
|
net-http-digest_auth (1.2.1)
|
38
38
|
net-http-persistent (2.8)
|
39
|
-
nokogiri (1.5.
|
39
|
+
nokogiri (1.5.9)
|
40
40
|
ntlm-http (0.1.1)
|
41
41
|
rake (0.9.2.2)
|
42
42
|
rspec (0.6.4)
|
43
43
|
security (0.1.2)
|
44
|
-
shenzhen (0.
|
44
|
+
shenzhen (0.3.0)
|
45
45
|
commander (~> 4.1.2)
|
46
46
|
faraday (~> 0.8.0)
|
47
47
|
faraday_middleware (~> 0.8.7)
|
@@ -58,5 +58,5 @@ PLATFORMS
|
|
58
58
|
|
59
59
|
DEPENDENCIES
|
60
60
|
cupertino!
|
61
|
-
rake
|
62
|
-
rspec
|
61
|
+
rake
|
62
|
+
rspec
|
data/README.md
CHANGED
@@ -3,180 +3,105 @@
|
|
3
3
|
|
4
4
|
Automate administrative tasks that you would normally have to do through the Apple Dev Center websites. Life's too short to manage device identifiers by hand!
|
5
5
|
|
6
|
-
|
6
|
+
> Cupertino is named after [Cupertino, CA](http://en.wikipedia.org/wiki/Cupertino,_California): home to Apple, Inc.'s world headquarters.
|
7
|
+
> It's part of a series of world-class command-line utilities for iOS development, which includes [Shenzhen](https://github.com/mattt/shenzhen) (Building & Distribution), [Houston](https://github.com/mattt/houston) (Push Notifications), [Venice](https://github.com/mattt/venice) (In-App Purchase Receipt Verification), and [Dubai](https://github.com/mattt/dubai) (Passbook pass generation).
|
7
8
|
|
8
9
|
## Installation
|
9
10
|
|
10
|
-
|
11
|
-
$ gem install cupertino
|
12
|
-
```
|
11
|
+
$ gem install cupertino
|
13
12
|
|
14
13
|
## Usage
|
15
14
|
|
16
15
|
### Authentication
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
```
|
17
|
+
$ ios login
|
18
|
+
|
21
19
|
|
22
20
|
_Credentials are saved in the Keychain. You will not be prompted for your username or password by commands while you are logged in. (Mac only)_
|
23
21
|
|
24
22
|
### Devices
|
25
23
|
|
26
|
-
|
27
|
-
$ ios devices:list
|
24
|
+
$ ios devices:list
|
28
25
|
|
29
|
-
+------------------------------+---------------------------------------+
|
30
|
-
| Listing 2 devices. You can register 98 additional devices. |
|
31
|
-
+---------------------------+------------------------------------------+
|
32
|
-
| Device Name | Device Identifier |
|
33
|
-
+---------------------------+------------------------------------------+
|
34
|
-
| Johnny Appleseed iPad | 0123456789012345678901234567890123abcdef |
|
35
|
-
| Johnny Appleseed iPhone | abcdef0123456789012345678901234567890123 |
|
36
|
-
+---------------------------+------------------------------------------+
|
26
|
+
+------------------------------+---------------------------------------+
|
27
|
+
| Listing 2 devices. You can register 98 additional devices. |
|
28
|
+
+---------------------------+------------------------------------------+
|
29
|
+
| Device Name | Device Identifier |
|
30
|
+
+---------------------------+------------------------------------------+
|
31
|
+
| Johnny Appleseed iPad | 0123456789012345678901234567890123abcdef |
|
32
|
+
| Johnny Appleseed iPhone | abcdef0123456789012345678901234567890123 |
|
33
|
+
+---------------------------+------------------------------------------+
|
37
34
|
|
38
|
-
$ ios devices:add "iPad 1"=abc123
|
39
|
-
$ ios devices:add "iPad 2"=def456 "iPad 3"=ghi789 ...
|
40
|
-
```
|
35
|
+
$ ios devices:add "iPad 1"=abc123
|
36
|
+
$ ios devices:add "iPad 2"=def456 "iPad 3"=ghi789 ...
|
41
37
|
|
42
38
|
### Provisioning Profiles
|
43
39
|
|
44
|
-
|
45
|
-
$ ios profiles:list
|
40
|
+
$ ios profiles:list
|
46
41
|
|
47
|
-
+----------------------------------+--------------+---------+
|
48
|
-
| Profile | App ID | Status |
|
49
|
-
+----------------------------------+--------------+---------+
|
50
|
-
| iOS Team Provisioning Profile: * | ABCDEFG123.* | Valid |
|
51
|
-
+----------------------------------+--------------+---------+
|
52
|
-
```
|
42
|
+
+----------------------------------+--------------+---------+
|
43
|
+
| Profile | App ID | Status |
|
44
|
+
+----------------------------------+--------------+---------+
|
45
|
+
| iOS Team Provisioning Profile: * | ABCDEFG123.* | Valid |
|
46
|
+
+----------------------------------+--------------+---------+
|
53
47
|
|
54
48
|
---
|
55
49
|
|
56
|
-
|
57
|
-
$ ios profiles:manage:devices
|
58
|
-
```
|
50
|
+
$ ios profiles:manage:devices
|
59
51
|
|
60
52
|
_Opens an editor with a list of devices, each of which can be commented / uncommented to turn them off / on for that provisioning profile._
|
61
53
|
|
62
|
-
|
63
|
-
|
64
|
-
Johnny Appleseed
|
65
|
-
# Johnny Appleseed iPhone abcdef0123456789012345678901234567890123
|
66
|
-
```
|
54
|
+
# Comment / Uncomment Devices to Turn Off / On for Provisioning Profile
|
55
|
+
Johnny Appleseed iPad 0123456789012345678901234567890123abcdef
|
56
|
+
# Johnny Appleseed iPhone abcdef0123456789012345678901234567890123
|
67
57
|
|
68
58
|
### App IDs
|
69
59
|
|
70
|
-
|
71
|
-
$ ios app_ids:list
|
72
|
-
|
73
|
-
+-----------------------------+------------------------+-------------------+-------------------+
|
74
|
-
| Bundle Seed ID | Description | Development | Distribution |
|
75
|
-
+-----------------------------+------------------------+-------------------+-------------------+
|
76
|
-
| 123ABCDEFG.com.mattt.bundle | App Bundle Description | Passes | Passes |
|
77
|
-
| | | Data Protection | Data Protection |
|
78
|
-
| | | iCloud | iCloud |
|
79
|
-
| | | In-App Purchase | In-App Purchase |
|
80
|
-
| | | Game Center | Game Center |
|
81
|
-
| | | Push Notification | Push Notification |
|
82
|
-
+-----------------------------+------------------------+-------------------+-------------------+
|
83
|
-
```
|
84
|
-
|
85
|
-
### Certificates
|
86
|
-
|
87
|
-
```
|
88
|
-
$ ios certificates:list
|
89
|
-
|
90
|
-
+------------------+----------------------------------+-----------------+--------+
|
91
|
-
| Name | Provisioning Profiles | Expiration Date | Status |
|
92
|
-
+------------------+----------------------------------+-----------------+--------+
|
93
|
-
| Johnny Appleseed | iOS Team Provisioning Profile: * | Dec 23, 2012 | Issued |
|
94
|
-
+------------------+----------------------------------+-----------------+--------+
|
95
|
-
```
|
96
|
-
|
97
|
-
### Pass Type IDs
|
98
|
-
|
99
|
-
```sh
|
100
|
-
$ ios pass_type_ids:add pass.com.example.coupon.myExamplePass --description "My Example Pass Coupon"
|
101
|
-
|
102
|
-
Added pass.com.example.coupon.myExamplePass: My Example Pass Coupon
|
103
|
-
```
|
104
|
-
|
105
|
-
---
|
106
|
-
|
107
|
-
```sh
|
108
|
-
$ ios pass_type_ids:list
|
109
|
-
|
110
|
-
+------------+--------------------------------------------+--------------+-------------------+
|
111
|
-
| Card ID | Identifier | Description | Pass Certificates |
|
112
|
-
+------------+--------------------------------------------+--------------+-------------------+
|
113
|
-
| WWWWWWWWWW | pass.com.example.coupon.myExamplePass | Coupon | None |
|
114
|
-
| XXXXXXXXXX | pass.com.example.eventTicket.myExamplePass | Event Ticket | Pass Certificate |
|
115
|
-
| YYYYYYYYYY | pass.com.example.movieTicket.myExamplePass | Movie Ticket | Pass Certificate |
|
116
|
-
| ZZZZZZZZZZ | pass.com.example.test.001 | Test | Pass Certificate |
|
117
|
-
+------------+--------------------------------------------+--------------+-------------------+
|
118
|
-
```
|
119
|
-
|
120
|
-
---
|
121
|
-
|
122
|
-
```sh
|
123
|
-
$ ios pass_type_ids:certificates:add pass.com.example.coupon.myExamplePass --csr /path/to/csr
|
124
|
-
|
125
|
-
Configured pass.com.example.coupon.myExamplePass. Apple is generating the certificate...
|
126
|
-
Certificate generated and is ready to be downloaded.
|
127
|
-
```
|
128
|
-
|
129
|
-
---
|
60
|
+
$ ios app_ids:list
|
130
61
|
|
131
|
-
|
132
|
-
|
62
|
+
+-----------------------------+------------------------+-------------------+-------------------+
|
63
|
+
| Bundle Seed ID | Description | Development | Distribution |
|
64
|
+
+-----------------------------+------------------------+-------------------+-------------------+
|
65
|
+
| 123ABCDEFG.com.mattt.bundle | App Bundle Description | Passes | Passes |
|
66
|
+
| | | Data Protection | Data Protection |
|
67
|
+
| | | iCloud | iCloud |
|
68
|
+
| | | In-App Purchase | In-App Purchase |
|
69
|
+
| | | Game Center | Game Center |
|
70
|
+
| | | Push Notification | Push Notification |
|
71
|
+
+-----------------------------+------------------------+-------------------+-------------------+
|
133
72
|
|
134
|
-
|
135
|
-
| Name | Status | Expiration Date | Certificate ID |
|
136
|
-
+------------------+------------+-----------------+----------------+
|
137
|
-
| Pass Certificate | Configured | Nov 21, 2013 | AAAAAAAAAA |
|
138
|
-
+------------------+------------+-----------------+----------------+
|
139
|
-
```
|
140
|
-
|
141
|
-
---
|
73
|
+
### Certificates
|
142
74
|
|
143
|
-
|
144
|
-
$ ios pass_type_ids:certificates:download pass.com.example.coupon.myExamplePass --certificate_id AAAAAAAAAA
|
75
|
+
$ ios certificates:list
|
145
76
|
|
146
|
-
|
147
|
-
|
77
|
+
+------------------+----------------------------------+-----------------+--------+
|
78
|
+
| Name | Provisioning Profiles | Expiration Date | Status |
|
79
|
+
+------------------+----------------------------------+-----------------+--------+
|
80
|
+
| Johnny Appleseed | iOS Team Provisioning Profile: * | Dec 23, 2012 | Issued |
|
81
|
+
+------------------+----------------------------------+-----------------+--------+
|
148
82
|
|
149
83
|
## Commands
|
150
84
|
|
151
|
-
_Crossed out commands are not yet implemented_
|
152
|
-
|
153
85
|
- `login`
|
154
86
|
- `logout`
|
155
|
-
|
156
87
|
- `devices:add`
|
157
88
|
- `devices:list`
|
158
|
-
- ~~`devices:remove`~~
|
159
|
-
|
160
89
|
- `profiles:list`
|
161
90
|
- `profiles:manage:devices`
|
162
91
|
- `profiles:download`
|
163
|
-
- ~~`profiles:add`~~
|
164
|
-
- ~~`profiles:edit`~~
|
165
|
-
|
166
92
|
- `certificates:list [development|distribution]`
|
167
93
|
- `certificates:download`
|
168
|
-
- ~~`certificates:revoke CERTIFICATE_NAME`~~
|
169
|
-
|
170
94
|
- `app_ids:list`
|
171
|
-
|
95
|
+
|
96
|
+
### Disabled Commands
|
97
|
+
|
98
|
+
> With the latest updates to the Apple Developer Portal, the following functionality has been removed.
|
172
99
|
|
173
100
|
- `pass_type_ids:list`
|
174
101
|
- `pass_type_ids:add`
|
175
|
-
- ~~`pass_type_ids:remove`~~
|
176
102
|
- `pass_type_ids:certificates:list`
|
177
103
|
- `pass_type_ids:certificates:add`
|
178
104
|
- `pass_type_ids:certificates:download`
|
179
|
-
- ~~`pass_type_ids:certificates:revoke CERTIFICATE_NAME`~~
|
180
105
|
|
181
106
|
## Contact
|
182
107
|
|
data/cupertino.gemspec
CHANGED
@@ -4,6 +4,7 @@ require "cupertino"
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "cupertino"
|
7
|
+
s.license = "MIT"
|
7
8
|
s.authors = ["Mattt Thompson"]
|
8
9
|
s.email = "m@mattt.me"
|
9
10
|
s.homepage = "http://mattt.me"
|
@@ -12,9 +13,6 @@ Gem::Specification.new do |s|
|
|
12
13
|
s.summary = "Cupertino"
|
13
14
|
s.description = "A command-line interface for the iOS Provisioning Portal"
|
14
15
|
|
15
|
-
s.add_development_dependency "rspec", "~> 0.6.1"
|
16
|
-
s.add_development_dependency "rake", "~> 0.9.2"
|
17
|
-
|
18
16
|
s.add_dependency "commander", "~> 4.1.2"
|
19
17
|
s.add_dependency "terminal-table", "~> 1.4.5"
|
20
18
|
s.add_dependency "term-ansicolor", "~> 1.0.7"
|
@@ -23,6 +21,9 @@ Gem::Specification.new do |s|
|
|
23
21
|
s.add_dependency "shenzhen", ">= 0.0.1"
|
24
22
|
s.add_dependency "certified", ">= 0.1.0"
|
25
23
|
|
24
|
+
s.add_development_dependency "rspec"
|
25
|
+
s.add_development_dependency "rake"
|
26
|
+
|
26
27
|
s.files = Dir["./**/*"].reject { |file| file =~ /\.\/(bin|log|pkg|script|spec|test|vendor)/ }
|
27
28
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
28
29
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|