Configure a bot to create distribution-signed iOS App (IPA) files

You can configure a bot to create distribution-signed iOS App (IPA) files that you later, distribute outside the App Store or upload to App Store Connect using another upload tool.

If you haven’t already done so, export an iOS, tvOS, or watchOS app or click the Export button after you upload an app to App Store Connect. This will create the required ExportOptions.plist file that you’ll need to configure the bot. The file is one of the archive export files that appears in Finder.

Follow these steps to configure an existing bot. (The same settings appear on the sheets when you create a bot.)

  1. In the Report navigator, Control-click the bot and choose Edit Bot from the pop-up menu.

  2. In the sheet that appears, select Configuration, then select the Archive checkbox.

  3. Under Archive, choose Use Custom Export Options Plist from the Export pop-up menu.

  4. Under the pop-up menu, click Choose Export Options Plist (or the folder icon).

  5. In the sheet that appears, select the ExportOptions.plist file you previously exported from an archive, then click Choose.

  6. Click the eye icon next to the ExportOptions.plist filename to verify that it is correct.

  7. On the Signing pane, allow Xcode Server to manage signing for you.

    You must select the “Automatically register devices in my developer account” checkbox if the devices aren’t registered yet. Then click Add Server to Team so that the server can register new devices.

  8. Click Certificates & Profiles, then click Add to Server next to the distribution certificate.

    If you use manual signing, also share the custom profiles with the server in this pane.

  9. Click Done.

After you configure the bot, connect all the devices to the Mac running Xcode Server and run an integration to test the configuration. Then view the bot and integration results.

Alternatively, you can create an iOS App file using the xcodebuild command:

xcodebuild -exportArchive -archivePath [your.xcarchive] -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates -allowProvisioningDeviceRegistration