使用 wget 或 curl 下载 XCode

Beh*_*ang 6 wget xcode curl

有没有办法使用 curl 或 wget 下载 XCode?

编辑:为什么以下 curl 代码段不起作用?

首先,我登录到 Apple 的网站:

curl -d "theAccountName=USERNAME&theAccountPW=PASS" -c xcode-cookie 
-A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" 
https://daw.apple.com//cgi-bin/WebObjects/DSAuthWeb.woa/104/wo/W1df7WQblBsLekQzvS1tJ0/0.5.3.1.1.2.1.1.3.1.1"
Run Code Online (Sandbox Code Playgroud)

然后,我尝试下载文件:

curl -b xcode-cookie -c xcode-cookie -O -v -A 
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
http://adcdownload.apple.com/ios/ios_sdk_4.0.2__final/xcode_3.2.3_and_ios_sdk_4.0.2.dmg
Run Code Online (Sandbox Code Playgroud)

但是我收到一个 403 Forbidden 错误:

* About to connect() to adcdownload.apple.com port 80 (#0)
*   Trying 60.254.148.16...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0connected
* Connected to adcdownload.apple.com (60.254.148.16) port 80 (#0)
> GET /ios/ios_sdk_4.0.2__final/xcode_3.2.3_and_ios_sdk_4.0.2.dmg HTTP/1.1
> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
> Host: adcdownload.apple.com
> Accept: */*
> Cookie: myacinfo=foo; DefaultAppleID=bar; ds01=baz
> 
< HTTP/1.1 403 Forbidden
< Server: Apache-Coyote/1.1
< X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5
< no-cache: Cache-Control
< no-store: Cache-Control
< Content-Type: text/html;charset=ISO-8859-1
< Date: Mon, 30 Aug 2010 05:30:42 GMT
< Transfer-Encoding:  chunked
< Connection: keep-alive
< Connection: Transfer-Encoding
< Cache-Control: no-store
< 
{ [data not shown]
100  1932    0  1932    0     0   7531      0 --:--:-- --:--:-- --:--:--  8548* Connection #0 to host adcdownload.apple.com left intact

* Closing connection #0
Run Code Online (Sandbox Code Playgroud)

pur*_*ion 5

乔希想得太简单了。下载Xcode的网址确实是http://developer.apple.com/iphone/download.action?path=%2Fios%2Fios_sdk_4.0.2__final%2Fxcode_3.2.3_and_ios_sdk_4.0.2.dmg

但是,您必须经过身份验证才能下载文件。

现在 Wget 和 cURL 都支持 cookie,但我从来没有使用 cURL 进行下载,所以这里有几行使用 Wget 首先对开发人员站点进行身份验证(将身份验证 cookie 存储在 cookies.txt 文件中),然后另一行实际获取下载(回忆相同的 cookies.txt 文件):

wget --post-data="theAccountName=YOURUSERNAME&theAccountPW=YOURPASSWORD" --cookies=on --load-cookies=cookies.txt --keep-session-cookies --save-cookies=cookies.txt https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/67/wo/99OWdOWyhWA2pMdrPemdSw/0.5.3.1.1.2.1.1.3.1.1
wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --save-cookies=cookies.txt http://developer.apple.com/iphone/download.action?path=%2Fios%2Fios_sdk_4.0.2__final%2Fxcode_3.2.3_and_ios_sdk_4.0.2.dmg
Run Code Online (Sandbox Code Playgroud)

确保将 YOURUSERNAME 和 YOURPASSWORD 更改为适当的值,并根据需要更改 cookies.txt 文件的路径。另外,请注意登录表单的 URL 可能会更改,因此如果这不起作用,请务必从浏览器检查登录表单的 action 属性。

我在我的服务器上测试了这个,下载花了大约 40 分钟。它很有用!


vdm*_*vdm 5

单个命令,使用常用 Mac OS X 10.6.6 命令行工具(bashcurlsqlite3)。

curl -b <(sqlite3 -separator $'\t' ~/Library/Application\ Support/Google/Chrome/Default/Cookies "select host_key, 'TRUE','/', 'FALSE', expires_utc, name, value from cookies where host_key like '%apple.com%'") http://adcdownload.apple.com/ios/ios_sdk_4.2__final/xcode_3.2.5_and_ios_sdk_4.2_final.dmg
Run Code Online (Sandbox Code Playgroud)

注意事项:

  1. 这将使用查询谷歌Chrome浏览器的源码饼干数据库。

  2. 您需要首先使用浏览器通过 Apple 的 Xcode 开发人员页面登录,以便设置 cookie。

笔记:

  1. <() 是 bash 的 Process Substitution 运算符,它消除了即时陈旧的临时 cookie 文件。

  2. 如果像我一样,您正在恢复停滞的浏览器下载,并且您拥有该文件,请使用以下参数:

    -C - -o unconfirmed\ 21043.crdownload
    
    Run Code Online (Sandbox Code Playgroud)

现在你有了 Xcode,你可以安装 Homebrew,然后安装 wget。;)