xcode-install 2.0.0 → 2.1.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/README.md +13 -9
- data/bin//360/237/216/211 +1 -0
- data/lib/xcode/install/cli.rb +1 -1
- data/lib/xcode/install/version.rb +1 -1
- data/lib/xcode/install.rb +45 -11
- data/spec/fixtures/devcenter/xcode-20160705-alt.html +317 -0
- data/spec/fixtures/devcenter/xcode-20160705.html +1909 -0
- data/spec/fixtures/devcenter/xcode-20160922.html +878 -0
- data/spec/fixtures/devcenter/xcode-20161024.html +663 -0
- data/spec/prerelease_spec.rb +28 -0
- data/xcode-install.gemspec +1 -1
- metadata +36 -28
- data/bin//360/237/216/211 +0 -12
- /data/{LICENSE.txt → LICENSE} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3a3da9083e24c5efff45fe7e5af3bdb3a21b2d4a
|
|
4
|
+
data.tar.gz: 4832329bfd097831a4158324adeffef44fcd38a0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5ad3d7d6ff95a844628b3ddd2663fc23f1eb6fc797e9b320ea999b1146ee46bf133969db84f49aba5c25b5fe89590ec37511fd73974d0c99ca033dadb7ceebab
|
|
7
|
+
data.tar.gz: 66ebd9925cced0aacdf88839bb20c389471a187be4d0b51913b7c5d8065e1eea3e67ab28f25041a6466f8bd82f2028977e73e3c72ef918a1d9282aa7cb506e37
|
data/README.md
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
# Xcode::Install
|
|
2
2
|
|
|
3
|
-
[](https://travis-ci.org/neonichu/xcode-install)
|
|
4
|
-
[](https://coveralls.io/r/neonichu/xcode-install)
|
|
5
3
|
[](http://badge.fury.io/rb/xcode-install)
|
|
6
|
-
[](https://codeclimate.com/github/neonichu/xcode-install)
|
|
7
4
|
|
|
8
5
|
Install and update your Xcodes automatically.
|
|
9
6
|
|
|
@@ -30,7 +27,7 @@ $ rm -f domain_name-0.5.99999999.gem
|
|
|
30
27
|
## Usage
|
|
31
28
|
|
|
32
29
|
XcodeInstall needs environment variables with your credentials to access the Apple Developer
|
|
33
|
-
Center, they are stored using the [
|
|
30
|
+
Center, they are stored using the [credentials_manager][1] of [fastlane][2]:
|
|
34
31
|
|
|
35
32
|
```
|
|
36
33
|
XCODE_INSTALL_USER
|
|
@@ -50,15 +47,20 @@ $ xcversion list
|
|
|
50
47
|
|
|
51
48
|
Installed versions will be omitted and by default, only the latest major version is listed.
|
|
52
49
|
|
|
50
|
+
To list all available versions run
|
|
51
|
+
```
|
|
52
|
+
$ xcversion list --all
|
|
53
|
+
```
|
|
54
|
+
|
|
53
55
|
To install a certain version, simply:
|
|
54
56
|
|
|
55
57
|
```
|
|
56
|
-
$ xcversion install
|
|
58
|
+
$ xcversion install 8
|
|
57
59
|
########################################################### 82.1%
|
|
58
60
|
######################################################################## 100.0%
|
|
59
61
|
Please authenticate for Xcode installation...
|
|
60
62
|
|
|
61
|
-
Xcode
|
|
63
|
+
Xcode 8
|
|
62
64
|
Build version 6D570
|
|
63
65
|
```
|
|
64
66
|
|
|
@@ -131,15 +133,17 @@ project, especially [@henrikhodne][6] and [@lacostej][7] for making XcodeInstall
|
|
|
131
133
|
|
|
132
134
|
## Contributing
|
|
133
135
|
|
|
134
|
-
1. Fork it ( https://github.com/
|
|
136
|
+
1. Fork it ( https://github.com/KrauseFx/xcode-install/fork )
|
|
135
137
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
136
138
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
137
139
|
4. Push to the branch (`git push origin my-new-feature`)
|
|
138
140
|
5. Create a new Pull Request
|
|
139
141
|
|
|
140
|
-
##
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
This project is licensed under the terms of the MIT license. See the [LICENSE](LICENSE) file.
|
|
141
145
|
|
|
142
|
-
|
|
146
|
+
> This project and all fastlane tools are in no way affiliated with Apple Inc or Google. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|
|
143
147
|
|
|
144
148
|
[1]: https://github.com/fastlane/credentials_manager#using-environment-variables
|
|
145
149
|
[2]: http://fastlane.tools
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bin/xcversion
|
data/lib/xcode/install/cli.rb
CHANGED
|
@@ -19,7 +19,7 @@ module XcodeInstall
|
|
|
19
19
|
FileUtils.touch(cli_placeholder_file)
|
|
20
20
|
# find the CLI Tools update
|
|
21
21
|
product = `softwareupdate -l | grep "\*.*Command Line" | head -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | tr -d '\n'`
|
|
22
|
-
`softwareupdate -i "#{product}"
|
|
22
|
+
`softwareupdate --verbose -i "#{product}"`
|
|
23
23
|
FileUtils.rm(cli_placeholder_file)
|
|
24
24
|
end
|
|
25
25
|
end
|
data/lib/xcode/install.rb
CHANGED
|
@@ -72,14 +72,28 @@ module XcodeInstall
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def install_dmg(dmg_path, suffix = '', switch = true, clean = true)
|
|
75
|
+
archive_util = '/System/Library/CoreServices/Applications/Archive Utility.app/Contents/MacOS/Archive Utility'
|
|
75
76
|
prompt = "Please authenticate for Xcode installation.\nPassword: "
|
|
76
77
|
xcode_path = "/Applications/Xcode#{suffix}.app"
|
|
77
78
|
|
|
78
79
|
if dmg_path.extname == '.xip'
|
|
79
|
-
`
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
`'#{archive_util}' #{dmg_path}`
|
|
81
|
+
xcode_orig_path = dmg_path.dirname + 'Xcode.app'
|
|
82
|
+
xcode_beta_path = dmg_path.dirname + 'Xcode-beta.app'
|
|
83
|
+
if Pathname.new(xcode_orig_path).exist?
|
|
84
|
+
`sudo -p "#{prompt}" mv "#{xcode_orig_path}" "#{xcode_path}"`
|
|
85
|
+
elsif Pathname.new(xcode_beta_path).exist?
|
|
86
|
+
`sudo -p "#{prompt}" mv "#{xcode_beta_path}" "#{xcode_path}"`
|
|
87
|
+
else
|
|
88
|
+
out = <<-HELP
|
|
89
|
+
No `Xcode.app(or Xcode-beta.app)` found in XIP. Please remove #{dmg_path} if you
|
|
90
|
+
suspect a corrupted download or run `xcversion update` to see if the version
|
|
91
|
+
you tried to install has been pulled by Apple. If none of this is true,
|
|
92
|
+
please open a new GH issue.
|
|
93
|
+
HELP
|
|
94
|
+
$stderr.puts out.tr("\n", ' ')
|
|
95
|
+
return
|
|
96
|
+
end
|
|
83
97
|
else
|
|
84
98
|
mount_dir = mount(dmg_path)
|
|
85
99
|
source = Dir.glob(File.join(mount_dir, 'Xcode*.app')).first
|
|
@@ -123,7 +137,11 @@ HELP
|
|
|
123
137
|
dmg_path = get_dmg(version, progress, url)
|
|
124
138
|
fail Informative, "Failed to download Xcode #{version}." if dmg_path.nil?
|
|
125
139
|
|
|
126
|
-
|
|
140
|
+
if install
|
|
141
|
+
install_dmg(dmg_path, "-#{version.split(' ')[0]}", switch, clean)
|
|
142
|
+
else
|
|
143
|
+
puts "Downloaded Xcode #{version} to '#{dmg_path}'"
|
|
144
|
+
end
|
|
127
145
|
|
|
128
146
|
open_release_notes_url(version) unless url
|
|
129
147
|
end
|
|
@@ -257,7 +275,7 @@ HELP
|
|
|
257
275
|
a.date_modified <=> b.date_modified
|
|
258
276
|
end
|
|
259
277
|
|
|
260
|
-
xcodes.select { |x| x.url.end_with?('.dmg') }
|
|
278
|
+
xcodes.select { |x| x.url.end_with?('.dmg') || x.url.end_with?('.xip') }
|
|
261
279
|
end
|
|
262
280
|
|
|
263
281
|
def list_versions
|
|
@@ -267,7 +285,7 @@ HELP
|
|
|
267
285
|
def prereleases
|
|
268
286
|
body = spaceship.send(:request, :get, '/download/').body
|
|
269
287
|
|
|
270
|
-
links = body.scan(%r{<a.+?href="(
|
|
288
|
+
links = body.scan(%r{<a.+?href="(.+?\.(dmg|xip))".*>(.*)</a>})
|
|
271
289
|
links = links.map do |link|
|
|
272
290
|
parent = link[0].scan(%r{path=(/.*/.*/)}).first.first
|
|
273
291
|
match = body.scan(/#{Regexp.quote(parent)}(.+?.pdf)/).first
|
|
@@ -277,10 +295,20 @@ HELP
|
|
|
277
295
|
link + [nil]
|
|
278
296
|
end
|
|
279
297
|
end
|
|
280
|
-
links = links.map { |pre| Xcode.new_prerelease(pre[
|
|
298
|
+
links = links.map { |pre| Xcode.new_prerelease(pre[2].strip.gsub(/.*Xcode /, ''), pre[0], pre[3]) }
|
|
281
299
|
|
|
282
300
|
if links.count == 0
|
|
283
|
-
|
|
301
|
+
rg = %r{platform-title.*Xcode.* beta.*<\/p>}
|
|
302
|
+
scan = body.scan(rg)
|
|
303
|
+
|
|
304
|
+
if scan.count == 0
|
|
305
|
+
rg = %r{Xcode.* GM.*<\/p>}
|
|
306
|
+
scan = body.scan(rg)
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
return [] if scan.empty?
|
|
310
|
+
|
|
311
|
+
version = scan.first.gsub(/<.*?>/, '').gsub(/.*Xcode /, '')
|
|
284
312
|
link = body.scan(%r{<button .*"(.+?.xip)".*</button>}).first.first
|
|
285
313
|
notes = body.scan(%r{<a.+?href="(/go/\?id=xcode-.+?)".*>(.*)</a>}).first.first
|
|
286
314
|
links << Xcode.new(version, link, notes)
|
|
@@ -440,12 +468,18 @@ HELP
|
|
|
440
468
|
end
|
|
441
469
|
|
|
442
470
|
def downloadable_index_url
|
|
443
|
-
@downloadable_index_url ||=
|
|
471
|
+
@downloadable_index_url ||= begin
|
|
472
|
+
if Gem::Version.new(version) >= Gem::Version.new('8.1')
|
|
473
|
+
"https://devimages-cdn.apple.com/downloads/xcode/simulators/index-#{bundle_version}-#{uuid}.dvtdownloadableindex"
|
|
474
|
+
else
|
|
475
|
+
"https://devimages.apple.com.edgekey.net/downloads/xcode/simulators/index-#{bundle_version}-#{uuid}.dvtdownloadableindex"
|
|
476
|
+
end
|
|
477
|
+
end
|
|
444
478
|
end
|
|
445
479
|
|
|
446
480
|
def approve_license
|
|
447
481
|
license_path = "#{@path}/Contents/Resources/English.lproj/License.rtf"
|
|
448
|
-
license_id = IO.read(license_path).match(
|
|
482
|
+
license_id = IO.read(license_path).match(/\bEA\d{4}\b/)
|
|
449
483
|
license_plist_path = '/Library/Preferences/com.apple.dt.Xcode.plist'
|
|
450
484
|
`sudo rm -rf #{license_plist_path}`
|
|
451
485
|
`sudo /usr/libexec/PlistBuddy -c "add :IDELastGMLicenseAgreedTo string #{license_id}" #{license_plist_path}`
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
<!DOCTYPE html>
|
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
6
|
+
<head>
|
|
7
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
8
|
+
<meta name="Author" content="Apple Inc." />
|
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
10
|
+
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9">
|
|
11
|
+
<link rel="shortcut icon" href="/favicon.ico" />
|
|
12
|
+
<link rel="icon" href="/favicon.ico" />
|
|
13
|
+
<link rel="mask-icon" href="/apple-logo.svg" color="#333333">
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="/assets/styles/globalnav.css" type="text/css" />
|
|
16
|
+
<link rel="stylesheet" href="/assets/styles/global.css" type="text/css" />
|
|
17
|
+
|
|
18
|
+
<script src="https://devimages.apple.com.edgekey.net/assets/scripts/lib/jquery/jquery-1.11.0.min.js"></script>
|
|
19
|
+
<script src="https://devimages.apple.com.edgekey.net/assets/scripts/lib/jquery/jquery.retinate.js" type="text/javascript" charset="utf-8"></script>
|
|
20
|
+
<!--[if lt IE 9]>
|
|
21
|
+
<link rel="stylesheet" href="/assets/styles/oldie.css" type="text/css" />
|
|
22
|
+
<script src="/assets/scripts/html5.js"></script>
|
|
23
|
+
<![endif]-->
|
|
24
|
+
<script src="/assets/scripts/lg-search.js"></script>
|
|
25
|
+
<script src="/assets/scripts/global.js"></script>
|
|
26
|
+
|
|
27
|
+
<link rel="stylesheet" href="https://www.apple.com/wss/fonts?family=Myriad+Set+Pro&v=2" type="text/css" />
|
|
28
|
+
|
|
29
|
+
<title>Download - Apple Developer</title>
|
|
30
|
+
<meta name="omni_page" content="Download - Apple Developer">
|
|
31
|
+
<link rel="stylesheet" href="/download/styles/download.css" type="text/css" />
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
</head>
|
|
35
|
+
<body>
|
|
36
|
+
<input type="checkbox" id="ac-gn-menustate" class="ac-gn-menustate">
|
|
37
|
+
<nav id="ac-globalnav" class="no-js" role="navigation" aria-label="Global Navigation" data-hires="false" data-analytics-region="global nav" lang="en-US">
|
|
38
|
+
<div class="ac-gn-content">
|
|
39
|
+
<ul class="ac-gn-header">
|
|
40
|
+
<li class="ac-gn-item ac-gn-menuicon"> <label class="ac-gn-menuicon-label" for="ac-gn-menustate" aria-hidden="true">
|
|
41
|
+
<span class="ac-gn-menuicon-bread ac-gn-menuicon-bread-top">
|
|
42
|
+
<span class="ac-gn-menuicon-bread-crust ac-gn-menuicon-bread-crust-top"></span>
|
|
43
|
+
</span>
|
|
44
|
+
<span class="ac-gn-menuicon-bread ac-gn-menuicon-bread-bottom">
|
|
45
|
+
<span class="ac-gn-menuicon-bread-crust ac-gn-menuicon-bread-crust-bottom"></span>
|
|
46
|
+
</span>
|
|
47
|
+
</label>
|
|
48
|
+
<a href="#ac-gn-menustate" class="ac-gn-menuanchor ac-gn-menuanchor-open" id="ac-gn-menuanchor-open"> <span class="ac-gn-menuanchor-label">Open Menu</span> </a>
|
|
49
|
+
<a href="#" class="ac-gn-menuanchor ac-gn-menuanchor-close" id="ac-gn-menuanchor-close"> <span class="ac-gn-menuanchor-label">Close Menu</span> </a>
|
|
50
|
+
</li>
|
|
51
|
+
<li class="ac-gn-item ac-gn-apple">
|
|
52
|
+
<a class="ac-gn-link ac-gn-link-apple" href="/" id="ac-gn-firstfocus-small"> <span class="ac-gn-link-text">Apple Developer</span> </a>
|
|
53
|
+
</li>
|
|
54
|
+
<li class="ac-gn-item ac-gn-bag ac-gn-bag-small" id="ac-gn-bag-small">
|
|
55
|
+
<a class="ac-gn-link ac-gn-link-bag" href="/account/"> <span class="ac-gn-link-text">Account</span> <span class="ac-gn-bag-badge"></span> </a> <span class="ac-gn-bagview-caret ac-gn-bagview-caret-large"></span> </li>
|
|
56
|
+
</ul>
|
|
57
|
+
<ul class="ac-gn-list">
|
|
58
|
+
<li class="ac-gn-item ac-gn-apple">
|
|
59
|
+
<a class="ac-gn-link ac-gn-link-apple" href="/" id="ac-gn-firstfocus"> <span class="ac-gn-link-text">Apple Developer</span> </a>
|
|
60
|
+
</li>
|
|
61
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-discover">
|
|
62
|
+
<a class="ac-gn-link" href="/discover/"> <span>Discover</span> </a>
|
|
63
|
+
</li>
|
|
64
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-design">
|
|
65
|
+
<a class="ac-gn-link" href="/design/"> <span>Design</span> </a>
|
|
66
|
+
</li>
|
|
67
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-develop">
|
|
68
|
+
<a class="ac-gn-link" href="/develop/"> <span>Develop</span> </a>
|
|
69
|
+
</li>
|
|
70
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-distribute">
|
|
71
|
+
<a class="ac-gn-link" href="/distribute/"> <span>Distribute</span> </a>
|
|
72
|
+
</li>
|
|
73
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-support">
|
|
74
|
+
<a class="ac-gn-link" href="/support/"> <span>Support</span> </a>
|
|
75
|
+
</li>
|
|
76
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-account">
|
|
77
|
+
<a class="ac-gn-link" href="/account/"> <span>Account</span> </a>
|
|
78
|
+
</li>
|
|
79
|
+
<li class="ac-gn-item ac-gn-item-menu ac-gn-search" role="search">
|
|
80
|
+
<a id="ac-gn-search-button" class="ac-gn-link ac-gn-link-search" href="/search/" aria-label="Search developer.apple.com"> <span class="ac-gn-search-placeholder" aria-hidden="true">Search</span> </a>
|
|
81
|
+
</li>
|
|
82
|
+
</ul>
|
|
83
|
+
<aside id="ac-gn-searchview" class="ac-gn-searchview" role="search" data-analytics-region="search">
|
|
84
|
+
<div class="ac-gn-searchview-content">
|
|
85
|
+
<form id="ac-gn-searchform" class="ac-gn-searchform" action="/search/" method="get">
|
|
86
|
+
<div class="ac-gn-searchform-wrapper"> <input id="ac-gn-searchform-input" class="ac-gn-searchform-input" type="text" name="q" placeholder="Search" data-placeholder-long="Search for documentation, videos, and more" autocorrect="off" autocapitalize="off" autocomplete="off" spellcheck="false" /> <button id="ac-gn-searchform-submit" class="ac-gn-searchform-submit" type="submit" disabled aria-label="Submit"></button> <button id="ac-gn-searchform-reset" class="ac-gn-searchform-reset" type="reset" disabled aria-label="Clear Search"></button> </div>
|
|
87
|
+
</form>
|
|
88
|
+
<aside id="ac-gn-searchresults" class="ac-gn-searchresults" data-string-quicklinks="Quick Links" data-string-suggestions="Suggested Searches" data-string-noresults="Hit enter to search.">
|
|
89
|
+
|
|
90
|
+
</aside>
|
|
91
|
+
</div> <button id="ac-gn-searchview-close" class="ac-gn-searchview-close" aria-label="Close Search">
|
|
92
|
+
<span class="ac-gn-searchview-close-wrapper">
|
|
93
|
+
<span class="ac-gn-searchview-close-left"></span>
|
|
94
|
+
<span class="ac-gn-searchview-close-right"></span>
|
|
95
|
+
</span>
|
|
96
|
+
</button> </aside>
|
|
97
|
+
</div>
|
|
98
|
+
</nav>
|
|
99
|
+
<div id="ac-gn-curtain" class="ac-gn-curtain"></div>
|
|
100
|
+
<div id="ac-gn-placeholder" class="ac-nav-placeholder"></div>
|
|
101
|
+
<script type="text/javascript" src="/assets/scripts/ac-globalnav.built.js"></script>
|
|
102
|
+
|
|
103
|
+
<div id="top">
|
|
104
|
+
<!-- SiteCatalyst code version: H.8. Copyright 1997-2006 Omniture, Inc. -->
|
|
105
|
+
<script type="text/javascript">
|
|
106
|
+
/* RSID: */
|
|
107
|
+
var s_account="appleglobal,appleusdeveloper"
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<script type="text/javascript" src="https://www.apple.com/metrics/scripts/s_code_h.js"></script>
|
|
111
|
+
<script type="text/javascript">
|
|
112
|
+
s.pageName= AC && AC.Tracking && AC.Tracking.pageName();
|
|
113
|
+
s.channel="www.us.developer"
|
|
114
|
+
|
|
115
|
+
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
|
|
116
|
+
var s_code=s.t();if(s_code)document.write(s_code)</script>
|
|
117
|
+
<!-- End SiteCatalyst code version: H.8. -->
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<main id="main" class="main" role="main">
|
|
121
|
+
|
|
122
|
+
<section class="grid">
|
|
123
|
+
<section class="row">
|
|
124
|
+
<section class="col-100">
|
|
125
|
+
<nav class="logout-bar">
|
|
126
|
+
<ul>
|
|
127
|
+
<li>Nicholas Cobb</li>
|
|
128
|
+
<li> | </li>
|
|
129
|
+
<li><a href="/logout/?return=%2Fios%2Fdownload%2Fwwdc%2F" class="sign-out">Sign out</a></li>
|
|
130
|
+
</ul>
|
|
131
|
+
</nav>
|
|
132
|
+
<h1 class="text-center">Downloads</h1>
|
|
133
|
+
<p class=" text-center center width-75 intro">Get the latest beta releases of Xcode, iOS, macOS, watchOS, tvOS, and more.</p>
|
|
134
|
+
</section>
|
|
135
|
+
</section>
|
|
136
|
+
</section>
|
|
137
|
+
|
|
138
|
+
<!--END PAY WALL -->
|
|
139
|
+
<div class="grid">
|
|
140
|
+
<div class="row compact">
|
|
141
|
+
<section class="col-20 padding-top">
|
|
142
|
+
<img class="center" src="/assets/elements/icons/128x128/xcode6-beta.png" width="128" height="128" alt="" />
|
|
143
|
+
</section>
|
|
144
|
+
<section class="col-60 padding-top">
|
|
145
|
+
<h4>Xcode 8 beta 2</h4>
|
|
146
|
+
<p>
|
|
147
|
+
</p>
|
|
148
|
+
<ul class="links small">
|
|
149
|
+
<li class="download"><a href="/services-account/download?path=/Developer_Tools/Xcode_8_beta_2/Xcode_8_beta_2.xip">Download Xcode 8 beta 2</a></li>
|
|
150
|
+
</ul>
|
|
151
|
+
<ul class="links small">
|
|
152
|
+
<li class="document"><a href="/go/?id=xcode-8-beta-rn">Release Notes</a></li>
|
|
153
|
+
</ul>
|
|
154
|
+
</section>
|
|
155
|
+
<section class="col-20 text-right">
|
|
156
|
+
<p class="sosumi no-margin-bottom margin-top-small">Build</p>
|
|
157
|
+
<p class="smaller lighter">8S162m</p>
|
|
158
|
+
<p class="sosumi no-margin-bottom margin-top-small">Posted Date</p>
|
|
159
|
+
<p class="smaller lighter no-margin">Jul 5, 2016</p>
|
|
160
|
+
<p class="sosumi no-margin-bottom margin-top-small">SDKs</p>
|
|
161
|
+
<p class="smaller lighter no-margin">iOS 10</p>
|
|
162
|
+
<p class="smaller lighter no-margin">macOS 10.12</p>
|
|
163
|
+
<p class="smaller lighter no-margin">watchOS 3</p>
|
|
164
|
+
<p class="smaller lighter no-margin">tvOS 10</p>
|
|
165
|
+
</section>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div class="row divider-top compact">
|
|
169
|
+
<section class="col-20 padding-top">
|
|
170
|
+
<img class="center" src="/assets/elements/icons/128x128/xcode6.png" width="128" height="128" alt="" />
|
|
171
|
+
</section>
|
|
172
|
+
<section class="col-60 padding-top">
|
|
173
|
+
<h4>Xcode 7.3.1</h4>
|
|
174
|
+
<p>This release includes the Xcode IDE, Swift 2 compiler, Instruments, Simulator, and latest SDKs for OS X, iOS, tvOS and watchOS.</p>
|
|
175
|
+
<p><a class="more" href="https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12">View in the Mac App Store</a></p>
|
|
176
|
+
<ul class="links small">
|
|
177
|
+
<li class="document"><a href="/go/?id=xcode-7.3.1-rn">Xcode 7.3.1 Release Notes</a></li>
|
|
178
|
+
</ul>
|
|
179
|
+
</section>
|
|
180
|
+
<section class="col-20 text-right">
|
|
181
|
+
<p class="sosumi no-margin-bottom margin-top-small">Build</p>
|
|
182
|
+
<p class="smaller lighter">7D1014</p>
|
|
183
|
+
<p class="sosumi no-margin-bottom margin-top-small">Posted Date</p>
|
|
184
|
+
<p class="smaller lighter no-margin">May 3, 2016</p>
|
|
185
|
+
<p class="sosumi no-margin-bottom margin-top-small">SDK</p>
|
|
186
|
+
<p class="smaller lighter no-margin">iOS 9.3</p>
|
|
187
|
+
<p class="smaller lighter no-margin">OS X 10.11.4</p>
|
|
188
|
+
<p class="smaller lighter no-margin">watchOS 2.2</p>
|
|
189
|
+
<p class="smaller lighter no-margin">tvOS 9.2</p>
|
|
190
|
+
</section>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
|
|
194
|
+
<div class="bg-grad-down">
|
|
195
|
+
<div class="grid">
|
|
196
|
+
<div class="row compact">
|
|
197
|
+
<section class="col-100 padding-top padding-bottom margin-top margin-bottom">
|
|
198
|
+
<p class="intro width-80 center text-center">Your Apple ID must be associated with a paid Apple Developer Program or Apple Developer Enterprise Program to access certain software downloads. You can download Xcode below or sign in with a different account.</p>
|
|
199
|
+
|
|
200
|
+
<p class="text-center">Are you signed in with the wrong account? <a href="/logout/?return=%2Fios%2Fdownload%2Fwwdc%2F" class="sign-out">Sign out</a> and sign back in.</p>
|
|
201
|
+
</section>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
</main>
|
|
211
|
+
|
|
212
|
+
<div class="bg-light">
|
|
213
|
+
<aside class="grid">
|
|
214
|
+
<section id="router" class="router">
|
|
215
|
+
<a href="/download/more/" class="block row">
|
|
216
|
+
<span class="col-100 text-center">
|
|
217
|
+
<span class="two-lines">
|
|
218
|
+
<h4>
|
|
219
|
+
<small>Don't see what you're looking for?</small>
|
|
220
|
+
See more downloads
|
|
221
|
+
</h4>
|
|
222
|
+
</span>
|
|
223
|
+
</span>
|
|
224
|
+
</a>
|
|
225
|
+
</section>
|
|
226
|
+
</aside>
|
|
227
|
+
</div>
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
<section id="globalfooter-wrapper">
|
|
231
|
+
<footer id="globalfooter" role="contentinfo">
|
|
232
|
+
<nav class="footer-breadory">
|
|
233
|
+
<a href="/" class="home breadcrumbs-home"><span aria-hidden="true"></span><span class="breadcrumbs-home-label">Developer</span></a>
|
|
234
|
+
<section class="breadcrumbs">
|
|
235
|
+
<ol class="breadcrumbs-list">
|
|
236
|
+
<li>Download</li>
|
|
237
|
+
</ol>
|
|
238
|
+
</section>
|
|
239
|
+
<div id="directorynav" class="directorynav">
|
|
240
|
+
<div id="dn-cola" class="column">
|
|
241
|
+
<h3><a href="/discover/">Discover</a></h3>
|
|
242
|
+
<ul>
|
|
243
|
+
<li><a href="/macos/">macOS</a></li>
|
|
244
|
+
<li><a href="/ios/">iOS</a></li>
|
|
245
|
+
<li><a href="/watchos/">watchOS</a></li>
|
|
246
|
+
<li><a href="/tvos/">tvOS</a></li>
|
|
247
|
+
<li><a href="/programs/">Developer Program</a></li>
|
|
248
|
+
<li><a href="/enterprise/">Enterprise</a></li>
|
|
249
|
+
<li><a href="/education/">Education</a></li>
|
|
250
|
+
</ul>
|
|
251
|
+
|
|
252
|
+
</div>
|
|
253
|
+
<div id="dn-colb" class="column">
|
|
254
|
+
<h3><a href="/design/">Design</a></h3>
|
|
255
|
+
<ul>
|
|
256
|
+
<li><a href="/accessibility/">Accessibility</a></li>
|
|
257
|
+
<li><a href="/cases/">Accessories</a></li>
|
|
258
|
+
<li><a href="/design/adaptivity/">Adaptivity</a></li>
|
|
259
|
+
<li><a href="/design/awards/">Apple Design Awards</a></li>
|
|
260
|
+
<li><a href="/fonts/">Fonts</a></li>
|
|
261
|
+
<li><a href="/videos/design/">Design Videos</a></li>
|
|
262
|
+
<li><a href="/app-store/marketing/guidelines/">Marketing Guidelines</a></li>
|
|
263
|
+
</ul>
|
|
264
|
+
</div>
|
|
265
|
+
<div id="dn-colc" class="column">
|
|
266
|
+
<h3><a href="/develop/">Develop</a></h3>
|
|
267
|
+
<ul>
|
|
268
|
+
<li><a href="/xcode/">Xcode</a></li>
|
|
269
|
+
<li><a href="/swift/">Swift</a></li>
|
|
270
|
+
<li><a href="/download/">Downloads</a></li>
|
|
271
|
+
<li><a href="/reference/">API Reference</a></li>
|
|
272
|
+
<li><a href="/library/prerelease/content/navigation/">Guides</a></li>
|
|
273
|
+
<li><a href="/library/prerelease/content/navigation/#section=Resource%20Types&topic=Sample%20Code">Sample Code</a></li>
|
|
274
|
+
<li><a href="/videos/">Videos</a></li>
|
|
275
|
+
</ul>
|
|
276
|
+
|
|
277
|
+
</div>
|
|
278
|
+
<div id="dn-cold" class="column">
|
|
279
|
+
<h3><a href="/distribute/">Distribute</a></h3>
|
|
280
|
+
<ul>
|
|
281
|
+
<li><a href="/app-store/">App Store</a></li>
|
|
282
|
+
<li><a href="/app-store/review/">App Review</a></li>
|
|
283
|
+
<li><a href="https://itunesconnect.apple.com/">iTunes Connect</a></li>
|
|
284
|
+
<li><a href="/testflight/">TestFlight</a></li>
|
|
285
|
+
<li><a href="/enterprise/">Enterprise</a></li>
|
|
286
|
+
<li><a href="/safari/extensions/">Safari Extensions</a></li>
|
|
287
|
+
</ul>
|
|
288
|
+
</div>
|
|
289
|
+
<div id="dn-cole" class="column">
|
|
290
|
+
<h3><a href="/support/">Support</a></h3>
|
|
291
|
+
<ul>
|
|
292
|
+
<li><a href="https://forums.developer.apple.com">Developer Forums</a></li>
|
|
293
|
+
<li><a href="/contact/">Contact Us</a></li>
|
|
294
|
+
<li><a href="/bug-reporting/">Bug Reporting</a></li>
|
|
295
|
+
<li><a href="/terms/">License Agreements</a></li>
|
|
296
|
+
<li><a href="/system-status/">System Status</a></li>
|
|
297
|
+
</ul>
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
|
|
301
|
+
</nav>
|
|
302
|
+
<div class="ac-gf-footer-legal">
|
|
303
|
+
<div class="ac-gf-footer-news"> To receive the latest developer news, visit and subscribe to our <a href="/news/">News and Updates</a>. </div>
|
|
304
|
+
<div class="ac-gf-footer-legal-copyright">Copyright © 2016 Apple Inc. All rights reserved.</div>
|
|
305
|
+
<div class="ac-gf-footer-legal-links">
|
|
306
|
+
<a href="https://www.apple.com/legal/internet-services/terms/site.html" class="first">Terms of Use</a>
|
|
307
|
+
<a href="https://www.apple.com/privacy/privacy-policy/">Privacy Policy</a>
|
|
308
|
+
<a href="/bug-reporting/">Report Bugs</a>
|
|
309
|
+
<a href="/contact/submit/">Feedback</a>
|
|
310
|
+
</div>
|
|
311
|
+
</div>
|
|
312
|
+
|
|
313
|
+
</footer>
|
|
314
|
+
</section>
|
|
315
|
+
|
|
316
|
+
</body>
|
|
317
|
+
</html>
|