omudid 1.0.6 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +5 -0
- data/Gemfile +0 -4
- data/README.md +3 -0
- data/Rakefile +8 -0
- data/bin/omudid +44 -37
- data/lib/omudid/portal_agent.rb +51 -6
- data/lib/omudid/testflight_agent.rb +44 -5
- data/lib/omudid.rb +1 -1
- data/omudid.gemspec +7 -2
- data/test/.DS_Store +0 -0
- data/test/test_omudid.rb +37 -0
- data/test/vcr/teams.yml +682 -0
- metadata +69 -13
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -5,6 +5,8 @@ Conveniently add a UDID to the iOS Developer Portal, refresh a provisioning prof
|
|
5
5
|
|
6
6
|
Uploading a new provisioning profile to TestFlight is also supported.
|
7
7
|
|
8
|
+
[![Build Status](https://travis-ci.org/Papercloud/OneMoreUDID.png)](https://travis-ci.org/Papercloud/OneMoreUDID)
|
9
|
+
|
8
10
|
Installation
|
9
11
|
-
|
10
12
|
```
|
@@ -107,4 +109,5 @@ Note: you can repeat this process by running:
|
|
107
109
|
|
108
110
|
Loading page... done
|
109
111
|
Submitted ~/Library/MobileDevice/Provisioning Profiles/demo1.mobileprovision
|
112
|
+
Share link: http://testflightapp.com/install/XYZ/
|
110
113
|
```
|
data/Rakefile
CHANGED
data/bin/omudid
CHANGED
@@ -13,7 +13,7 @@ require 'cupertino_compatibility'
|
|
13
13
|
require 'shellwords'
|
14
14
|
|
15
15
|
program :name, 'OneMoreUDID'
|
16
|
-
program :version,
|
16
|
+
program :version, "1.0.7"
|
17
17
|
program :description, '''Uses the developer portal to add one device to a provisioning profile,
|
18
18
|
then downloads and installs the new profile.
|
19
19
|
Also uploads provisioning profiles to TestFlight.'''
|
@@ -28,19 +28,19 @@ command :'list-teams' do |c|
|
|
28
28
|
c.description = ''
|
29
29
|
|
30
30
|
c.action do |args, options|
|
31
|
-
|
32
|
-
|
31
|
+
agent = OneMoreUDID::PortalAgent.new
|
32
|
+
|
33
|
+
username, password = (args[0] rescue nil), (args[1] rescue nil)
|
34
|
+
username, password = agent.login(username, password)
|
33
35
|
|
34
36
|
if !args[1]
|
35
37
|
puts
|
36
|
-
say_warning 'Note: you can
|
38
|
+
say_warning 'Note: you can automate this process by running:'
|
37
39
|
say_warning ' omudid list-teams ' + Shellwords.escape(username) + ' [password]'
|
38
40
|
puts
|
39
41
|
end
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
teams = agent.get_teams(username, password)
|
43
|
+
teams = agent.get_teams()
|
44
44
|
|
45
45
|
table = Terminal::Table.new do |t|
|
46
46
|
t << ['Team ID', 'Team Name']
|
@@ -62,23 +62,23 @@ command :'list-profiles' do |c|
|
|
62
62
|
c.description = ''
|
63
63
|
|
64
64
|
c.action do |args, options|
|
65
|
+
agent = OneMoreUDID::PortalAgent.new
|
66
|
+
|
67
|
+
username, password = (args[0] rescue nil), (args[1] rescue nil)
|
68
|
+
username, password = agent.login(username, password)
|
65
69
|
|
66
|
-
username = (args[0] or ask 'Apple Username:')
|
67
|
-
password = (args[1] or pw 'Apple Password:')
|
68
70
|
team_name = args[2] rescue ''
|
69
71
|
|
70
72
|
if !args[1]
|
71
73
|
puts
|
72
74
|
end
|
73
75
|
|
74
|
-
agent
|
75
|
-
|
76
|
-
agent.setup_cupertino(username, password, team_name)
|
76
|
+
agent.setup_cupertino(team_name)
|
77
77
|
profiles = agent.list_profiles()
|
78
78
|
|
79
79
|
if !args[1]
|
80
80
|
puts
|
81
|
-
say_warning 'Note: you can
|
81
|
+
say_warning 'Note: you can automate this process by running:'
|
82
82
|
|
83
83
|
if agent.agent.instance_variable_get('@team')
|
84
84
|
say_warning ' omudid list-profiles ' + Shellwords.escape(username) + ' [password] ' + agent.agent.instance_variable_get('@team')
|
@@ -109,14 +109,19 @@ command :add do |c|
|
|
109
109
|
|
110
110
|
c.action do |args, options|
|
111
111
|
|
112
|
-
|
113
|
-
password = (args[
|
112
|
+
agent = OneMoreUDID::PortalAgent.new
|
113
|
+
username, password = (args[0] rescue nil), (args[1] rescue nil)
|
114
|
+
username, password = agent.login(username, password)
|
114
115
|
|
115
|
-
profile_name = (args[2] or ask 'Profile name (leave blank to select from available profiles):')
|
116
|
+
profile_name = (args[2] or (puts; ask 'Profile name (leave blank to select from available profiles):'))
|
116
117
|
device_name = (args[3] or ask 'Device name:')
|
117
118
|
udid = (args[4] or ask 'UDID:')
|
118
119
|
team_name = args[5] rescue ''
|
119
120
|
|
121
|
+
if udid.match(/^[A-f0-9]{40}$/).nil?
|
122
|
+
say_error 'Invalid UDID entered, won\'t be inserted.'
|
123
|
+
end
|
124
|
+
|
120
125
|
show_hint = false
|
121
126
|
|
122
127
|
if !args[4]
|
@@ -124,8 +129,7 @@ command :add do |c|
|
|
124
129
|
puts
|
125
130
|
end
|
126
131
|
|
127
|
-
agent
|
128
|
-
agent.setup_cupertino(username, password, team_name)
|
132
|
+
agent.setup_cupertino(team_name)
|
129
133
|
|
130
134
|
agent.add_device(device_name, udid)
|
131
135
|
|
@@ -136,7 +140,7 @@ command :add do |c|
|
|
136
140
|
end
|
137
141
|
|
138
142
|
if show_hint
|
139
|
-
say_warning 'Note: you can
|
143
|
+
say_warning 'Note: you can automate this process by running:'
|
140
144
|
|
141
145
|
if agent.agent.instance_variable_get('@team')
|
142
146
|
say_warning ' omudid add ' + Shellwords.escape(username) + ' [password] ' + Shellwords.escape(profile_name) + ' ' + Shellwords.escape(device_name) + ' ' + Shellwords.escape(udid) + ' ' + agent.agent.instance_variable_get('@team')
|
@@ -163,17 +167,17 @@ command :'testflight list-apps' do |c|
|
|
163
167
|
|
164
168
|
c.action do |args, options|
|
165
169
|
|
166
|
-
|
167
|
-
|
170
|
+
agent = OneMoreUDID::TestFlightAgent.new
|
171
|
+
|
172
|
+
username, password = (args[0] rescue nil), (args[1] rescue nil)
|
173
|
+
username, password = agent.login(username, password)
|
168
174
|
|
169
175
|
if !args[1]
|
170
|
-
|
171
|
-
say_warning 'Note: you can repeat this process by running:'
|
176
|
+
say_warning 'Note: you can automate this process by running:'
|
172
177
|
say_warning ' omudid testflight list-apps ' + Shellwords.escape(username) + ' [password]'
|
173
178
|
puts
|
174
179
|
end
|
175
180
|
|
176
|
-
agent = OneMoreUDID::TestFlightAgent.new(username, password)
|
177
181
|
apps = agent.get_apps()
|
178
182
|
|
179
183
|
table = Terminal::Table.new do |t|
|
@@ -197,8 +201,10 @@ command :'testflight list-builds' do |c|
|
|
197
201
|
|
198
202
|
c.action do |args, options|
|
199
203
|
|
200
|
-
|
201
|
-
password = (args[
|
204
|
+
agent = OneMoreUDID::TestFlightAgent.new
|
205
|
+
username, password = (args[0] rescue nil), (args[1] rescue nil)
|
206
|
+
username, password = agent.login(username, password)
|
207
|
+
|
202
208
|
app_id = (args[2] or ask 'App ID (leave blank to select from available IDs):')
|
203
209
|
|
204
210
|
show_hint = false
|
@@ -207,17 +213,16 @@ command :'testflight list-builds' do |c|
|
|
207
213
|
show_hint = true
|
208
214
|
end
|
209
215
|
|
210
|
-
agent = OneMoreUDID::TestFlightAgent.new(username, password)
|
211
|
-
|
212
216
|
if app_id == ''
|
217
|
+
apps = agent.get_apps().collect{ |id, name| id + ' ('+name+')' }
|
213
218
|
puts
|
214
|
-
choice = choose 'Select an app ID:', *
|
219
|
+
choice = choose 'Select an app ID:', *apps
|
215
220
|
puts
|
216
221
|
regex = /^[^ ]*/
|
217
222
|
app_id = (choice.match regex)[0]
|
218
223
|
end
|
219
224
|
|
220
|
-
say_warning 'Note: you can
|
225
|
+
say_warning 'Note: you can automate this process by running:'
|
221
226
|
say_warning ' omudid testflight list-builds ' + Shellwords.escape(username) + ' [password] ' + Shellwords.escape(app_id)
|
222
227
|
puts
|
223
228
|
|
@@ -244,8 +249,10 @@ command :'testflight upload' do |c|
|
|
244
249
|
|
245
250
|
c.action do |args, options|
|
246
251
|
|
247
|
-
|
248
|
-
password = (args[
|
252
|
+
agent = OneMoreUDID::TestFlightAgent.new
|
253
|
+
username, password = (args[0] rescue nil), (args[1] rescue nil)
|
254
|
+
username, password = agent.login(username, password)
|
255
|
+
|
249
256
|
build_id = (args[2] or ask 'Build ID (leave blank to select from available IDs):')
|
250
257
|
profile_name = (args[3] or ask 'Profile name (leave blank to select from available local profiles):')
|
251
258
|
|
@@ -255,21 +262,21 @@ command :'testflight upload' do |c|
|
|
255
262
|
show_hint = true
|
256
263
|
end
|
257
264
|
|
258
|
-
agent = OneMoreUDID::TestFlightAgent.new(username, password)
|
259
|
-
|
260
265
|
if build_id == ''
|
261
266
|
app_id = ask 'Enter an App ID to list builds (or leave blank to list App IDs):'
|
262
267
|
|
263
268
|
if app_id == ''
|
269
|
+
apps = agent.get_apps().collect{ |id, name| id + ' ('+name+')' }
|
264
270
|
puts
|
265
|
-
choice = choose 'Select an app ID:', *
|
271
|
+
choice = choose 'Select an app ID:', *apps
|
266
272
|
puts
|
267
273
|
regex = /^[^ ]*/
|
268
274
|
app_id = (choice.match regex)[0]
|
269
275
|
end
|
270
276
|
|
277
|
+
builds = agent.get_builds(app_id).collect{ |id, name| id + ' ('+name+')' }
|
271
278
|
puts
|
272
|
-
choice = choose 'Select a build ID:', *
|
279
|
+
choice = choose 'Select a build ID:', *builds
|
273
280
|
puts
|
274
281
|
regex = /^[^ ]*/
|
275
282
|
build_id = (choice.match regex)[0]
|
@@ -286,7 +293,7 @@ command :'testflight upload' do |c|
|
|
286
293
|
end
|
287
294
|
|
288
295
|
if show_hint
|
289
|
-
say_warning 'Note: you can
|
296
|
+
say_warning 'Note: you can automate this process by running:'
|
290
297
|
say_warning ' omudid testflight list-builds ' + Shellwords.escape(username) + ' [password] ' + Shellwords.escape(build_id) + ' ' + Shellwords.escape(profile_name)
|
291
298
|
puts
|
292
299
|
end
|
data/lib/omudid/portal_agent.rb
CHANGED
@@ -1,9 +1,54 @@
|
|
1
|
+
require 'keychain'
|
2
|
+
|
1
3
|
module OneMoreUDID
|
2
4
|
class PortalAgent
|
3
5
|
|
4
6
|
attr_accessor :agent
|
7
|
+
attr_accessor :username, :password
|
8
|
+
|
9
|
+
def login(username, password)
|
10
|
+
if username != nil and password != nil
|
11
|
+
self.username, self.password = username, password
|
12
|
+
return
|
13
|
+
end
|
14
|
+
|
15
|
+
accounts = Keychain.generic_password_items.select { |item| item.label == "omudid" }
|
16
|
+
username = password = nil
|
17
|
+
if accounts and accounts.count > 0
|
18
|
+
choice = choose 'Select an account to use:', *accounts.collect{ |account| account.account }.push('New account').push('Delete account')
|
19
|
+
case choice
|
20
|
+
when "New account"
|
21
|
+
puts
|
22
|
+
when "Delete account"
|
23
|
+
puts
|
24
|
+
to_delete = choose 'Select an account to delete:', *accounts.collect{ |account| account.account }.push('ALL')
|
25
|
+
case to_delete
|
26
|
+
when "ALL"
|
27
|
+
accounts.each{ |account| account.delete }
|
28
|
+
else
|
29
|
+
account = Keychain.generic_password_items.find { |item| item.label == "omudid" and item.account == to_delete }.delete
|
30
|
+
end
|
31
|
+
abort
|
32
|
+
else
|
33
|
+
account = Keychain.generic_password_items.find { |item| item.label == "omudid" and item.account == choice }
|
34
|
+
username = account.account
|
35
|
+
password = account.password
|
36
|
+
end
|
37
|
+
end
|
38
|
+
if username == nil
|
39
|
+
username = ask 'Apple Username:'
|
40
|
+
password = pw 'Apple Password:'
|
41
|
+
puts
|
42
|
+
if agree 'Do you want to save these login details? (yes/no)'
|
43
|
+
Keychain.add_generic_password('omudid', username, password) rescue say_error 'Credentials not saved, email already stored in keychain.'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
self.username, self.password = username, password
|
48
|
+
return username, password
|
49
|
+
end
|
5
50
|
|
6
|
-
def get_teams
|
51
|
+
def get_teams
|
7
52
|
agent = Cupertino::ProvisioningPortal::Agent.new
|
8
53
|
|
9
54
|
agent.instance_eval do
|
@@ -33,8 +78,8 @@ module OneMoreUDID
|
|
33
78
|
end
|
34
79
|
end
|
35
80
|
|
36
|
-
agent.username = username
|
37
|
-
agent.password = password
|
81
|
+
agent.username = self.username
|
82
|
+
agent.password = self.password
|
38
83
|
|
39
84
|
agent.get('https://developer.apple.com/account/selectTeam.action')
|
40
85
|
|
@@ -50,7 +95,7 @@ module OneMoreUDID
|
|
50
95
|
formatted_teams
|
51
96
|
end
|
52
97
|
|
53
|
-
def setup_cupertino(
|
98
|
+
def setup_cupertino(team_name = '')
|
54
99
|
agent = Cupertino::ProvisioningPortal::Agent.new
|
55
100
|
|
56
101
|
agent.instance_eval do
|
@@ -107,8 +152,8 @@ module OneMoreUDID
|
|
107
152
|
end
|
108
153
|
end
|
109
154
|
|
110
|
-
agent.username = username
|
111
|
-
agent.password = password
|
155
|
+
agent.username = self.username
|
156
|
+
agent.password = self.password
|
112
157
|
agent.instance_variable_set(:@teamName, team_name)
|
113
158
|
|
114
159
|
@agent = agent
|
@@ -1,13 +1,52 @@
|
|
1
|
+
require 'keychain'
|
2
|
+
|
1
3
|
module OneMoreUDID
|
2
4
|
class TestFlightAgent < ::Mechanize
|
3
5
|
|
4
6
|
attr_accessor :username, :password
|
5
7
|
|
6
|
-
def
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
def login(username, password)
|
9
|
+
if username != nil and password != nil
|
10
|
+
self.username, self.password = username, password
|
11
|
+
return
|
12
|
+
end
|
13
|
+
|
14
|
+
accounts = Keychain.generic_password_items.select { |item| item.label == "testflight" }
|
15
|
+
username = password = nil
|
16
|
+
if accounts and accounts.count > 0
|
17
|
+
choice = choose 'Select an account to use:', *accounts.collect{ |account| account.account }.push('New account').push('Delete account')
|
18
|
+
case choice
|
19
|
+
when "New account"
|
20
|
+
puts
|
21
|
+
when "Delete account"
|
22
|
+
puts
|
23
|
+
to_delete = choose 'Select an account to delete:', *accounts.collect{ |account| account.account }.push('ALL')
|
24
|
+
case to_delete
|
25
|
+
when "ALL"
|
26
|
+
accounts.each{ |account| account.delete }
|
27
|
+
else
|
28
|
+
account = Keychain.generic_password_items.find { |item| item.label == "testflight" and item.account == to_delete }.delete
|
29
|
+
end
|
30
|
+
abort
|
31
|
+
else
|
32
|
+
account = Keychain.generic_password_items.find { |item| item.label == "testflight" and item.account == choice }
|
33
|
+
username = account.account
|
34
|
+
password = account.password
|
35
|
+
puts
|
36
|
+
end
|
37
|
+
end
|
38
|
+
if username == nil
|
39
|
+
username = ask 'Testflight Username:'
|
40
|
+
password = pw 'Testflight Password:'
|
41
|
+
puts
|
42
|
+
if agree 'Do you want to save these login details? (yes/no)'
|
43
|
+
Keychain.add_generic_password('testflight', username, password) rescue say_error 'Credentials not saved, email already stored in keychain.'
|
44
|
+
end
|
45
|
+
puts
|
46
|
+
end
|
47
|
+
|
48
|
+
self.username, self.password = username, password
|
49
|
+
return username, password
|
11
50
|
end
|
12
51
|
|
13
52
|
def get(uri, parameters = [], referer = nil, headers = {})
|
data/lib/omudid.rb
CHANGED
data/omudid.gemspec
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
|
5
|
-
require '
|
5
|
+
#require 'rubygems'
|
6
|
+
#require 'omudid'
|
6
7
|
|
7
8
|
Gem::Specification.new do |spec|
|
8
9
|
spec.name = "omudid"
|
9
|
-
spec.version =
|
10
|
+
spec.version = "1.0.7"
|
10
11
|
spec.authors = ["David Lawson"]
|
11
12
|
spec.email = ["tech.lawson@gmail.com"]
|
12
13
|
spec.description = 'Conveniently add a UDID to the iOS Developer Portal, refresh a provisioning profile and download it. Uploading a new provisioning profile to TestFlight is also supported.'
|
@@ -21,8 +22,12 @@ Gem::Specification.new do |spec|
|
|
21
22
|
|
22
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
23
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "vcr"
|
26
|
+
spec.add_development_dependency "webmock"
|
24
27
|
|
28
|
+
spec.add_dependency "nokogiri", "1.5.9"
|
25
29
|
spec.add_dependency "cupertino"
|
30
|
+
spec.add_dependency "keychain_services"
|
26
31
|
|
27
32
|
spec.add_dependency "spinning_cursor"
|
28
33
|
spec.add_dependency "rainbow"
|
data/test/.DS_Store
ADDED
Binary file
|
data/test/test_omudid.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'omudid'
|
4
|
+
|
5
|
+
module Commander
|
6
|
+
module UI
|
7
|
+
attr :password
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'terminal-table'
|
12
|
+
require 'term/ansicolor'
|
13
|
+
|
14
|
+
require 'cupertino_compatibility'
|
15
|
+
|
16
|
+
require 'test/unit'
|
17
|
+
require 'vcr'
|
18
|
+
require 'omudid/portal_agent'
|
19
|
+
|
20
|
+
VCR.configure do |c|
|
21
|
+
c.cassette_library_dir = 'test/vcr'
|
22
|
+
c.hook_into :webmock # or :fakeweb
|
23
|
+
c.default_cassette_options = { :serialize_with => :syck }
|
24
|
+
end
|
25
|
+
|
26
|
+
class OneMoreUDIDTest < Test::Unit::TestCase
|
27
|
+
def test_teams
|
28
|
+
VCR.use_cassette('teams') do
|
29
|
+
agent = OneMoreUDID::PortalAgent.new
|
30
|
+
teams = agent.get_teams('test@email.com', 'password')
|
31
|
+
|
32
|
+
assert teams.count == 2
|
33
|
+
assert teams['XYZ1'] == 'Team 1'
|
34
|
+
assert teams['XYZ2'] == 'Team 2 - iOS Developer Program'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/test/vcr/teams.yml
ADDED
@@ -0,0 +1,682 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://developer.apple.com/account/selectTeam.action
|
6
|
+
body:
|
7
|
+
string: ""
|
8
|
+
headers:
|
9
|
+
Accept:
|
10
|
+
- "*/*"
|
11
|
+
Accept-Language:
|
12
|
+
- en-us,en;q=0.5
|
13
|
+
User-Agent:
|
14
|
+
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
|
15
|
+
Accept-Charset:
|
16
|
+
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
17
|
+
Host:
|
18
|
+
- developer.apple.com
|
19
|
+
Accept-Encoding:
|
20
|
+
- gzip,deflate,identity
|
21
|
+
Keep-Alive:
|
22
|
+
- 300
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
response:
|
26
|
+
status:
|
27
|
+
code: 302
|
28
|
+
message: Moved Temporarily
|
29
|
+
headers:
|
30
|
+
Location:
|
31
|
+
- https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/wa/login?appIdKey=d4f7d769c2abecc664d0dadfed6a67f943442b5e9c87524d4587a95773750cea&path=%2F%2Faccount%2FselectTeam.action
|
32
|
+
Set-Cookie:
|
33
|
+
- NSC_MCWT_efwfmpqfs_443_BqbdifKbwb=ffffffff12f61da945525d5f4f58455e445a4a4232aa;Version=1;path=/;secure;httponly
|
34
|
+
Cache-Control:
|
35
|
+
- post-check=0, pre-check=0
|
36
|
+
Server:
|
37
|
+
- Apache
|
38
|
+
Content-Type:
|
39
|
+
- text/plain
|
40
|
+
Last-Modified:
|
41
|
+
- Thu, 27 Jun 2013 07:35:22 GMT
|
42
|
+
Content-Length:
|
43
|
+
- "0"
|
44
|
+
Ms-Author-Via:
|
45
|
+
- DAV
|
46
|
+
Expires:
|
47
|
+
- Mon, 26 Jul 1997 05:00:00 GMT
|
48
|
+
Pragma:
|
49
|
+
- no-cache
|
50
|
+
X-Frame-Options:
|
51
|
+
- SAMEORIGIN
|
52
|
+
- SAMEORIGIN
|
53
|
+
Keep-Alive:
|
54
|
+
- timeout=15, max=479
|
55
|
+
Date:
|
56
|
+
- Thu, 27 Jun 2013 07:35:22 GMT
|
57
|
+
Connection:
|
58
|
+
- Keep-Alive
|
59
|
+
body:
|
60
|
+
string: ""
|
61
|
+
http_version:
|
62
|
+
recorded_at: Thu, 27 Jun 2013 07:35:33 GMT
|
63
|
+
- request:
|
64
|
+
method: get
|
65
|
+
uri: https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/wa/login?appIdKey=d4f7d769c2abecc664d0dadfed6a67f943442b5e9c87524d4587a95773750cea&path=//account/selectTeam.action
|
66
|
+
body:
|
67
|
+
string: ""
|
68
|
+
headers:
|
69
|
+
Accept:
|
70
|
+
- "*/*"
|
71
|
+
Accept-Language:
|
72
|
+
- en-us,en;q=0.5
|
73
|
+
User-Agent:
|
74
|
+
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
|
75
|
+
Accept-Charset:
|
76
|
+
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
77
|
+
Host:
|
78
|
+
- daw.apple.com
|
79
|
+
Accept-Encoding:
|
80
|
+
- gzip,deflate,identity
|
81
|
+
Keep-Alive:
|
82
|
+
- 300
|
83
|
+
Connection:
|
84
|
+
- keep-alive
|
85
|
+
response:
|
86
|
+
status:
|
87
|
+
code: 200
|
88
|
+
message: Apple
|
89
|
+
headers:
|
90
|
+
Cache-Control:
|
91
|
+
- max-age=0
|
92
|
+
- must-revalidate
|
93
|
+
- no-cache
|
94
|
+
- no-store
|
95
|
+
- private
|
96
|
+
Server:
|
97
|
+
- Apache
|
98
|
+
Content-Type:
|
99
|
+
- text/html; charset=iso-8859-1
|
100
|
+
Content-Length:
|
101
|
+
- "8171"
|
102
|
+
Expires:
|
103
|
+
- Wed, 05-Jun-2013 18:38:39 GMT
|
104
|
+
Pragma:
|
105
|
+
- no-cache
|
106
|
+
Cneonction:
|
107
|
+
- close
|
108
|
+
Date:
|
109
|
+
- Thu, 27 Jun 2013 07:35:23 GMT
|
110
|
+
body:
|
111
|
+
string: "<!DOCTYPE html>\n\
|
112
|
+
<html lang=\"en-us\">\n\
|
113
|
+
<head>\n\
|
114
|
+
\t<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n\
|
115
|
+
\t<meta name=\"Author\" content=\"Apple Inc.\" />\n\
|
116
|
+
\t<meta name=\"viewport\" content=\"width=1024\" />\n\
|
117
|
+
\t<link rel=\"shortcut icon\" href=\"https://devimages.apple.com.edgekey.net/favicon.ico\" />\n\
|
118
|
+
\t<link rel=\"icon\" href=\"https://devimages.apple.com.edgekey.net/favicon.ico\" />\n\
|
119
|
+
\t<link rel=\"stylesheet\" href=\"https://devimages.apple.com.edgekey.net/assets/core/styles/base.css\" type=\"text/css\" />\n\
|
120
|
+
\t<link rel=\"stylesheet\" href=\"https://devimages.apple.com.edgekey.net/assets/core/styles/adc.css\" type=\"text/css\" />\n\
|
121
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/core/scripts/lib/prototype.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
122
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/core/scripts/lib/scriptaculous.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
123
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/core/scripts/browserdetect.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
124
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/core/scripts/apple_core.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
125
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/core/scripts/search_decorator.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
126
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/core/scripts/adc_core.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
127
|
+
\t<script src=\"https://devimages.apple.com.edgekey.net/assets/scripts/ac_retina.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
|
128
|
+
\t<script type=\"text/javascript\">\n\
|
129
|
+
\t\tdocument.write('<link rel=\"stylesheet\" type=\"text/css\" href=\"https://devimages.apple.com.edgekey.net/assets/styles/script.css\" media=\"screen\">');\n\
|
130
|
+
\t</script>\t\n\
|
131
|
+
\t\n\
|
132
|
+
\t<title>Sign in with your Apple ID - Apple Developer</title>\n\
|
133
|
+
\t<link rel=\"stylesheet\" href=\"https://devimages.apple.com.edgekey.net/assets/styles/linen.css\" type=\"text/css\" />\n\
|
134
|
+
\t<link rel=\"stylesheet\" href=\"https://devimages.apple.com.edgekey.net/login/styles/linen.css\" type=\"text/css\" />\n\
|
135
|
+
\t<script>\n\
|
136
|
+
\tEvent.onDOMReady(function() {\n\
|
137
|
+
\t\t// password expired page\n\
|
138
|
+
\t\tif ($$('span.dsheading').length > 0) {\n\
|
139
|
+
\t\t\t$$('#ds_container .dslabel label').each(function(el) { el.innerHTML += ':'; });\n\
|
140
|
+
\t\t\tif ($$('span.dserror').length > 0) {\n\
|
141
|
+
\t\t\t\t$$('span.dserror').each(function(el) {\n\
|
142
|
+
\t\t\t\t\tel.innerHTML = el.innerHTML.gsub('AppleID', 'Apple ID');\n\
|
143
|
+
\t\t\t\t});\n\
|
144
|
+
\t\t\t\t$$('img').each(function(img) {\n\
|
145
|
+
\t\t\t\t\timg.hide();\n\
|
146
|
+
\t\t\t\t});\n\
|
147
|
+
\t\t\t}\n\
|
148
|
+
\t\t\t$('content').show();\n\
|
149
|
+
\t\t\tif($$('span.dsheading')[0].innerHTML == \"Sign In Successful\") {\n\
|
150
|
+
\t\t\t\t// update secret info page\n\
|
151
|
+
\t\t\t\t$$('body.login')[0].addClassName('update-info');\n\
|
152
|
+
\t\t\t\t$$('input').each(function(el) {\n\
|
153
|
+
\t\t\t\t\tel.observe('keyup', function(e) {\n\
|
154
|
+
\t\t\t\t\t\tif(e.keyCode == Event.KEY_RETURN) {\n\
|
155
|
+
\t\t\t\t\t\t\tdocument.harvestForm.submit();\n\
|
156
|
+
\t\t\t\t\t\t\te.stop();\n\
|
157
|
+
\t\t\t\t\t\t}\n\
|
158
|
+
\t\t\t\t\t});\n\
|
159
|
+
\t\t\t\t});\n\
|
160
|
+
\t\t\t} else {\n\
|
161
|
+
\t\t\t\t// regular password expired pages\n\
|
162
|
+
\t\t\t\t$$('body.login')[0].addClassName('password-expired');\n\
|
163
|
+
\t\t\t\t$$('input').each(function(el) {\n\
|
164
|
+
\t\t\t\t\tel.observe('keyup', function(e) {\n\
|
165
|
+
\t\t\t\t\t\tif(e.keyCode == Event.KEY_RETURN) {\n\
|
166
|
+
\t\t\t\t\t\t\tdocument.appleConnectExpiredPasswordForm.submit();\n\
|
167
|
+
\t\t\t\t\t\t\te.stop();\n\
|
168
|
+
\t\t\t\t\t\t}\n\
|
169
|
+
\t\t\t\t\t});\n\
|
170
|
+
\t\t\t\t});\n\
|
171
|
+
\t\t\t}\n\
|
172
|
+
\t\t}\n\
|
173
|
+
\t\t// wrong password page\n\
|
174
|
+
\t\telse if ($$('span.dserror').length > 0) {\n\
|
175
|
+
\t\t\t$$('body.login')[0].addClassName('password-wrong');\n\
|
176
|
+
\t\t\t$$('#ds_container .dslabel').each(function(el) { el.innerHTML += ':'; });\n\
|
177
|
+
\t\t\t$('content').show();\n\
|
178
|
+
\t\t\tdocument.appleConnectForm.theAccountPW.focus();\n\
|
179
|
+
\t\t}\n\
|
180
|
+
\t\t// basic login page\n\
|
181
|
+
\t\telse {\n\
|
182
|
+
\t\t\t$$('#ds_container .dslabel').each(function(el) { el.innerHTML += ':'; });\n\
|
183
|
+
\t\t\t$$('#ds_container tr')[1].hide();\n\
|
184
|
+
\t\t\t$('content').show();\n\
|
185
|
+
\t\t}\n\
|
186
|
+
\t});\n\
|
187
|
+
\t</script>\n\
|
188
|
+
</head>\n\
|
189
|
+
<body class=\"login\" onload=\"dsfocus()\">\n\
|
190
|
+
\t<div class=\"content-wrapper\">\n\n\
|
191
|
+
\t\t<div id=\"globalheader\" data-hires=\"true\">\n\
|
192
|
+
\t\t\t<h1><a href=\"https://developer.apple.com/\">Apple Developer</a></h1>\n\
|
193
|
+
\t\t</div>\n\n\
|
194
|
+
\t\t<div id=\"content\" class=\"content\" style=\"display:none;\">\n\n\
|
195
|
+
\t\t\t<header class=\"hero\">\n\
|
196
|
+
\t\t\t\t<hgroup>\n\
|
197
|
+
\t\t\t\t\t<h1>Sign in with your Apple ID</h1>\n\
|
198
|
+
\t\t\t\t\t<p class=\"intro\">Use the Apple ID you used to register or register now.</p>\n\
|
199
|
+
\t\t\t\t</hgroup>\n\
|
200
|
+
\t\t\t</header>\n\n\
|
201
|
+
\t\t\t\t\n\
|
202
|
+
\t\n\
|
203
|
+
\t\n\
|
204
|
+
\t\t\n\
|
205
|
+
\t\t\t<script>\n\
|
206
|
+
\tfunction dsfocus(){ document.appleConnectForm.theAccountName.focus(); }\n\
|
207
|
+
</script>\n\n\n\
|
208
|
+
\t\n\
|
209
|
+
\t\t<div id=\"ds_container\">\n\
|
210
|
+
\t\n\
|
211
|
+
\t\n\n\n\n\n\
|
212
|
+
\t\n\
|
213
|
+
\t\t\n\
|
214
|
+
\t\t\t<form method=\"post\" name=\"appleConnectForm\" action=\"/cgi-bin/WebObjects/DSAuthWeb.woa/733/wo/IQAxF6JbTkvtCLOxMCDmig/0.1.3.1.1.2.1.1.3.1.1\">\n\n\
|
215
|
+
\t\t\t\t\n\
|
216
|
+
\t\t\t\t\n\
|
217
|
+
\t\t\t\t\n\
|
218
|
+
\t\t\t\t\n\
|
219
|
+
\t\t\t\t\n\
|
220
|
+
\t\t\t\t\n\
|
221
|
+
\t\t\t\t\n\
|
222
|
+
\t\t\t\t\n\
|
223
|
+
\t\t\t\t\n\
|
224
|
+
\t\t\t\t\n\
|
225
|
+
\t\t\t\t\n\
|
226
|
+
\t\t\t\t\t<table cellpadding=0 cellspacing=0 border=0 width=273>\n\
|
227
|
+
\t\t\t\t\t\t<tr valign=top>\n\
|
228
|
+
\t\t\t\t\t\t\t<td align=left><font size=2><font face=\"Geneva, Verdana, Arial, Helvetica, sans-serif\" size=1 class=\"G10\" />\n\
|
229
|
+
\t\t\t\t\t\t\t\t<label for=\"accountname\"><span class=\"dslabel\">Apple ID</span></label>\n\
|
230
|
+
\t\t\t\t\t\t\t\t<font color=\"#ff1102\"></font></font /><br>\n\
|
231
|
+
\t\t\t\t\t\t\t\t<font size='2'><input size=\"30\" autocapitalize=\"off\" autocorrect=\"off\" maxlength=\"128\" id=\"accountname\" type=\"text\" name=\"theAccountName\" /></font></font>\n\
|
232
|
+
\t\t\t\t\t\t\t\t\n\
|
233
|
+
\t\t\t\t\t\t\t</td>\n\
|
234
|
+
\t\t\t\t\t\t</tr>\n\
|
235
|
+
\t\t\t\t\t\t\n\
|
236
|
+
\t\t\t\t\t\t<tr><td><img alt=\"\" width=\"273\" height=\"5\" src=\"/AppleConnect/US-EN/spacer.gif\" /></td></tr>\n\
|
237
|
+
\t\t\t\t\t\t<tr><td><img alt=\"\" width=\"273\" height=\"5\" src=\"/AppleConnect/US-EN/spacer.gif\" /></td></tr>\n\
|
238
|
+
\t\t\t\t\t\t<tr>\n\
|
239
|
+
\t\t\t\t\t\t\t<td align='left'>\n\
|
240
|
+
\t\t\t\t\t\t\t\t<font face=\"Geneva, Verdana, Arial, Helvetica, sans-serif\" size=1 class=\"G10\" />\n\
|
241
|
+
\t\t\t\t\t\t\t\t\t<label for=\"accountpassword\"><span class=\"dslabel\">Password</span></label>\n\
|
242
|
+
\t\t\t\t\t\t\t\t</font />\n\
|
243
|
+
\t\t\t\t\t\t\t\t<br>\n\
|
244
|
+
\t\t\t\t\t\t\t\t<input size=\"30\" autocapitalize=\"off\" oncut=\"return false ;\" oncopy=\"return false ;\" autocorrect=\"off\" maxlength=\"32\" id=\"accountpassword\" type=\"password\" name=\"theAccountPW\" /><input border=\"0\" width=\"0\" height=\"0\" type=\"image\" name=\"1.Continue\" src=\"/AppleConnect/US-EN/spacer.gif\" />\n\
|
245
|
+
\t\t\t\t\t\t\t</td>\n\
|
246
|
+
\t\t\t\t\t\t</tr>\n\
|
247
|
+
\t\t\t\t\t\t\n\
|
248
|
+
\t\t\t\t\t\t\n\
|
249
|
+
\t\t\t\t\t\t\n\
|
250
|
+
\t\t\t\t\t\t<tr><td><img alt=\"\" width=\"273\" height=\"5\" src=\"/AppleConnect/US-EN/spacer.gif\" /></td></tr>\n\
|
251
|
+
\t\t\t\t\t\t<tr><td><img alt=\"\" width=\"273\" height=\"5\" src=\"/AppleConnect/US-EN/spacer.gif\" /></td></tr>\n\
|
252
|
+
\t\t\t\t\t\t\n\
|
253
|
+
\t\t\t\t\t\t<tr>\n\
|
254
|
+
\t\t\t\t\t\t\t<td>\n\
|
255
|
+
\t\t\t\t\t\t\t\t<table cellspacing='0' border='0' width='273' cellpadding='0'>\n\
|
256
|
+
\t\t\t\t\t\t\t\t\t<tr align='left'>\n\
|
257
|
+
\t\t\t\t\t\t\t\t\t\t\n\
|
258
|
+
\t\t\t\t\t\t\t\t\t\t\t<td align='left' width='170'>\n\
|
259
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\n\n\
|
260
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
261
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t<font size='1'>\n\
|
262
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"dstext\">\n\
|
263
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\
|
264
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
265
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
266
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
267
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- Show Forgot Password Button as button -->\n\
|
268
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input border=\"0\" alt=\"Did you forget your password?\" type=\"image\" name=\"1.Forgot\" src=\"/AppleConnect/US-EN/adc09_forgot_password.png\" />\n\
|
269
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
270
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
271
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\
|
272
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\t</font>\n\
|
273
|
+
\t\t\t\t\t\t\t\t\t\t\t\t\n\
|
274
|
+
\t\t\t\t\t\t\t\t\t\t\t</td>\n\
|
275
|
+
\t\t\t\t\t\t\t\t\t\t\t<td width='15'><img alt=\"\" width=\"15\" height=\"5\" src=\"/AppleConnect/US-EN/spacer.gif\" /></td>\n\
|
276
|
+
\t\t\t\t\t\t\t\t\t\t\n\
|
277
|
+
\t\t\t\t\t\t\t\t\t\t\n\
|
278
|
+
\t\t\t\t\t\t\t\t\t\t\n\
|
279
|
+
\t\t\t\t\t\t\t\t\t\t\t<td align='left' width='88'><input border=\"0\" alt=\"Sign In\" type=\"image\" name=\"1.Continue\" src=\"/AppleConnect/US-EN/adc09_signin.png\" /></td>\n\
|
280
|
+
\t\t\t\t\t\t\t\t\t\t\n\
|
281
|
+
\t\t\t\t\t\t\t\t\t\t\n\
|
282
|
+
\t\t\t\t\t\t\t\t\t</tr>\n\
|
283
|
+
\t\t\t\t\t\t\t\t</table>\n\
|
284
|
+
\t\t\t\t\t\t\t</td>\n\
|
285
|
+
\t\t\t\t\t\t</tr>\n\
|
286
|
+
\t\t\t\t\t</table>\n\
|
287
|
+
\t\t\t\t\t<input type=\"hidden\" name=\"theAuxValue\" />\n\
|
288
|
+
\t\t\t\t\n\
|
289
|
+
\t\t\t<input type=\"hidden\" name=\"wosid\" value=\"IQAxF6JbTkvtCLOxMCDmig\" /></form>\n\
|
290
|
+
\t\t\n\n\
|
291
|
+
\t\t\n\
|
292
|
+
\t\t\n\
|
293
|
+
\t\t\n\
|
294
|
+
\t\t\n\
|
295
|
+
\t\t\t\n\
|
296
|
+
</div>\n\n\
|
297
|
+
\t\n\
|
298
|
+
\t\n\
|
299
|
+
\t\n\
|
300
|
+
\t\n\
|
301
|
+
\t\n\n\n\n\n\
|
302
|
+
\t\t\n\
|
303
|
+
\t\t\n\
|
304
|
+
\t\n\
|
305
|
+
\t\t\t\n\n\
|
306
|
+
\t\t\t<a class=\"button large blue password-update\" onclick=\"document.appleConnectExpiredPasswordForm.submit(); return false;\"><span>Update</span></a>\n\
|
307
|
+
\t\t\t<a class=\"button large register-button\" href=\"https://developer.apple.com/programs/register/\"><span>Register</span></a>\n\
|
308
|
+
\t\t\t<a class=\"button large blue signin-button\" onclick=\"document.appleConnectForm.submit(); return false;\"><span>Sign In</span></a>\n\
|
309
|
+
\t\t\t<div class=\"divider\"></div>\n\
|
310
|
+
\t\t\t<a class=\"forgot-button\" href=\"https://iforgot.apple.com/\">Forgot ID or Password?</a>\n\
|
311
|
+
\t\t\t\t\t\n\
|
312
|
+
\t\t</div><!-- /content -->\n\n\
|
313
|
+
\t\t<div class=\"content-spacer\"></div>\n\n\
|
314
|
+
\t\t<div id=\"globalfooter\">\n\
|
315
|
+
\t\t\t<div class=\"gf-sosumi\">\n\
|
316
|
+
\t\t\t\t<p>Copyright \xA9 2013 Apple Inc. All rights reserved.</p>\n\
|
317
|
+
\t\t\t\t<ul class=\"piped\">\n\
|
318
|
+
\t\t\t\t\t<li><a href=\"http://www.apple.com/legal/terms/site.html\" class=\"first\">Terms of Use</a></li>\n\
|
319
|
+
\t\t\t\t\t<li><a href=\"http://www.apple.com/privacy/\">Privacy Policy</a></li>\n\
|
320
|
+
\t\t\t\t</ul>\n\
|
321
|
+
\t\t\t</div>\n\
|
322
|
+
\t\t</div><!--/globalfooter-->\n\
|
323
|
+
\t</div>\n\
|
324
|
+
</body>\n\
|
325
|
+
</html>"
|
326
|
+
http_version:
|
327
|
+
recorded_at: Thu, 27 Jun 2013 07:35:34 GMT
|
328
|
+
- request:
|
329
|
+
method: post
|
330
|
+
uri: https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/733/wo/IQAxF6JbTkvtCLOxMCDmig/0.1.3.1.1.2.1.1.3.1.1
|
331
|
+
body:
|
332
|
+
string: theAccountName=test@email.com&theAccountPW=password&theAuxValue=&wosid=IQAxF6JbTkvtCLOxMCDmig
|
333
|
+
headers:
|
334
|
+
Referer:
|
335
|
+
- !ruby/object:URI::HTTPS
|
336
|
+
fragment:
|
337
|
+
host: daw.apple.com
|
338
|
+
opaque:
|
339
|
+
password:
|
340
|
+
path: /cgi-bin/WebObjects/DSAuthWeb.woa/wa/login
|
341
|
+
port: 443
|
342
|
+
query: appIdKey=d4f7d769c2abecc664d0dadfed6a67f943442b5e9c87524d4587a95773750cea&path=%2F%2Faccount%2FselectTeam.action
|
343
|
+
registry:
|
344
|
+
scheme: https
|
345
|
+
user:
|
346
|
+
Accept:
|
347
|
+
- "*/*"
|
348
|
+
Accept-Language:
|
349
|
+
- en-us,en;q=0.5
|
350
|
+
User-Agent:
|
351
|
+
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
|
352
|
+
Accept-Charset:
|
353
|
+
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
354
|
+
Content-Type:
|
355
|
+
- application/x-www-form-urlencoded
|
356
|
+
Host:
|
357
|
+
- daw.apple.com
|
358
|
+
Content-Length:
|
359
|
+
- "108"
|
360
|
+
Accept-Encoding:
|
361
|
+
- gzip,deflate,identity
|
362
|
+
Keep-Alive:
|
363
|
+
- 300
|
364
|
+
Connection:
|
365
|
+
- keep-alive
|
366
|
+
response:
|
367
|
+
status:
|
368
|
+
code: 200
|
369
|
+
message: Apple
|
370
|
+
headers:
|
371
|
+
Set-Cookie:
|
372
|
+
- DefaultAppleID=thisCookieIsToBeRemovedAtTheNextResponse; version="1"; max-age=0; expires=Thu, 01-Jan-1970 00:00:00 GMT; path=/; domain=.apple.com
|
373
|
+
- ds01=thisCookieIsToBeRemovedAtTheNextResponse; version="1"; max-age=0; expires=Thu, 01-Jan-1970 00:00:00 GMT; path=/; domain=.apple.com
|
374
|
+
- ds01_a=056e619bd5b2b91867ba64ff14360013fb6cfdfbf22ba93d292a81c1ac3fcc492e2cfdbf14081b75fca5d3b933f25c84c2c72c775613bae8f6ea0cf10f2fcca1c6026560e1701760d7c4a9200b9d41dfc1ceadab02fb3635412c59648311b586GZVX; version="1"; expires=Fri, 27-Jun-2014 07:35:24 GMT; path=/; domain=.apple.com
|
375
|
+
- ds01_p_c_1001=thisCookieIsToBeRemovedAtTheNextResponse; version="1"; max-age=0; expires=Thu, 01-Jan-1970 00:00:00 GMT; path=/; domain=.apple.com
|
376
|
+
- myacinfo=DAWTKNV2b35735344c00759cd70102a9f415865b4413adc3d254a65dafc4359bb95ae591e940a6963e1ae23545999f9330411956eafa6f3f949ebd2a709baccf283376f2f1d514b67b8324c98641225c57bd69f7f673308cc5b19020c95ea42a4722bc0d9dc3c6fd53ed5d2542fe3c5803ba24ed6967343f50ff38148c0a12bbbaf19056e0d0a74e143536ddbeaafd3b19bdd36ca801f0c41e40050b6663bb28846e2bf2d6b41636d23cc6ab264925de3f8a4e798c29645b9b799e2fd7cb262f922b599da048d2d4162913d6361a996a650bc1ba3b90ff635bd57238c7bfcd14db5c8e7eacf37794298c9a224dc92734d0dbbdfed5690233abe3761bfc7c24e103bc2d534e5d90ce21d2fbd4785497765d7dd1ce2f8b55d32289689ebb9ade0ce10a135bMVRYV2; version="1"; path=/; domain=.apple.com; secure; HttpOnly
|
377
|
+
- myacinfoName=BA710667A884C9ECD61188E9CE70F5F1C5BE108F044A95112F92FC238E8837D8; version="1"; expires=Fri, 31-Dec-2010 20:00:00 GMT; path=/; domain=.apple.com
|
378
|
+
Cache-Control:
|
379
|
+
- max-age=0
|
380
|
+
- must-revalidate
|
381
|
+
- no-cache
|
382
|
+
- no-store
|
383
|
+
- private
|
384
|
+
Server:
|
385
|
+
- Apache
|
386
|
+
Content-Type:
|
387
|
+
- text/html; charset=iso-8859-1
|
388
|
+
Content-Length:
|
389
|
+
- "289"
|
390
|
+
Expires:
|
391
|
+
- Wed, 05-Jun-2013 18:38:39 GMT
|
392
|
+
Pragma:
|
393
|
+
- no-cache
|
394
|
+
Date:
|
395
|
+
- Thu, 27 Jun 2013 07:35:24 GMT
|
396
|
+
Nncoection:
|
397
|
+
- close
|
398
|
+
body:
|
399
|
+
string: |
|
400
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
401
|
+
<HTML>
|
402
|
+
<HEAD>
|
403
|
+
<META NAME="generator" CONTENT="WebObjects 5">
|
404
|
+
<TITLE>Apple</TITLE>
|
405
|
+
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=https://developer.apple.com/account/selectTeam.action" />
|
406
|
+
</HEAD>
|
407
|
+
<BODY BGCOLOR=#FFFFFF>
|
408
|
+
</BODY>
|
409
|
+
</HTML>
|
410
|
+
|
411
|
+
http_version:
|
412
|
+
recorded_at: Thu, 27 Jun 2013 07:35:36 GMT
|
413
|
+
- request:
|
414
|
+
method: get
|
415
|
+
uri: https://developer.apple.com/account/selectTeam.action
|
416
|
+
body:
|
417
|
+
string: ""
|
418
|
+
headers:
|
419
|
+
Accept:
|
420
|
+
- "*/*"
|
421
|
+
Accept-Language:
|
422
|
+
- en-us,en;q=0.5
|
423
|
+
User-Agent:
|
424
|
+
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
|
425
|
+
If-Modified-Since:
|
426
|
+
- Thu, 27 Jun 2013 07:35:22 GMT
|
427
|
+
Cookie:
|
428
|
+
- NSC_MCWT_efwfmpqfs_443_BqbdifKbwb=ffffffff12f61da945525d5f4f58455e445a4a4232aa; ds01_a=056e619bd5b2b91867ba64ff14360013fb6cfdfbf22ba93d292a81c1ac3fcc492e2cfdbf14081b75fca5d3b933f25c84c2c72c775613bae8f6ea0cf10f2fcca1c6026560e1701760d7c4a9200b9d41dfc1ceadab02fb3635412c59648311b586GZVX; myacinfo=DAWTKNV2b35735344c00759cd70102a9f415865b4413adc3d254a65dafc4359bb95ae591e940a6963e1ae23545999f9330411956eafa6f3f949ebd2a709baccf283376f2f1d514b67b8324c98641225c57bd69f7f673308cc5b19020c95ea42a4722bc0d9dc3c6fd53ed5d2542fe3c5803ba24ed6967343f50ff38148c0a12bbbaf19056e0d0a74e143536ddbeaafd3b19bdd36ca801f0c41e40050b6663bb28846e2bf2d6b41636d23cc6ab264925de3f8a4e798c29645b9b799e2fd7cb262f922b599da048d2d4162913d6361a996a650bc1ba3b90ff635bd57238c7bfcd14db5c8e7eacf37794298c9a224dc92734d0dbbdfed5690233abe3761bfc7c24e103bc2d534e5d90ce21d2fbd4785497765d7dd1ce2f8b55d32289689ebb9ade0ce10a135bMVRYV2
|
429
|
+
Accept-Charset:
|
430
|
+
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
431
|
+
Host:
|
432
|
+
- developer.apple.com
|
433
|
+
Accept-Encoding:
|
434
|
+
- gzip,deflate,identity
|
435
|
+
Keep-Alive:
|
436
|
+
- 300
|
437
|
+
Connection:
|
438
|
+
- keep-alive
|
439
|
+
response:
|
440
|
+
status:
|
441
|
+
code: 200
|
442
|
+
message: OK
|
443
|
+
headers:
|
444
|
+
Transfer-Encoding:
|
445
|
+
- chunked
|
446
|
+
Set-Cookie:
|
447
|
+
- JSESSIONID=FED2AF4286021A3A61DE953F12BCC84A.worker1; Path=/
|
448
|
+
Cache-Control:
|
449
|
+
- no-cache
|
450
|
+
Server:
|
451
|
+
- Apache
|
452
|
+
Content-Type:
|
453
|
+
- text/html;charset=ISO-8859-1
|
454
|
+
Ms-Author-Via:
|
455
|
+
- DAV
|
456
|
+
Expires:
|
457
|
+
- Mon, 26 Jul 1997 05:00:00 GMT
|
458
|
+
Pragma:
|
459
|
+
- no-cache
|
460
|
+
X-Frame-Options:
|
461
|
+
- SAMEORIGIN
|
462
|
+
- SAMEORIGIN
|
463
|
+
Keep-Alive:
|
464
|
+
- timeout=15, max=421
|
465
|
+
Date:
|
466
|
+
- Thu, 27 Jun 2013 07:35:25 GMT
|
467
|
+
Connection:
|
468
|
+
- Keep-Alive
|
469
|
+
body:
|
470
|
+
string: |-
|
471
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
472
|
+
|
473
|
+
|
474
|
+
<html>
|
475
|
+
<head>
|
476
|
+
<title>Select Team - Apple Developer</title>
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
482
|
+
<meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://www.apple.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.apple.com" r (n 0 s 0 v 0 l 0))'>
|
483
|
+
<meta name="Author" content="Apple Inc.">
|
484
|
+
<meta name="viewport" content="width=1024">
|
485
|
+
<link rel="shortcut icon" href="https://devimages.apple.com.edgekey.net/favicon.ico" />
|
486
|
+
<link rel="icon" href="https://devimages.apple.com.edgekey.net/favicon.ico" />
|
487
|
+
|
488
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://devimages.apple.com.edgekey.net/assets/core/styles/base.css" charset="utf-8" />
|
489
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://devimages.apple.com.edgekey.net/assets/core/styles/adc.css" charset="utf-8" />
|
490
|
+
|
491
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://devimages.apple.com.edgekey.net/assets/styles/jqueryui/smoothness-custom-1.8.17/jquery-ui-1.8.17.css" charset="utf-8" />
|
492
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://devimages.apple.com.edgekey.net/assets/scripts/lib/jqgrid/css/ui.jqgrid.css" charset="utf-8" />
|
493
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://devimages.apple.com.edgekey.net/assets/styles/grid.css" charset="utf-8" />
|
494
|
+
|
495
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://devimages.apple.com.edgekey.net/assets/styles/portal.css" charset="utf-8" />
|
496
|
+
<link rel="stylesheet" type="text/css" media="screen" href="https://developer.apple.com/account/styles/developer_portal.css" charset="utf-8" />
|
497
|
+
|
498
|
+
<script type="text/javascript" src="https://developer.apple.com/assets/scripts/lib/jquery/jquery-1.7.1.min.js" charset="utf-8" ></script>
|
499
|
+
<script type="text/javascript" src="https://developer.apple.com/assets/scripts/lib/jquery/jquery-ui-custom-1.8.17.min.js" charset="utf-8" ></script>
|
500
|
+
<script type="text/javascript" src="https://developer.apple.com/assets/scripts/lib/jqgrid/js/i18n/grid.locale-en.js" charset="utf-8" ></script>
|
501
|
+
<script type="text/javascript" src="https://developer.apple.com/assets/scripts/lib/jqgrid/js/jquery.jqGrid.src.js" charset="utf-8" ></script>
|
502
|
+
<script type="text/javascript" src="https://developer.apple.com/assets/scripts/search_decorator_jquery.js" charset="utf-8" ></script>
|
503
|
+
<script type="text/javascript" src="https://developer.apple.com/assets/scripts/ac_retina.js" charset="utf-8" ></script>
|
504
|
+
|
505
|
+
<script type="text/javascript" src="https://developer.apple.com/account/scripts/account-min.js" charset="utf-8" ></script>
|
506
|
+
|
507
|
+
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
508
|
+
|
509
|
+
|
510
|
+
</head>
|
511
|
+
<body id="select-team" class="developer-portal class="selectProgram"" >
|
512
|
+
|
513
|
+
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
|
518
|
+
<div id="globalheader" data-hires="true">
|
519
|
+
<h1><a href="https://developer.apple.com">Apple Developer</a></h1>
|
520
|
+
<ul id="gh-nav">
|
521
|
+
<li id="gh-nav-technologies"><a href="https://developer.apple.com/technologies/">Technologies</a></li>
|
522
|
+
<li id="gh-nav-resources"><a href="https://developer.apple.com/resources/">Resources</a></li>
|
523
|
+
<li id="gh-nav-programs"><a href="https://developer.apple.com/programs/">Programs</a></li>
|
524
|
+
<li id="gh-nav-support"><a href="https://developer.apple.com/support/">Support</a></li>
|
525
|
+
<li id="gh-nav-membercenter"><a href="https://developer.apple.com/membercenter/">Member Center</a></li>
|
526
|
+
</ul>
|
527
|
+
|
528
|
+
<div id="gh-search">
|
529
|
+
<form action="https://developer.apple.com/search/index.php" method="get" accept-charset="utf-8">
|
530
|
+
<div>
|
531
|
+
<label for="gh-adcsearch">
|
532
|
+
<span class="prettyplaceholder">Search Developer</span>
|
533
|
+
<input type="search" name="q" id="gh-adcsearch" class="adcsearch prettysearch" results="0" placeholder="Search Developer" autosave="">
|
534
|
+
</label>
|
535
|
+
</div>
|
536
|
+
</form>
|
537
|
+
</div>
|
538
|
+
</div>
|
539
|
+
|
540
|
+
<div class="loadingMessage" data-hires="true" style=" width:32px; height:32px; display: none;">
|
541
|
+
<img src="https://devimages.apple.com.edgekey.net/assets/developerportal/images/spinner.gif" /><div>Loading...</div>
|
542
|
+
</div>
|
543
|
+
|
544
|
+
<div class="errorGenericMessage" style="display: none;">
|
545
|
+
Please refresh and try again.
|
546
|
+
</div>
|
547
|
+
|
548
|
+
<div id="main">
|
549
|
+
<div id="content" class="content" data-hires="true">
|
550
|
+
<div class="topbar">
|
551
|
+
<h1>Certificates, Identifiers & Profiles</h1>
|
552
|
+
<div class="topbar-select-container">
|
553
|
+
<a class="topbar-select portal-select" id="topbar-select">
|
554
|
+
<span class="section-title">
|
555
|
+
|
556
|
+
David Lawson
|
557
|
+
|
558
|
+
|
559
|
+
</span>
|
560
|
+
</a>
|
561
|
+
|
562
|
+
<div class="tooltip top-pointer" id="topbar-dropdown-tooltip" style="display:none">
|
563
|
+
<div class="top edge"></div>
|
564
|
+
<div class="tooltip-content">
|
565
|
+
<div class="content-wrapper">
|
566
|
+
<ul class="topbar-dropdown-options">
|
567
|
+
|
568
|
+
<li class="profile"><a href="https://developer.apple.com/membercenter/index.action#accountSummary" class="first-option">View Account</a></li>
|
569
|
+
|
570
|
+
<li class="sign-out"><a href="/account/logout.action;jsessionid=FED2AF4286021A3A61DE953F12BCC84A.worker1" class="last-option">Sign Out</a></li>
|
571
|
+
|
572
|
+
|
573
|
+
</ul>
|
574
|
+
</div>
|
575
|
+
</div>
|
576
|
+
</div>
|
577
|
+
</div>
|
578
|
+
</div>
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
|
585
|
+
|
586
|
+
|
587
|
+
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
<div class="sidebar" style="display:none;" data-hideSideNav="true">
|
592
|
+
<div class="top-shadow"></div>
|
593
|
+
|
594
|
+
<a class="sidebar-select portal-select" id="sidebar-select"><div class="section-icon mac"></div><div class="section-title"></div><div class="dropdown-arrow"></div></a>
|
595
|
+
<div class="select-dropdown rounded" style="display: none;">
|
596
|
+
<ul class="dropdown-options">
|
597
|
+
<li class="overview-option"><a href="/account/overview.action;jsessionid=FED2AF4286021A3A61DE953F12BCC84A.worker1" class="first-option"><span>Overview</span><div class="checkmark"></div></a></li>
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
</ul>
|
602
|
+
</div>
|
603
|
+
|
604
|
+
<div class="horizontal-divider"></div>
|
605
|
+
|
606
|
+
|
607
|
+
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
</div>
|
612
|
+
|
613
|
+
<div class="innercontent">
|
614
|
+
|
615
|
+
<div class="teams">
|
616
|
+
<h2>Select Team</h2>
|
617
|
+
|
618
|
+
<div class="team-selection">
|
619
|
+
<form id="saveTeamSelection" name="saveTeamSelection" action="/account/saveTeamSelection.action;jsessionid=FED2AF4286021A3A61DE953F12BCC84A.worker1" method="post">
|
620
|
+
<div class="input">
|
621
|
+
<p class="lead">You're a member of multiple development teams. Select a team to continue.</p>
|
622
|
+
|
623
|
+
<p class="team-value">
|
624
|
+
<input type="radio" class="radio" name="memberDisplayId" id="teams1" value="XYZ1">
|
625
|
+
<label for="teams1" class="label-primary">
|
626
|
+
Team 1
|
627
|
+
</label>
|
628
|
+
<label for="teams1" class="label-secondary"></label>
|
629
|
+
|
630
|
+
</p>
|
631
|
+
|
632
|
+
<p class="team-value">
|
633
|
+
<input type="radio" class="radio" name="memberDisplayId" id="teams2" value="XYZ2">
|
634
|
+
<label for="teams2" class="label-primary">
|
635
|
+
Team 2
|
636
|
+
</label>
|
637
|
+
<label for="teams2" class="label-secondary">iOS Developer Program</label>
|
638
|
+
|
639
|
+
</p>
|
640
|
+
|
641
|
+
</div>
|
642
|
+
<div class="sidebarDivider">
|
643
|
+
<div class="buttoncontainer">
|
644
|
+
<a href="/account/overview.action;jsessionid=FED2AF4286021A3A61DE953F12BCC84A.worker1" class="button large"><span>Cancel</span></a>
|
645
|
+
<input type="submit" id="saveTeamSelection_saveTeamSelection_save" name="action:saveTeamSelection!save" value="Continue" class="button large blue submit"/>
|
646
|
+
|
647
|
+
</div>
|
648
|
+
</div>
|
649
|
+
</form>
|
650
|
+
|
651
|
+
|
652
|
+
|
653
|
+
|
654
|
+
</div>
|
655
|
+
|
656
|
+
|
657
|
+
</div>
|
658
|
+
|
659
|
+
</div>
|
660
|
+
|
661
|
+
|
662
|
+
|
663
|
+
|
664
|
+
|
665
|
+
|
666
|
+
</div><!-- /content -->
|
667
|
+
</div><!-- /main -->
|
668
|
+
|
669
|
+
<div id="globalfooter">
|
670
|
+
<div class="gf-sosumi">
|
671
|
+
<p>Copyright © 2013 Apple Inc. All rights reserved.</p>
|
672
|
+
<ul class="piped">
|
673
|
+
<li><a href="http://www.apple.com/legal/terms/site.html" class="first">Terms of Use</a></li>
|
674
|
+
<li><a href="http://www.apple.com/privacy/">Privacy Policy</a></li>
|
675
|
+
</ul>
|
676
|
+
</div>
|
677
|
+
</div>
|
678
|
+
</body>
|
679
|
+
</html>
|
680
|
+
http_version:
|
681
|
+
recorded_at: Thu, 27 Jun 2013 07:35:37 GMT
|
682
|
+
recorded_with: VCR 2.5.0
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 7
|
9
|
+
version: 1.0.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- David Lawson
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2013-
|
17
|
+
date: 2013-07-02 00:00:00 +10:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
type: :development
|
44
44
|
version_requirements: *id002
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
46
|
+
name: vcr
|
47
47
|
prerelease: false
|
48
48
|
requirement: &id003 !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
@@ -52,10 +52,10 @@ dependencies:
|
|
52
52
|
segments:
|
53
53
|
- 0
|
54
54
|
version: "0"
|
55
|
-
type: :
|
55
|
+
type: :development
|
56
56
|
version_requirements: *id003
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
|
-
name:
|
58
|
+
name: webmock
|
59
59
|
prerelease: false
|
60
60
|
requirement: &id004 !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
@@ -64,12 +64,26 @@ dependencies:
|
|
64
64
|
segments:
|
65
65
|
- 0
|
66
66
|
version: "0"
|
67
|
-
type: :
|
67
|
+
type: :development
|
68
68
|
version_requirements: *id004
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: nokogiri
|
71
71
|
prerelease: false
|
72
72
|
requirement: &id005 !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
segments:
|
77
|
+
- 1
|
78
|
+
- 5
|
79
|
+
- 9
|
80
|
+
version: 1.5.9
|
81
|
+
type: :runtime
|
82
|
+
version_requirements: *id005
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: cupertino
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
87
|
requirements:
|
74
88
|
- - ">="
|
75
89
|
- !ruby/object:Gem::Version
|
@@ -77,11 +91,47 @@ dependencies:
|
|
77
91
|
- 0
|
78
92
|
version: "0"
|
79
93
|
type: :runtime
|
80
|
-
version_requirements: *
|
94
|
+
version_requirements: *id006
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: keychain_services
|
97
|
+
prerelease: false
|
98
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
segments:
|
103
|
+
- 0
|
104
|
+
version: "0"
|
105
|
+
type: :runtime
|
106
|
+
version_requirements: *id007
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: spinning_cursor
|
109
|
+
prerelease: false
|
110
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
version: "0"
|
117
|
+
type: :runtime
|
118
|
+
version_requirements: *id008
|
119
|
+
- !ruby/object:Gem::Dependency
|
120
|
+
name: rainbow
|
121
|
+
prerelease: false
|
122
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
version: "0"
|
129
|
+
type: :runtime
|
130
|
+
version_requirements: *id009
|
81
131
|
- !ruby/object:Gem::Dependency
|
82
132
|
name: commander
|
83
133
|
prerelease: false
|
84
|
-
requirement: &
|
134
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
85
135
|
requirements:
|
86
136
|
- - ~>
|
87
137
|
- !ruby/object:Gem::Version
|
@@ -91,7 +141,7 @@ dependencies:
|
|
91
141
|
- 2
|
92
142
|
version: 4.1.2
|
93
143
|
type: :runtime
|
94
|
-
version_requirements: *
|
144
|
+
version_requirements: *id010
|
95
145
|
description: Conveniently add a UDID to the iOS Developer Portal, refresh a provisioning profile and download it. Uploading a new provisioning profile to TestFlight is also supported.
|
96
146
|
email:
|
97
147
|
- tech.lawson@gmail.com
|
@@ -103,6 +153,7 @@ extra_rdoc_files: []
|
|
103
153
|
|
104
154
|
files:
|
105
155
|
- .gitignore
|
156
|
+
- .travis.yml
|
106
157
|
- Gemfile
|
107
158
|
- LICENSE.txt
|
108
159
|
- README.md
|
@@ -114,6 +165,9 @@ files:
|
|
114
165
|
- lib/omudid/portal_agent.rb
|
115
166
|
- lib/omudid/testflight_agent.rb
|
116
167
|
- omudid.gemspec
|
168
|
+
- test/.DS_Store
|
169
|
+
- test/test_omudid.rb
|
170
|
+
- test/vcr/teams.yml
|
117
171
|
has_rdoc: true
|
118
172
|
homepage: https://github.com/Papercloud/OneMoreUDID
|
119
173
|
licenses:
|
@@ -144,5 +198,7 @@ rubygems_version: 1.3.6
|
|
144
198
|
signing_key:
|
145
199
|
specification_version: 3
|
146
200
|
summary: Add one UDID to iOS Dev Portal & TestFlight
|
147
|
-
test_files:
|
148
|
-
|
201
|
+
test_files:
|
202
|
+
- test/.DS_Store
|
203
|
+
- test/test_omudid.rb
|
204
|
+
- test/vcr/teams.yml
|