Я пытаюсь загрузить Xcode с сайта Apple Developer, используя только wget или curl. Я думаю, что я успешно храню файл cookie, который мне нужен для загрузки файла .dmg, но я не совсем уверен.
Когда я запускаю эту команду:
wget \
--post-data="theAccountName=USERNAME&theAccountPW=PASSWORD" \
--cookies=on \
--keep-session-cookies \
--save-cookies=cookies.txt \
-O - \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg > /dev/null
Создается файл с именем cookies.txt
и содержит что-то вроде этого:
developer.apple.com FALSE / FALSE 0 XXXXXXXXXXXXXXXX XXXXXXXXXXXX
developer.apple.com FALSE / FALSE 0 developer.sessionToken
Я не совсем уверен, но я думаю, что должно быть больше, чем это (в частности, буквенно-цифровая строка после sessionToken
).
Когда я пытаюсь сделать то же самое с curl, используя это:
curl \
-d "theAccountName=USERNAME&theAccountPW=PASSWORD" \
-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://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
Я получаю файл с именем xcode-cookie
, который содержит ту же информацию, что и файл cookies.txt
wget, за исключением того, что строки меняются на противоположные.
Затем я попытался загрузить файл .dmg.
Использование wget:
wget \
--cookies=on \
--load-cookies=cookies.txt \
--keep-session-cookies \
http://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
Это дает мне файл с именем login?appIdKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&path=%2F%2Fios%2Fdownload.action?path=%2Fios%2Fios_sdk_4.1__final%2Fxcode_3.2.4_and_ios_sdk_4.1.dmg
, который представляет собой только HTML-страницу, содержащую форму входа для сайта разработчика.
Использование curl:
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" \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
Что печатает в основном то же самое, что и wget (минус HTML).
Я хочу сказать, что это связано с тем, что sessionToken не находится в cookie, но, как я уже говорил, я не уверен. Я даже попытался экспортировать файлы cookie из своего браузера и следуя инструкциям в сообщении в блоге, которое я связал ниже, и нескольких других сайтах, которые я нашел при поиске помощи.
Я должен делать что-то неправильно, если Apple не изменит что-то с 10 октября потому что этот парень, похоже, что-то делает правильно.
Спасибо заранее!