Automating Xcode Build and Archive from Command Line

Automating Xcode Build and Archive from Command Line

28 February 2025 Stephan Petzl Leave a comment Xcode

Xcode has long been a powerful tool for iOS and Mac app development, offering features like “Build and Archive” to simplify the process of generating .ipa files for distribution. However, leveraging this feature from the command line can be a bit complex. Fortunately, there are several methods to automate this process, streamlining your workflow, especially for continuous integration setups.

Command Line Automation with xcodebuild

One effective way to automate the build and archive process is by using the xcodebuild command. This tool allows you to compile and package your app directly from the command line. For instance, you can use the following command to archive your application:

xcodebuild -workspace <ProjectName>/<ProjectName>.xcworkspace \
  -scheme <schemeName> clean archive -configuration release \
  -sdk iphoneos -archivePath <ProjectName>.xcarchive
  

After creating the archive, you can export the .ipa file using:

xcodebuild -exportArchive -archivePath <ProjectName>.xcarchive \
  -exportOptionsPlist <ProjectName>/exportOptions.plist \
  -exportPath <ProjectName>.ipa
  

For more details on creating an export options plist, refer to our
advanced testing techniques guide.

Considerations for Different Xcode Versions

It’s important to note that the commands and flags may vary depending on your Xcode version. For example, Xcode 9 introduced changes to how export options are handled, requiring an export options plist file. If you’re using Xcode 7 or later, be sure to adjust your commands accordingly.

Integrating with Continuous Integration Systems

Automating the build process is particularly beneficial when integrated with CI/CD systems like Jenkins or TeamCity. Ensure that the appropriate version of Xcode is installed on your build agents to avoid compatibility issues. You can specify the Xcode version using:

xcode-select -switch /Applications/Xcode\ 9.3.1.app
  

Enhancing Your Workflow with Repeato

While automating the build and archive process is crucial, ensuring your app works flawlessly across all platforms is equally important. This is where Repeato, our no-code test automation tool, comes into play. Repeato allows you to create, run, and maintain automated tests for iOS, Android, and web apps with ease. Its test recorder and AI-powered features enable you to quickly set up comprehensive test scenarios, ensuring quality and reliability across your applications.

Repeato supports command line scripts and JavaScript for automating complex tasks and is fully compatible with version control systems, thanks to its use of text and JSON formats for storing tests. This makes it a practical alternative to tools like Katalon, eliminating common issues such as limited scripting language options and resource-intensive operations.

To learn more about how Repeato can enhance your testing workflow, visit our getting started page.

Like this article? there’s more where that came from!