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!
In fact, you can easily download any files from the web by using the command line on a Mac. The next time you have a file you want to download, just copy the URL into your clipboard, then open a Terminal window and use the 'curl' command. The file destination URL should be prefixed with http for the web.
Faster install with xip and deleting previous Xcode firstapp to /Applications immediately but delete the existing /Applications/Xcode. app first. I guess this is related to Finder first getting the list of those thousands of files in the Xcode. app before the update.
The latest version of Xcode you can run on Catalina (10.15. 4) is Xcode 12.4 and Command Line Tools 12.4.
For Chrome,
From the cookies.txt download directory, load cookies into wget and start resumable download. For example, to download Xcode_7.dmg, you would run:
wget --load-cookies=cookies.txt -c http://adcdownload.apple.com/Developer_Tools/Xcode_7/Xcode_7.dmg
Maybe this is the easiest way to use curl:
Google Chrome.app
;developer.apple.com
;CMD
+SHIFT
+J
or click top-right Menu
icon -> Tools
-> Developer Tools
;Network
panel;Xcode
download link at apple.com;Network
panel;Copy as cURL
;Now, you got the curl command for this download link with cookies and other http-requeset-fields, just paste to your terminal and add -o xxx.dmg
at the end.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With