Urgent.News

650+ sources. One page. See who else covered it.

Editions

Tech

Why your TestFlight build doesn't show up after a successful upload

You push, the build runs, the archive and export steps succeed, the upload step succeeds, the workflow finishes green. You open App Store Connect to check on it and TestFlight shows... the previous build. Not a failed build. Not a processing build. Nothing new at all. This one is genuinely confusing the first time it happens, because there's no error anywhere — everything you can see reports…

After a successful upload of your TestFlight build, it may not appear in App Store Connect. This can be confusing because there is no error message indicating a failed upload. The issue arises when the upload tool, such as xcrun altool or the newer transporter flows, reports the transfer as successful even though App Store Connect discards the result due to a duplicate build.

To prevent this problem, ensure that your build number changes with each upload, even if the marketing version remains the same. In GitHub Actions, use the `github.run_number` as the dynamic build number in the `CURRENT_PROJECT_VERSION` setting to maintain a unique build number for every upload.

If this issue persists, verify that the dynamic build number is being correctly substituted in the archive step. A common mistake is setting the environment variable in the wrong step or shell context, causing the $BUILD_NUMBER variable to expand to an empty value.

To confirm if this is your issue, check the Build Activity or processing history in App Store Connect instead of just the current builds list. Sometimes, the duplicate-version upload may not even appear there. Additionally, ensure that processing has not exceeded a few minutes; if it's only been a short time, it may still be processing.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

React useLatest Hook: Read Fresh State in Async Callbacks (2026)

Here's an autosave button that lies to the user: function Editor ({ docId }: { docId : string }) { const [ text , setText ] = useState ( "" ); const [ status , setStatus ] = useState < " idle " | "…

  • React useLatest hook reads fresh state in async callbacks
  • Prevents stale closures causing outdated data issues
  • Works with setTimeout, setInterval, event listeners

How to build and ship an iOS app without a Mac

If you want to put an app on the App Store, Apple requires you to build and sign it with Xcode, and Xcode only runs on macOS.

  • Purchase a Mac mini for $799 as a one-time hardware investment
  • Rent cloud Macs from services like MacStadium for $20/month to $100+/month
  • Use GitHub Actions for free macOS builds in public repositories

GitHub Actions' free macOS minutes, explained

GitHub Actions is GitHub's built-in CI/CD system — it spins up a fresh virtual machine, runs whatever commands you tell it to, and tears the machine down when it's done.

  • GitHub Actions offers free macOS minutes for CI/CD.
  • Private repositories get 200 free macOS-runner-minutes/month on free plan.
  • Apple Developer Program fee is separate from GitHub billing.

The actual cost of shipping an iOS app in 2026

"How much does it cost to put an app on the App Store" gets answered inconsistently online because most answers either only count Apple's fee, or only count hardware, or quietly assume you're renting…

  • Mandatory $99/year fee for Apple Developer Program membership
  • Building and signing requires Mac, cloud Mac, or GitHub Actions
  • Public repository with GitHub Actions is most cost-effective at $99/year

More from Sunday 16 August →