I am trying to download Xcode from the Apple Developer site using just wget or curl. I think I am successfully storing the cookie I need to download the .dmg file, but I am not completely sure.
When I run this command:
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
A file called cookies.txt
is created and contains something like this:
developer.apple.com FALSE / FALSE 0 XXXXXXXXXXXXXXXX XXXXXXXXXXXX
developer.apple.com FALSE / FALSE 0 developer.sessionToken
I'm not completely certain, but I think there should be more to it than that (specifically, an alphanumeric string after sessionToken
).
When I try to do the same thing with curl using this:
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
I get a file called xcode-cookie
that contains the same information as the cookies.txt
file wget gives me, except that the lines are reversed.
I then tried to download the .dmg file.
Using 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
This gives me a file called 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
, which is just an HTML page containing the login form for the developer site.
Using 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
Which prints basically the same thing as wget (minus the HTML).
I want to say it has to do with the sessionToken not being in the cookie, but like I said before I am not sure. I even tried exporting the cookies from my browser and following the instructions in the blog post I linked below and several other sites I found while searching for help.
I must be doing something wrong, unless Apple has changed something since Oct. 10 because this guy seems to be to do something right.
Thanks in advance!