xcode-install 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f8bbc4de2d24fa4645d941ceec44a782cffbdc9d
4
+ data.tar.gz: 6a85175f9b418c5c4f6c6e7e34e4fdbd4a3d337d
5
+ SHA512:
6
+ metadata.gz: 1369f85d45345a4834696a6687d8a5f844e9a9c0aea48af6b01af454c1c33eeb94e6216cdc40616834fab75dd8c7547aa04c1d6c76fbba53b18f8d0d1447c904
7
+ data.tar.gz: 3ea5f88d064808fddf282df80ad787afd13c39d6959466541e1503aab1123270a66ea527f718b44507e8825aab79ef48ea62a51199fd1cb65da7f41bd73d2b1b
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'bacon'
7
+ gem 'mocha-on-bacon'
8
+ gem 'mocha', '~> 0.11.4'
9
+ gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master'
10
+ gem 'coveralls', :require => false
11
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Boris Bügling
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,87 @@
1
+ # Xcode::Install
2
+
3
+ Install and update your Xcodes automatically.
4
+
5
+ ```bash
6
+ $ gem install 'xcode-install'
7
+ $ xcode-install install 6.3
8
+ ```
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ ```ruby
15
+ gem 'xcode-install'
16
+ ```
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install xcode-install
25
+
26
+ ## Usage
27
+
28
+ XcodeInstall will ask for your credentials to access the Apple Developer Center, they are stored
29
+ using the [CredentialsManager][1] of [Fastlane][2].
30
+
31
+ To list available versions:
32
+
33
+ ```bash
34
+ $ xcode-install list
35
+ 6.0.1
36
+ 6.1
37
+ 6.1.1
38
+ 6.2
39
+ 6.3
40
+ ```
41
+
42
+ By default, only the latest major version is listed.
43
+
44
+ To install a certain version, simply:
45
+
46
+ ```bash
47
+ $ xcode-install install 6.3
48
+ ########################################################### 82.1%
49
+ ######################################################################## 100.0%
50
+ Please authenticate for Xcode installation...
51
+
52
+ Xcode 6.3
53
+ Build version 6D570
54
+ ```
55
+
56
+ This will download and install that version of Xcode. It will also be automatically selected.
57
+
58
+ ## Limitations
59
+
60
+ This is a first shot, there are currently some limitations:
61
+
62
+ - No cleanup of caches in `~/Library/Caches/XcodeInstall` [#6](/../../issues/6)
63
+ - No automatic uninstallation [#3](/../../issues/3)
64
+ - No notion of installed versions [#1](/../../issues/1)
65
+ - No support for preleases [#5](/../../issues/5)
66
+
67
+ I will be addressing those in the future, but feel free to send PRs or report additional
68
+ bugs and shortcomings.
69
+
70
+ ## Thanks
71
+
72
+ [This][3] downloading script which has been used for some inspiration, also [this][4]
73
+ for doing the installation.
74
+
75
+ ## Contributing
76
+
77
+ 1. Fork it ( https://github.com/[my-github-username]/xcode-install/fork )
78
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
79
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
80
+ 4. Push to the branch (`git push origin my-new-feature`)
81
+ 5. Create a new Pull Request
82
+
83
+
84
+ [1]: https://github.com/KrauseFx/CredentialsManager
85
+ [2]: http://fastlane.tools
86
+ [3]: http://atastypixel.com/blog/resuming-adc-downloads-cos-safari-sucks/
87
+ [4]: https://github.com/magneticbear/Jenkins_Bootstrap
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ def specs(dir)
4
+ FileList["spec/#{dir}/*_spec.rb"].shuffle.join(' ')
5
+ end
6
+
7
+ desc 'Runs all the specs'
8
+ task :spec do
9
+ sh "bundle exec bacon #{specs('**')}"
10
+ end
11
+
12
+ task :default => :specs
data/bin/xcode-install ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if $PROGRAM_NAME == __FILE__
4
+ ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', __FILE__)
5
+ require 'rubygems'
6
+ require 'bundler/setup'
7
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
8
+ end
9
+
10
+ require 'xcode/install'
11
+
12
+ XcodeInstall::Command.run(ARGV)
@@ -0,0 +1,146 @@
1
+ require "fastlane_core"
2
+ require "fastlane_core/developer_center/developer_center"
3
+ require "xcode/install/command"
4
+ require "xcode/install/version"
5
+
6
+ module FastlaneCore
7
+ class DeveloperCenter
8
+ def cookies
9
+ cookie_string = ""
10
+
11
+ page.driver.cookies.each do |key, cookie|
12
+ cookie_string << "#{cookie.name}=#{cookie.value};"
13
+ end
14
+
15
+ cookie_string
16
+ end
17
+
18
+ def download_seedlist
19
+ # categories: Applications%2CDeveloper%20Tools%2CiOS%2COS%20X%2COS%20X%20Server%2CSafari
20
+ JSON.parse(page.evaluate_script("$.ajax({data: { start: \"0\", limit: \"1000\", " +
21
+ "sort: \"dateModified\", dir: \"DESC\", searchTextField: \"\", " +
22
+ "searchCategories: \"\", search: \"false\" } , type: 'POST', " +
23
+ "url: '/downloads/seedlist.action', async: false})")['responseText'])
24
+ end
25
+ end
26
+
27
+ module Helper
28
+ def self.is_test?
29
+ true
30
+ end
31
+ end
32
+ end
33
+
34
+ module XcodeInstall
35
+ class Curl
36
+ COOKIES_PATH = Pathname.new('/tmp/curl-cookies.txt')
37
+
38
+ def fetch(url, directory = nil, cookies = nil, output = nil)
39
+ options = cookies.nil? ? '' : "-b '#{cookies}' -c #{COOKIES_PATH}"
40
+ #options += ' -vvv'
41
+
42
+ uri = URI.parse(url)
43
+ output ||= File.basename(uri.path)
44
+ output = (Pathname.new(directory) + Pathname.new(output)) if directory
45
+
46
+ command = "curl #{options} -L -C - -# -o #{output} #{url}"
47
+ IO.popen(command).each do |fd|
48
+ puts(fd)
49
+ end
50
+ result = $?.to_i == 0
51
+
52
+ FileUtils.rm_f(COOKIES_PATH)
53
+ result
54
+ end
55
+ end
56
+
57
+ class Installer
58
+ attr_reader :xcodes
59
+
60
+ def initialize
61
+ FileUtils.mkdir_p(CACHE_DIR)
62
+ end
63
+
64
+ def download(version)
65
+ return unless exist?(version)
66
+ xcode = seedlist.select { |x| x.name == version }.first
67
+ dmg_file = Pathname.new(File.basename(xcode.path))
68
+
69
+ result = Curl.new.fetch(xcode.url, CACHE_DIR, devcenter.cookies, dmg_file)
70
+ result ? CACHE_DIR + dmg_file : nil
71
+ end
72
+
73
+ def exist?(version)
74
+ list_versions.include?(version)
75
+ end
76
+
77
+ def install_dmg(dmgPath, suffix = '')
78
+ xcode_path = "/Applications/Xcode#{suffix}.app"
79
+
80
+ `hdiutil mount -noverify #{dmgPath}`
81
+ puts 'Please authenticate for Xcode installation...'
82
+ `sudo cp -R "/Volumes/Xcode/Xcode.app" "#{xcode_path}"`
83
+ `umount "/Volumes/Xcode"`
84
+
85
+ `sudo xcode-select -s #{xcode_path}`
86
+ puts `xcodebuild -version`
87
+ end
88
+
89
+ def list_current
90
+ majors = list_versions.map { |v| v.split('.')[0] }.select { |v| v.length == 1 }.uniq
91
+ list_versions.select { |v| v.start_with?(majors.last) }.join("\n")
92
+ end
93
+
94
+ def list
95
+ list_versions.join("\n")
96
+ end
97
+
98
+ :private
99
+
100
+ CACHE_DIR = Pathname.new("#{ENV['HOME']}/Library/Caches/XcodeInstall")
101
+ LIST_FILE = CACHE_DIR + Pathname.new('xcodes.bin')
102
+
103
+ def devcenter
104
+ @devcenter ||= FastlaneCore::DeveloperCenter.new
105
+ end
106
+
107
+ def get_seedlist
108
+ @xcodes = parse_seedlist(devcenter.download_seedlist)
109
+
110
+ File.open(LIST_FILE,'w') do |f|
111
+ f << Marshal.dump(xcodes)
112
+ end
113
+
114
+ xcodes
115
+ end
116
+
117
+ def parse_seedlist(seedlist)
118
+ seedlist['data'].select {
119
+ |t| /^Xcode [0-9]/.match(t['name'])
120
+ }.map { |x| Xcode.new(x) }.sort { |a,b| a.dateModified <=> b.dateModified }
121
+ end
122
+
123
+ def list_versions
124
+ seedlist.map { |x| x.name }
125
+ end
126
+
127
+ def seedlist
128
+ @xcodes = Marshal.load(File.read(LIST_FILE)) if LIST_FILE.exist? && xcodes.nil?
129
+ xcodes || get_seedlist
130
+ end
131
+ end
132
+
133
+ class Xcode
134
+ attr_reader :dateModified
135
+ attr_reader :name
136
+ attr_reader :path
137
+ attr_reader :url
138
+
139
+ def initialize(json)
140
+ @dateModified = json['dateModified'].to_i
141
+ @name = json['name'].gsub(/^Xcode /, '')
142
+ @path = json['files'].first['remotePath']
143
+ @url = "https://developer.apple.com/devcenter/download.action?path=#{@path}"
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,14 @@
1
+ require 'claide'
2
+ require "xcode/install/version"
3
+
4
+ module XcodeInstall
5
+ class Command < CLAide::Command
6
+ require "xcode/install/install"
7
+ require "xcode/install/list"
8
+
9
+ self.abstract_command = true
10
+ self.command = 'xcode-install'
11
+ self.version = VERSION
12
+ self.description = 'Xcode installation manager.'
13
+ end
14
+ end
@@ -0,0 +1,38 @@
1
+ module XcodeInstall
2
+ class PlainInformative < StandardError
3
+ include CLAide::InformativeError
4
+ end
5
+
6
+ class Informative < PlainInformative
7
+ def message
8
+ "[!] #{super}".red
9
+ end
10
+ end
11
+
12
+ class Command
13
+ class Install < Command
14
+ self.command = 'install'
15
+ self.summary = 'Install a specific version of Xcode.'
16
+
17
+ self.arguments = [
18
+ CLAide::Argument.new('VERSION', :true),
19
+ ]
20
+
21
+ def initialize(argv)
22
+ @installer = Installer.new
23
+ @version = argv.shift_argument
24
+ end
25
+
26
+ def validate!
27
+ raise Informative, "Version #{@version} doesn't exist." unless @installer.exist?(@version)
28
+ end
29
+
30
+ def run
31
+ dmgPath = @installer.download(@version)
32
+ raise Informative, "Failed to download Xcode #{@version}." if dmgPath.nil?
33
+
34
+ @installer.install_dmg(dmgPath, "-#{@version}")
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,27 @@
1
+ module XcodeInstall
2
+ class Command
3
+ class List < Command
4
+ self.command = 'list'
5
+ self.summary = 'List Xcodes available for download.'
6
+
7
+ def self.options
8
+ [['--all', 'Show all available versions.']].concat(super)
9
+ end
10
+
11
+ def initialize(argv)
12
+ @all = argv.flag?('all', false)
13
+ super
14
+ end
15
+
16
+ def run
17
+ installer = XcodeInstall::Installer.new
18
+
19
+ if @all
20
+ puts installer.list
21
+ else
22
+ puts installer.list_current
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module XcodeInstall
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1 @@
1
+ {"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1413472373000,"dateDisabled":null,"dateModified":1413472373000,"description":"This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.","files":[{"active":true,"dateCreated":1413472373000,"dateModified":1413472373000,"fileSize":107698152,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33285,"name":"Command Line Tools for OSX 10.9 for Xcode 6.1","remotePath":"/Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6.1/command_line_tools_for_osx_10.9_for_xcode_6.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21958,"name":"Command Line Tools (OS X 10.9) for Xcode - Xcode 6.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"}
@@ -0,0 +1 @@
1
+ { "data" :[{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1427400482000,"dateDisabled":null,"dateModified":1427749027000,"description":"This package contains development & debug versions of the OS X kernel and many I/O Kit families for use with LLDB remote (two-machine) kernel debugging. These files contain full symbolic information, unlike the equivalent files in a normal OS X installation. Also included are LLDB macros useful for kernel debugging and DEVELOPMENT (for every day use) and DEBUG (for much more error checking) kernels built with more assertions and fewer compiler optimizations.","files":[{"active":true,"dateCreated":1427399968000,"dateModified":1427749027000,"fileSize":92152909,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":36000,"name":"kernel_debug_kit_10.10.2.14C1514","remotePath":"/Developer_Tools/Kernel_Debug_Kit_10.10.2_build_14C1514/kernel_debug_kit_10.10.2.14C1514.dmg","sortOrder":null,"state":"ENABLED"}],"id":24120,"name":"Kernel Debug Kit 10.10.2 build 14C1514","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1425695047000,"dateDisabled":null,"dateModified":1425943753000,"description":"This is the complete Xcode developer toolset for Mac, iPhone, and iPad. It includes the Xcode IDE, iOS Simulator, and all required tools and frameworks for building OS X and iOS apps.","files":[{"active":true,"dateCreated":1425696402000,"dateModified":1425929405000,"fileSize":2778059898,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":35240,"name":"Xcode 6.2","remotePath":"/Developer_Tools/Xcode_6.2/Xcode_6.2.dmg","sortOrder":null,"state":"ENABLED"}],"id":23600,"name":"Xcode 6.2","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1425715291000,"dateDisabled":null,"dateModified":1425929196000,"description":"This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.","files":[{"active":true,"dateCreated":1425715250000,"dateModified":1425929196000,"fileSize":107722916,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":35261,"name":"commandlinetoolsosx10.9forxcode6.2","remotePath":"/Developer_Tools/Command_Line_Tools_OS_X_10.9_for_Xcode__Xcode_6.2/commandlinetoolsosx10.9forxcode6.2.dmg","sortOrder":null,"state":"ENABLED"}],"id":23621,"name":"Command Line Tools (OS X 10.9) for Xcode - Xcode 6.2","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1425715155000,"dateDisabled":null,"dateModified":1425929191000,"description":"This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.","files":[{"active":true,"dateCreated":1425715007000,"dateModified":1425929191000,"fileSize":185973322,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":35260,"name":"commandlinetoolsosx10.10forxcode6.2","remotePath":"/Developer_Tools/Command_Line_Tools_OS_X_10.10_for_Xcode__Xcode_6.2/commandlinetoolsosx10.10forxcode6.2.dmg","sortOrder":null,"state":"ENABLED"}],"id":23620,"name":"Command Line Tools (OS X 10.10) for Xcode - Xcode 6.2","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1056547200000,"dateModified":1079108316000,"enabled":true,"id":247,"name":"Applications","sortOrder":5}],"dateAvailable":null,"dateCreated":1422579460000,"dateDisabled":null,"dateModified":1422580781000,"description":"This SDK contains the files necessary for iTunes Visual Plug-in development for iTunes 10.4 or later, and includes documentation and sample code. Specifically, this SDK contains the files \"iTunesAPI.h\", \"iTunesVisualAPI.h\", and \"iTunesAPI.cpp\" that developers will use to develop their own plug-ins. The sample code is a fully functional Visual Plug-in developed for Mac OS X 10.5.8 and later with Xcode 3.2 and for Windows XP SP3 and later with Microsoft Visual Studio 2013. Both 32-bit and 64-bit versions of iTunes are supported.","files":[{"active":true,"dateCreated":1422579577000,"dateModified":1422580781000,"fileSize":243268,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":34442,"name":"iTunes Visual Plug-ins SDK","remotePath":"/Applications/itunes_visual_plugins_sdk/iTunesVisualPlugInsSDK2_0_1.zip","sortOrder":null,"state":"ENABLED"}],"id":22900,"name":"iTunes Visual Plug-ins SDK","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1422473743000,"dateDisabled":null,"dateModified":1422568829000,"description":"OS X Yosemite 10.10.2 is an update to OS X Yosemite 10.10.","files":[{"active":true,"dateCreated":1422473537000,"dateModified":1422568829000,"fileSize":841144579,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":34421,"name":"OS X Yosemite 10.10.2 build 14C109 Delta Update","remotePath":"/OS_X/OS_X_Yosemite_10.10.2_build_14C109/OSXUpdCombo10.10.2.dmg","sortOrder":null,"state":"ENABLED"},{"active":true,"dateCreated":1422473505000,"dateModified":1422568829000,"fileSize":554331370,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":34420,"name":"OS X Yosemite 10.10.2 build 14C109 Combo Update","remotePath":"/OS_X/OS_X_Yosemite_10.10.2_build_14C109/osxupd10.10.2.dmg","sortOrder":null,"state":"ENABLED"}],"id":22880,"name":"OS X Yosemite 10.10.2 build 14C109","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1056547200000,"dateModified":1079108316000,"enabled":true,"id":247,"name":"Applications","sortOrder":5},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1421366600000,"dateDisabled":null,"dateModified":1421366644000,"description":"This is a pre-release build of Apple Remote Desktop 3.8.","files":[{"active":true,"dateCreated":1421366601000,"dateModified":1421366645000,"fileSize":7639949,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":34327,"name":"Apple Remote Desktop 3.8.0 Client Manual","remotePath":"/Applications/Apple_Remote_Desktop_3.8_version_3.7.9.2_build_380A78_Seed/Apple_Remote_Desktop_3.8.0_Client_Manual.dmg","sortOrder":null,"state":"ENABLED"},{"active":true,"dateCreated":1421366600000,"dateModified":1421366645000,"fileSize":49785,"format":{"active":null,"dateCreated":1075908502000,"dateModified":null,"description":"PDF","extension":".pdf","id":2},"id":34326,"name":"Apple Remote Desktop 3.8 Seed 4 Release Notes","remotePath":"/Applications/Apple_Remote_Desktop_3.8_version_3.7.9.2_build_380A78_Seed/Apple_Remote_Desktop_3.8_Seed_4_Release_Notes.pdf","sortOrder":null,"state":"ENABLED"},{"active":true,"dateCreated":1421366601000,"dateModified":1421366645000,"fileSize":14190677,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":34328,"name":"Apple Remote Desktop 3.8.0","remotePath":"/Applications/Apple_Remote_Desktop_3.8_version_3.7.9.2_build_380A78_Seed/Apple_Remote_Desktop_3.8.0.dmg","sortOrder":null,"state":"ENABLED"}],"id":22783,"name":"Apple Remote Desktop 3.8 version 3.7.9.2 (build 380A78) Seed","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":1278517398000,"dateModified":1278517398000,"enabled":true,"id":325,"name":"iOS","sortOrder":50},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1366217744000,"dateDisabled":null,"dateModified":1421170719000,"description":"Logging profiles used to debug iOS issues. Relevant logs should be included when submitting a bug report.\r\n\r\nFor instructions on how to use these profiles, please visit: https://developer.apple.com/bug-reporting/ios/","files":[{"active":true,"dateCreated":1405430193000,"dateModified":1421170725000,"fileSize":6427,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32847,"name":"Bluetooth Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/bluetoothwirelessproximity.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403687610000,"dateModified":1421170725000,"fileSize":6858,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32780,"name":"Baseband Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/baseband.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1411637606000,"dateModified":1421170725000,"fileSize":3434,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":33111,"name":"Bonjour Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/discoverydlogging.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1411637606000,"dateModified":1421170725000,"fileSize":5668,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":33110,"name":"Bonjour Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/discoverydlogging.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1405430193000,"dateModified":1421170725000,"fileSize":3652,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32848,"name":"Bluetooth Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/bluetoothwirelessproximity.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":5778,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32742,"name":"Multitasking Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/multitasking.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3907,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32743,"name":"VPN Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/vpn.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":5596,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32740,"name":"Mail Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/mail.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":5114,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32741,"name":"Sync Diagnostics Logging Profile (DA)","remotePath":"/ios/bug_reporter_logging_profiles_ios/dataaccess.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3797,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32738,"name":"Mail Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/mail.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":9082,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32739,"name":"iCloud Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/icloudv2.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":6778,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32736,"name":"AirTraffic Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/airtraffic.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":4307,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32737,"name":"Battery Life Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/systemdebugprofileios8.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3752,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32750,"name":"Sync Diagnostics Logging Profile (DA)","remotePath":"/ios/bug_reporter_logging_profiles_ios/dataaccess.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1380098578000,"dateModified":1421170725000,"fileSize":4004,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":31962,"name":"In-App Purchase Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/inapppurchaselogging.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":4495,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32751,"name":"Media Player Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/mediaplayer.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1380098578000,"dateModified":1421170725000,"fileSize":5935,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":31961,"name":"In-App Purchase Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/inapppurchaselogging.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":8934,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32746,"name":"Media Player Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/mediaplayer.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":6143,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32747,"name":"Apple Push Notification Services Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/apns.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3506,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32745,"name":"AirTraffic Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/airtraffic.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":4446,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32759,"name":"iAd Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/iad.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":6651,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32758,"name":"FaceTime Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/facetime.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":6804,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32757,"name":"Messages Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/imessagev2.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":5657,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32756,"name":"VPN Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/vpn.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":7832,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32755,"name":"Battery Life Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/systemdebugprofileios8.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":7956,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32753,"name":"iAd Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/iad.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3270,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32752,"name":"Apple Push Notification Services Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/apns.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403088258000,"dateModified":1421170725000,"fileSize":28783,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":32767,"name":"Wi-Fi Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/wifiv1.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403088258000,"dateModified":1421170725000,"fileSize":4683,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32766,"name":"Wi-Fi Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/wifiv1.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403082174000,"dateModified":1421170725000,"fileSize":3714,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32763,"name":"iCloud Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/icloudv2.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3874,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32762,"name":"Multitasking Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/multitasking.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":3953,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32761,"name":"FaceTime Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/facetime.mobileconfig.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1403078049000,"dateModified":1421170725000,"fileSize":4101,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":32760,"name":"Messages Logging Profile","remotePath":"/ios/bug_reporter_logging_profiles_ios/imessagev2.mobileconfig.zip","sortOrder":1,"state":"ENABLED"}],"id":21496,"name":"Bug Reporter Logging Profiles (iOS)","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1016127960000,"dateModified":1330344254000,"enabled":true,"id":87,"name":"OS X Server","sortOrder":73}],"dateAvailable":null,"dateCreated":1254751762000,"dateDisabled":null,"dateModified":1420540443000,"description":"This document contains a unlimited-client Serial Number for use in development and testing of Mac OS X Server v10.6 (Snow Leopard Server). The Serial Number expires on Dec 31, 2015.","files":[{"active":true,"dateCreated":1420540443000,"dateModified":1420540443000,"fileSize":4741,"format":{"active":null,"dateCreated":1075908512000,"dateModified":null,"description":"RTF","extension":".rtf","id":8},"id":33491,"name":"Mac OS X Server v10.6 (Snow Leopard Server) Developer Serial Number","remotePath":"/Mac_OS_X_Server/mac_os_x_server_v10.6_snow_leopard_server_developer_serial_number/10.6_snow_leopard_server_developer_sn_dec_31_2015.rtf","sortOrder":1,"state":"ENABLED"}],"id":20499,"name":"Mac OS X Server v10.6 (Snow Leopard Server) Developer Serial Number","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1278517398000,"dateModified":1278517398000,"enabled":true,"id":325,"name":"iOS","sortOrder":50}],"dateAvailable":null,"dateCreated":1373271190000,"dateDisabled":null,"dateModified":1420450733000,"description":"The restorationArchiveTool along with the StateRestorationDebugLogging and StateRestorationDeveloperMode profiles allow you to see what is happening in your state restoration archives.","files":[{"active":true,"dateCreated":1420450732000,"dateModified":1420450733000,"fileSize":6837,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":33488,"name":"StateRestoration DeveloperMode","remotePath":"/ios/restorationarchivetool_for_ios_7/staterestoration_developermodev2.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1373271190000,"dateModified":1420450733000,"fileSize":2323,"format":{"active":null,"dateCreated":1075908512000,"dateModified":null,"description":"RTF","extension":".rtf","id":8},"id":30499,"name":"restorationArchiveTool for iOS 7 Readme","remotePath":"/ios/restorationarchivetool_for_ios_7/restorationarchivetool_for_ios_7_readme.rtf","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1420450732000,"dateModified":1420450733000,"fileSize":4238,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":33485,"name":"StateRestoration DebugLogging","remotePath":"/ios/restorationarchivetool_for_ios_7/staterestoration_debugloggingv2.zip","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1373271190000,"dateModified":1420450733000,"fileSize":25576874,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":30502,"name":"restorationArchiveTool","remotePath":"/ios/restorationarchivetool_for_ios_7/restorationarchivetool.dmg","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1420450732000,"dateModified":1420450733000,"fileSize":6416,"format":{"active":null,"dateCreated":1262956008000,"dateModified":null,"description":"Mobile Configuration","extension":".mobileconfig","id":26},"id":33487,"name":"StateRestoration DebugLogging","remotePath":"/ios/restorationarchivetool_for_ios_7/staterestoration_debugloggingv2.mobileconfig","sortOrder":1,"state":"ENABLED"},{"active":true,"dateCreated":1420450732000,"dateModified":1420450733000,"fileSize":4216,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":33486,"name":"StateRestoration DeveloperMode","remotePath":"/ios/restorationarchivetool_for_ios_7/staterestoration_developermodev2.zip","sortOrder":1,"state":"ENABLED"}],"id":21580,"name":"restorationArchiveTool for iOS 7","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":1278517398000,"dateModified":1278517398000,"enabled":true,"id":325,"name":"iOS","sortOrder":50},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1417525719000,"dateDisabled":null,"dateModified":1417527326000,"description":"This is a release version of the complete Xcode developer toolset for Mac, iPhone, iPod touch, and iPad. It includes the iOS 8.1 SDK, OS X 10.10 SDK and OS X 10.9 SDK. Xcode 6.1 requires OS X Yosemite or OS X Mavericks.","files":[{"active":true,"dateCreated":1417525719000,"dateModified":1417527326000,"fileSize":2689510545,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33398,"name":"Xcode 6.1.1","remotePath":"/Developer_Tools/xcode_6.1.1/xcode_6.1.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21985,"name":"Xcode 6.1.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":1278517398000,"dateModified":1278517398000,"enabled":true,"id":325,"name":"iOS","sortOrder":50},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1417524906000,"dateDisabled":null,"dateModified":1417527295000,"description":"This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.","files":[{"active":true,"dateCreated":1417524906000,"dateModified":1417527295000,"fileSize":178197787,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33395,"name":"Command Line Tools (OS X 10.10) for Xcode 6.1.1","remotePath":"/Developer_Tools/command_line_tools_os_x_10.10_for_xcode__xcode_6.1.1/commandlinetoolsosx10.10forxcode6.1.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21983,"name":"Command Line Tools (OS X 10.10) for Xcode - Xcode 6.1.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":1278517398000,"dateModified":1278517398000,"enabled":true,"id":325,"name":"iOS","sortOrder":50},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1417525291000,"dateDisabled":null,"dateModified":1417527295000,"description":"This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.","files":[{"active":true,"dateCreated":1417525291000,"dateModified":1417527295000,"fileSize":107659811,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33396,"name":"Command Line Tools (OS X 10.9) for Xcode 6.1.1","remotePath":"/Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6.1.1/commandlinetoolsosx10.9forxcode6.1.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21984,"name":"Command Line Tools (OS X 10.9) for Xcode - Xcode 6.1.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1416317087000,"dateDisabled":null,"dateModified":1416317087000,"description":"This package contains development & debug versions of the OS X kernel and many I/O Kit families for use with LLDB remote (two-machine) kernel debugging. These files contain full symbolic information, unlike the equivalent files in a normal OS X installation. Also included are LLDB macros useful for kernel debugging and DEVELOPMENT (for every day use) and DEBUG (for much more error checking) kernels built with more assertions and fewer compiler optimizations.","files":[{"active":true,"dateCreated":1416317087000,"dateModified":1416317087000,"fileSize":91972340,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33383,"name":"Kernel Debug Kit 10.10.1 build 14B25","remotePath":"/Developer_Tools/kernel_debug_kit_10.10.1_build_14b25/kernel_debug_kit_10.10.1_14b25.dmg","sortOrder":1,"state":"ENABLED"}],"id":21976,"name":"Kernel Debug Kit 10.10.1 build 14B25","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1415816984000,"dateDisabled":null,"dateModified":1415816984000,"description":"The signature check application (\"check-signature\") checks OS X application bundles and installer packages to determine if they are correctly signed for distribution and will pass the default Gatekeeper assessment.","files":[{"active":true,"dateCreated":1415816984000,"dateModified":1415816984000,"fileSize":15979946,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33336,"name":"Signature Check","remotePath":"/Developer_Tools/signaturecheck/signaturecheck.dmg","sortOrder":1,"state":"ENABLED"}],"id":21968,"name":"SignatureCheck","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1243945080000,"dateDisabled":null,"dateModified":1414772063000,"description":"CrashWrangler is a set of tools for OS X to determine if a crash is an exploitable security issue, and if a crash is a duplicate of another known crash. The exploitability diagnosis is intended to be used when you have a reproducible test case, but the duplicate detection can be run on any crash log.","files":[{"active":true,"dateCreated":1414772063000,"dateModified":1414772063000,"fileSize":1017408,"format":{"active":null,"dateCreated":1079049600000,"dateModified":null,"description":"Zip","extension":".zip","id":5},"id":33290,"name":"CrashWrangler","remotePath":"/Mac_OS_X/crashwrangler/56876_crashwrangler.zip","sortOrder":1,"state":"ENABLED"}],"id":20390,"name":"CrashWrangler","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1413473237000,"dateDisabled":null,"dateModified":1413980886000,"description":"The is the release version of the complete Xcode developer toolset for Mac, iPhone, iPod touch, and iPad. It includes the iOS 8.1 SDK, OS X 10.10 SDK and OS X 10.9 SDK. Xcode 6.1 requires OS X Yosemite or OS X Mavericks.","files":[{"active":true,"dateCreated":1413980886000,"dateModified":1413980886000,"fileSize":2689399690,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33289,"name":"Xcode 6.1","remotePath":"/Developer_Tools/xcode_6.1/56841_xcode_6.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21960,"name":"Xcode 6.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28},{"active":null,"dateCreated":4094323200000,"dateModified":1330344208000,"enabled":true,"id":14,"name":"OS X","sortOrder":70}],"dateAvailable":null,"dateCreated":1413542118000,"dateDisabled":null,"dateModified":1413542119000,"description":"This package contains development & debug versions of the OS X kernel and many I/O Kit families for use with LLDB remote (two-machine) kernel debugging. These files contain full symbolic information, unlike the equivalent files in a normal OS X installation. Also included are LLDB macros useful for kernel debugging and DEVELOPMENT (for every day use) and DEBUG (for much more error checking) kernels built with more assertions and fewer compiler optimizations.","files":[{"active":true,"dateCreated":1413542118000,"dateModified":1413542119000,"fileSize":91972684,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33288,"name":"Kernel Debug Kit 10.10 GM build 14A389","remotePath":"/Developer_Tools/kernel_debug_kit_10.10_gm_build_14a389/kernel_debug_kit_10.10_14a389.dmg","sortOrder":1,"state":"ENABLED"}],"id":21961,"name":"Kernel Debug Kit 10.10 GM build 14A389","prerelease":true,"releasedSeed":false,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1413472780000,"dateDisabled":null,"dateModified":1413472780000,"description":"This package includes additional hardware i/o tools formerly bundled in the Xcode installer. These tools include: Apple Bluetooth Guidelines Validation, Bluetooth Explorer, HomeKit Accessory Simulator, IO Registry Explorer, Network Link Conditioner.prefpane, PacketLogger and Printer Simulator. These graphics tools support running on OS X 10.10 and OS X 10.9.","files":[{"active":true,"dateCreated":1413472780000,"dateModified":1413472780000,"fileSize":9607382,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33286,"name":"Hardware IO Tools for Xcode 6.1","remotePath":"/Developer_Tools/hardware_io_tools_for_xcode__xcode_6.1/hardwareiotools_for_xcode_6.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21959,"name":"Hardware IO Tools for Xcode - Xcode 6.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"},{"active":true,"availableInMemberSite":true,"categories":[{"active":null,"dateCreated":1052825460000,"dateModified":1079108316000,"enabled":true,"id":187,"name":"Developer Tools","sortOrder":28}],"dateAvailable":null,"dateCreated":1413472373000,"dateDisabled":null,"dateModified":1413472373000,"description":"This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.","files":[{"active":true,"dateCreated":1413472373000,"dateModified":1413472373000,"fileSize":107698152,"format":{"active":null,"dateCreated":1066327569000,"dateModified":null,"description":"Disk Image","extension":".dmg","id":12},"id":33285,"name":"Command Line Tools for OSX 10.9 for Xcode 6.1","remotePath":"/Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6.1/command_line_tools_for_osx_10.9_for_xcode_6.1.dmg","sortOrder":1,"state":"ENABLED"}],"id":21958,"name":"Command Line Tools (OS X 10.9) for Xcode - Xcode 6.1","prerelease":false,"releasedSeed":true,"state":"ENABLED"}],"totalCount":398}
data/spec/json_spec.rb ADDED
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+
3
+ module XcodeInstall
4
+ describe JSON do
5
+ it 'can parse Xcode JSON' do
6
+ fixture = Pathname.new('spec/fixtures/xcode.json').read
7
+ xcode = Xcode.new(JSON.parse(fixture))
8
+
9
+ xcode.dateModified.should == 1413472373000
10
+ xcode.name.should == 'Command Line Tools (OS X 10.9) for Xcode - Xcode 6.1'
11
+ xcode.url.should == 'https://developer.apple.com/devcenter/download.action?path=/Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6.1/command_line_tools_for_osx_10.9_for_xcode_6.1.dmg'
12
+ end
13
+
14
+ it 'can parse list of all Xcodes' do
15
+ fixture = Pathname.new('spec/fixtures/yolo.json').read
16
+ installer = Installer.new
17
+
18
+ seedlist = installer.send(:parse_seedlist, JSON.parse(fixture))
19
+ installer.stubs(:xcodes).returns(seedlist)
20
+
21
+ installer.list.should == "6.1\n6.1.1\n6.2"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'pathname'
5
+ ROOT = Pathname.new(File.expand_path('../../', __FILE__))
6
+ $:.unshift((ROOT + 'lib').to_s)
7
+ $:.unshift((ROOT + 'spec').to_s)
8
+
9
+ require 'bundler/setup'
10
+ require 'bacon'
11
+ require 'mocha-on-bacon'
12
+ require 'pretty_bacon'
13
+ require 'xcode/install'
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'xcode/install/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "xcode-install"
8
+ spec.version = XcodeInstall::VERSION
9
+ spec.authors = ["Boris Bügling"]
10
+ spec.email = ["boris@icculus.org"]
11
+ spec.summary = %q{Xcode installation manager.}
12
+ spec.description = %q{Download, install and upgrade Xcodes with ease.}
13
+ spec.homepage = "https://github.com/neonichu/xcode-install"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "claide", "~> 0.8.1"
22
+ spec.add_dependency "fastlane_core"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.7"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xcode-install
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Boris Bügling
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: claide
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: fastlane_core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ description: Download, install and upgrade Xcodes with ease.
70
+ email:
71
+ - boris@icculus.org
72
+ executables:
73
+ - xcode-install
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - bin/xcode-install
83
+ - lib/xcode/install.rb
84
+ - lib/xcode/install/command.rb
85
+ - lib/xcode/install/install.rb
86
+ - lib/xcode/install/list.rb
87
+ - lib/xcode/install/version.rb
88
+ - spec/fixtures/xcode.json
89
+ - spec/fixtures/yolo.json
90
+ - spec/json_spec.rb
91
+ - spec/spec_helper.rb
92
+ - xcode-install.gemspec
93
+ homepage: https://github.com/neonichu/xcode-install
94
+ licenses:
95
+ - MIT
96
+ metadata: {}
97
+ post_install_message:
98
+ rdoc_options: []
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project:
113
+ rubygems_version: 2.0.14
114
+ signing_key:
115
+ specification_version: 4
116
+ summary: Xcode installation manager.
117
+ test_files:
118
+ - spec/fixtures/xcode.json
119
+ - spec/fixtures/yolo.json
120
+ - spec/json_spec.rb
121
+ - spec/spec_helper.rb
122
+ has_rdoc: