After app development is complete, publishing to the App Store is the most critical step. The publishing process involves multiple stages such as certificate creation, provisioning profile configuration, IPA packaging, and uploading. Different stages can be completed with different tools, and it is not necessary to rely entirely on Xcode.

Xcode: Full-Process Publishing

Xcode is Apple’s official IDE, integrating the complete workflow from coding to publishing. After archiving with Archive, you submit through Organizer → Distribute App → Upload, select the signing method, and upload directly to App Store Connect.

The advantage of publishing with Xcode is the strongest control—compilation parameters, signing configuration, Bitcode processing, and symbol file export are all managed in the same interface. The downside is that it must run on a Mac, the installation package takes up a lot of space, and startup and indexing times are long. If you only open the entire Xcode just to upload an IPA, the cost-benefit ratio is low.

Transporter: Standalone Upload Tool

Transporter is an independent upload application provided by Apple, specifically designed to upload IPAs to App Store Connect. You do not need to open Xcode; you can simply drag the IPA file into it and upload. The interface is simple, with no complex validation steps.

Transporter requires macOS and cannot be used on Windows or Linux. After a successful upload, the build will take 10–30 minutes to appear in App Store Connect. You must enable two-factor authentication on your Apple ID and generate an App-Specific Password in advance.

Appuploader: Cross-Platform Publishing Assistant

Appuploader runs on Windows, Mac, and Linux, covering several key stages of the publishing process.

For certificate management, you can create development and distribution certificates within the tool and generate P12 files. There is no need to open Keychain Access or Xcode. For provisioning profile management, you can create Development and App Store type profiles, binding the Bundle ID and test device UDIDs. Once a device is connected, the UDID is read automatically without manual input.

For IPA upload, simply select the file, channel, and App-Specific Password on the submission interface. If a channel fails to upload, you can switch to another one. If the upload fails due to network issues, you can retry using a mobile hotspot. The command-line version is suitable for integration into CI/CD workflows.

Appuploader also offers batch screenshot upload, allowing screenshots for multiple language versions to be uploaded at once. For projects that require frequent updates, you do not need to upload screenshots one by one on the App Store Connect web interface every time.

Choose Based on Scenario

If your team has a Mac environment, the officially recommended workflow is Xcode Archive packaging plus Transporter upload. If you do not have a Mac environment or need cross-platform operation, Appuploader covers certificate creation, provisioning profile management, IPA upload, and screenshot upload. For CI/CD pipelines, the Appuploader command-line version is recommended for automated uploads.

The preparatory work before publishing is the same regardless of the tool used: ensure the IPA is signed with a distribution certificate rather than a development certificate, the Bundle ID exactly matches the app created in App Store Connect, the version number is unique (increment the build number), and the privacy policy link is configured in App Store Connect. After submission, pay attention to the review feedback sent by Apple to the developer’s email, as well as the processing status of the build in App Store Connect. If the build does not appear for a long time, check the error email in your inbox or the ITMS-90189 error caused by uploading with the same version number.