Wget veya curl kullanarak [XCode] indiriliyor


6

XCode'u curl veya wget kullanarak indirmenin bir yolu var mı?

EDIT: Aşağıdaki kıvrılma pasajı neden çalışmıyor?

İlk önce Apple'ın sitesine giriş yaptım:

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"

Sonra dosyayı indirmeye çalışıyorum:

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

Ancak bir 403 Yasak hata alıyorum:

* 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

Yanıtlar:


5

Josh çok basit düşünerek düşünüyor. Xcode indirmek için URL gerçekten 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

Ancak dosyayı indirmek için kimliğinizi doğrulamanız gerekir.

Artık hem Wget hem de cURL çerezleri destekliyor, ancak indirme işlemlerinde cURL'yi hiç kullanmadım, bu yüzden ilk önce geliştirici sitesine kimlik doğrulaması yapmak için Wget kullanan birkaç satır var (kimlik doğrulama çerezlerini bir cookies.txt dosyasına depolamak için), sonra başka bir satır. indirmeyi indirin (aynı cookies.txt dosyasını hatırlatarak):

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

SİZİN ADI ve SİZİN ŞİFRETİNİZİ uygun değerlerle değiştirdiğinizden ve istenirse cookies.txt dosyasının yolunu değiştirdiğinizden emin olun. Ayrıca, giriş formunun URL’sinin değişebileceğini unutmayın, bu yüzden işe yaramazsa, giriş formunun eylem niteliğini tarayıcınızdan kontrol ettiğinizden emin olun.

Bunu sunucumda test ettim ve indirme işlemi yaklaşık 40 dakika sürdü. Bir tedavi çalıştı!


Tabii ki, açıkça bahsetmedim, doğrulamaya ihtiyacınız varsa, araç için mevcut seçenekleri kullanabileceğinizi varsaymıştım. +1, onun için bu kodu yapıştırmanız güzel.
Josh K,

Burada, insanlar bazı kodların gösterilmesini bekliyorlar. :)
purefusion

Teşekkürler, ama sorun şu ki, OS X wget ile birlikte gelmiyor ve curl kullanmam gerekiyor. Lütfen güncellenmiş gönderime bakın. Çözümünüzü kabul ettim ancak bir kıvrılma çözümü çok takdir edilecektir.
Behrang,

5

Tek komut, stok Mac OS X 10.6.6 komut satırı araçları kullanarak ( bash, curlve sqlite3).

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

Uyarılar:

  1. Bu , Google Chrome'un sqlite çerez veritabanının bir sorgusunu kullanır .

  2. Tanımlama bilgilerini ayarlamak için önce Apple'ın Xcode geliştirici sayfası aracılığıyla tarayıcıyla giriş yapmanız gerekir.

Notlar:

  1. <() bash 'in Process Substitution operatörüdür ve anında geçerli olan geçici çerezler dosyasını kaldırır.

  2. Benim gibi, durmuş bir tarayıcı indirme işlemine devam ediyorsanız ve dosya varsa, şu argümanları kullanın:

    -C - -o unconfirmed\ 21043.crdownload
    

Artık Xcode'ınız olduğuna göre, Homebrew'i yükleyebilir ve sonra wget. ;)


1
Hehe. Tabii ki, o zaman zaten XCode'u vardı ve indirmek için artık wget'e ihtiyaç duymayacaktı (belki gelecekteki güncellemeler için kaydet). Wget'in OSX ile gelmediğinin farkında değildim. Bunu nasıl özledim? Sanırım uzak linux sunucumdan başka bir yerde kullanmaya çalışmadım.
purefusion

0

Tabii ki, sadece Apple'dan aldığınız indirme bağlantısını kopyalayın.


2
Kimlik doğrulaması gerekiyor.
Behrang

@ bytecode: Bu nedenle --post-datave için --cookieseçenekleri wget. Bunları bile yapabilirsiniz curl.
Josh K
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.