Xcode "Build and Archive" from command line
I found how to automate the build and archive process from the comand line, I just wrote a blog article explaining how you can achieve that.
The command you have to use is xcrun
:
/usr/bin/xcrun -sdk iphoneos PackageApplication \-v "${RELEASE_BUILDDIR}/${APPLICATION_NAME}.app" \-o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" \--sign "${DEVELOPER_NAME}" \--embed "${PROVISONING_PROFILE}"
You will find all the details in the article. If you have any questions dont hesitate to ask.
With Xcode 4.2 you can use the -scheme flag to do this:
xcodebuild -scheme <SchemeName> archive
After this command the Archive will show up in the Xcode Organizer.
Updating my answer with Xcode 9 and Swift
Archive
xcodebuild -workspace <ProjectName>/<ProjectName>.xcworkspace \ -scheme <schemeName> clean archive -configuration release \ -sdk iphoneos -archivePath <ProjectName>.xcarchive
IPA Export (please note the export options plist)
xcodebuild -exportArchive -archivePath <ProjectName>.xcarchive \ -exportOptionsPlist <ProjectName>/exportOptions.plist \ -exportPath <ProjectName>.ipa
For those who don't know about exportOptions.plist,https://blog.bitrise.io/post/new-export-options-plist-in-xcode-9
Those who were using this for building project in CI/CD tools like teamcity/jenkins, please make sure you are using the right Xcode installed in the build agent for both archive and export.
You can use either of below 2 options for this.
- Use the full path to xcodebuild,
/Applications/Xcode 9.3.1.app/Contents/Developer/usr/bin/xcodebuild
- Use xcode-select,
xcode-select -switch /Applications/Xcode 9.3.1.app
Below is my old answer
Here is command line script for creating archive and IPA example.I have an iPhone xcode project , which is located in Desktop/MyiOSApp folder.
Execute following commands one by one:
cd /Users/username/Desktop/MyiOSApp/xcodebuild -scheme MyiOSApp archive \ -archivePath /Users/username/Desktop/MyiOSApp.xcarchivexcodebuild -exportArchive -exportFormat ipa \ -archivePath "/Users/username/Desktop/MyiOSApp.xcarchive" \ -exportPath "/Users/username/Desktop/MyiOSApp.ipa" \ -exportProvisioningProfile "MyCompany Distribution Profile"
This is tested with Xcode 5 and working fine for me.