This script will automatically upload Xcode archives to iTunes Connect after a successful build. After doing this about a million times manually, clicking on "Upload to App Store", waiting for teams to load, etc., I decided I'd had enough. Now, I just hit "Archive", sip my margherita, and kick up my feet while the world marvels at my genius. Or I'll take the dog out. Either way, it's pretty awesome.
To make this work, open up the build scheme you use to submit your App Store builds, go to "Archive", and then "Post-actions". Click the "+" and "Add Run Script Action". Then, paste in the contents of post_action.sh, replacing "[email protected]" with your iTunes Connect username.
Lastly, place iTunesExportOptions.plist in your project directory. Depending on your needs (e.g., if you want to distribute enterprise builds) you may need to tweak it. See xcodebuild -help for more details. By default, it assumes you just want to submit the build to the App Store / TestFlight.
gem install pilotYou may want to use it one time interactively on the command line so that your credentials are saved for future pushes.