If we look at the iOS release process from a few years ago, most teams had a relatively fixed approach:
- Package on Mac + Xcode
- Upload via Xcode or Transporter
- Submit on App Store Connect
However, in the past two years, tools have started to change significantly—it’s not that a particular tool has become better, but rather that the entire process can be split apart. This article explains a more common modular release approach for 2026.
Breaking the Release Process into Four Modules
When a project enters the release phase, the process can be divided into four stages:
| Module | Output |
|---|---|
| Signing Preparation | p12 + mobileprovision |
| Building Phase | ipa |
| Uploading Phase | Build Record |
| Review Phase | Release Version |
Each stage can be completed independently and can use different tools. This modular approach is what many teams are currently implementing.
Signing No Longer Depends on Local Environment
A significant change is that certificates and provisioning profiles are no longer tied to a specific Mac.
In earlier workflows:
- Certificates were in Keychain
- Provisioning profiles were local
- Switching computers required reconfiguration
Now, a more common practice is:
- Generate
.p12uniformly - Generate
.mobileprovisionuniformly - Store them in a team-shared environment
For example, using AppUploader (Happy Release):
- Log in to the Apple Developer account
- Go to certificate management
- Create a distribution certificate
- Download
.p12

Then:
- Go to provisioning profile management
- Create an App Store type provisioning profile
- Bind Bundle ID and certificate
- Download
.mobileprovision

These two files become standard inputs, and subsequent processes no longer depend on the device.
Building Shifts from Local Operations to Replaceable Execution
The method of building IPA is becoming more flexible.
Options include:
- Local Archive in Xcode
- Automated building with Fastlane
- Cloud packaging services
For example, with Fastlane:
lane :release do
build_app(
scheme: "AppScheme",
export_method: "app-store"
)
end
The essence of building is:
Input: Code + Certificate + Provisioning Profile
Output: IPA
Where the build is executed is no longer a critical issue.
Upload Tools Begin to “De-platform”
The change in the IPA upload phase is even more pronounced.
Previously relied on:
- Xcode Organizer
- macOS Transporter
Now, options include:
- Command-line tools
- Cross-platform upload tools
- CI automated uploads
For example, on Windows or Linux, you can directly use:
appuploader_cli -f app.ipa -u appleid@example.com -p xxxx-xxxx-xxxx-xxxx -c 2
Or use a graphical interface tool to complete the upload.
In AppUploader (Happy Release):
- Open the submission upload page
- Enter Apple ID
- Set up an app-specific password
- Select IPA
- Switch upload channel
- Execute upload
After uploading, the build will enter App Store Connect.

Review Phase Has Little Change, but Inputs Are More Standardized
The review process itself hasn’t changed much, but the input information has become stricter:
- Privacy policy
- Permission descriptions
- Test accounts
This information needs to be filled in on App Store Connect.

The process remains:
My Apps → Select App → Select Build → Submit for Review
An Example from Actual Development
A team’s actual workflow:
- Frontend developed using uni-app
- CI runs on Linux
- Build on Mac Runner
- Upload on Windows
The process is as follows:
- AppUploader generates certificates and provisioning profiles
- CI downloads certificates
- Mac Runner builds IPA
- Upload to Linux
- Use command-line upload
- Submit for review on App Store Connect
In this workflow, no step is forced to be device-bound.
The change in iOS releases for 2026 is not about tool upgrades, but rather process decoupling.