Articles for app builders and test teams
Step-by-step guides on test installs, store icons and screenshots, builds and releases, with the numbers that matter.

Push notifications for React Native: APNs .p8 key vs certificates and FCM HTTP v1
Key or certificate for APNs: 0 renewals against 8 a year for 8 apps, plus Apple's newer Sandbox-only and Production-only keys that break the "one .p8" advice. FCM legacy's moving shutdown dates, what the endpoints answered in our test on 2 November 2026, which token each route needs, and an error table.

App Review in numbers: Apple and Google rejection counts and the top reasons for 2025
Apple rejected 2,093,244 of 9,100,620 submissions in 2025 (23.0%), and 64.7% of those failed section 2, Performance. Four years of Apple's transparency figures by guideline section, Google Play's blocked-app and permission numbers, what one rejection costs in days, and a pre-submission checklist ordered by how often each item gets apps rejected.

Universal links and Android App Links: apple-app-site-association and assetlinks.json that verify
Both files, the hosting rules and how each OS caches them, adb and swcutil checks, and the failures we see most. Plus what Apple's CDN and Google's verifier did with the files of 28 real app domains on 30 October 2026: octet-stream accepted, root paths still read, and one redirect Apple followed and Google refused.

Phased rollouts: App Store's 7-day phased release vs Google Play staged rollout percentages
The App Store offers an update to 1%, 2%, 5%, 10%, 20%, 50% and 100% of auto-update users over 7 days, with 30 days of pause in total and no rollback. Google Play holds any fraction you set until you change it, and can now halt even a 100% release. The two side by side, a Play schedule that matches Apple's, the crash lines (1.09% crash, 0.47% ANR) and why a release 12 times worse stays under them until 15% rollout, plus the API calls and fastlane lanes.

Privacy manifests for React Native apps: PrivacyInfo.xcprivacy, required reason APIs and ITMS-91053
Which React Native and Expo modules use which required-reason APIs (our scan of 53 iOS packages on Expo SDK 58 and React Native 0.88.1), the exact ITMS-91053 and ITMS-91061 email texts, how pod install merges the manifests, and a PrivacyInfo.xcprivacy that covers them.

Moving an Expo app's builds from EAS to aipps.dev: eas.json, keys, store uploads and the cost
A step-by-step move from EAS Build to aipps.dev that keeps your bundle ID, upload key and store listings: what aipps init does with eas.json, taking your keystore along, App Store Connect and Play keys, --submit, CI, and a cost table where the same builds cost 21 to 97 times less.

Expo EAS Build vs aipps.dev in 2026: the same builds, priced and timed
60 iOS and 60 Android builds a month cost $154 on EAS Starter and $3 on aipps.dev; 300 of each cost $874 against $9. Both price lists, three teams worked out, 24 measured aipps.dev builds, and where EAS is still the better pick.

Xcode version matrix for CI: which Xcode builds which iOS, and how long runners keep old ones
Since 28 April 2026 App Store uploads need Xcode 26, yet a macos-15 GitHub runner still defaults to Xcode 16.4, and macos-14 has no accepted Xcode at all before it goes away on 2 November. Which Xcode needs which macOS and builds for which iOS, what every GitHub macOS image carries, how long GitHub, Xcode Cloud, Codemagic, Bitrise and CircleCI keep old versions, and a pin that fails the build when it drifts.

Over-the-air updates in 2026: EAS Update, CodePush successors and the store rules
What Apple's 3.3.1(B) and Play's interpreter exception let you ship over the air, and what 4 updates a month cost at 10,000, 100,000 and 500,000 users: EAS Update $54, $449 and $2,074, Revopush $25.77, $107.75 and $378.75, self-hosted Hot Updater a few dollars in fees. Plus our own bundle test (a one-line change is an 8.2% patch) and how each option rolls back.

Shrinking a React Native app: APK and IPA size before and after Hermes, R8 and ABI splits
We built one Expo SDK 58 app five ways and measured what phones download. Android from Play: 16.10 MB with JSC, 14.16 MB with Hermes, 8.51 MB with R8 and resource shrinking; a tester APK 63.72 MB universal, 19.99 MB arm64-only. iPhone: 8.09 MB, or 5.90 MB with React Native compiled from source. The table, what each step costs and the snippets.

Android developer verification for apps outside Play: what sideloading teams must do
Since 30 September 2026 Android blocks unregistered apps from seven app stores in Brazil, Indonesia, Singapore and Thailand, and in 2027 the check goes worldwide. What is enforced today, full vs limited (20-device) accounts, how to register each package and key, which builds to keep on adb, the 24-hour advanced flow for testers and a CI check.

Code signing for React Native teams: certificates, profiles and upload keys without tears
Every iOS and Android signing item a React Native team holds, how many you can have, how long each lasts and what breaks when it expires or is revoked; how to make an upload key that lasts until 2054, reset a lost one, fix the fingerprint bug behind Google Sign-In errors, and keep signing working on CI.

Ad hoc vs TestFlight vs Play internal testing: which channel for which tester
Nine ways to get a test build onto a phone, compared on tester limits, what the tester needs, review, build lifetime, speed and cost: from an APK link in minutes to TestFlight external at about 16 hours for a new version. Plus a table of which tester gets which channel and a worked plan for a 50-person beta.

TestFlight in practice: tester limits, 90-day build expiry and beta review
TestFlight allows 100 internal testers with no review and 10,000 external testers behind Beta App Review, and every build stops working 90 days after upload. The full set of limits, how long beta review takes (about 16 hours on average in October 2026), the Missing Compliance fix and a fastlane lane that automates the rest.

Every App Store and Google Play icon and screenshot size in 2026
App Store screenshot sizes by device class (6.9" 1320x2868, 6.5" 1284x2778, iPad 13" 2064x2752, iPhone Duo from 2027), Google Play's ranges and its 2:1 rule that refuses a raw iPhone screenshot, every icon size for iOS and Android, and a worked example turning one icon and one screenshot into 31 files.

Install a test build from a QR code: Android APK and iOS ad hoc, step by step
Any signed APK installs from a link once the tester allows their browser to install apps; an iPhone installs only if its UDID is in the build's ad hoc profile, and Apple allows 100 iPhones a membership year. The whole path for both platforms, the checks to run on the file first, and what each install error on the phone means.

App store deadlines for 2026 and 2027: one calendar for release teams
Xcode 26 since 28 April, iOS 13 minimum since 9 September, target API 36 since 31 August with extensions ending 1 November, developer verification in four countries since 30 September, and 16 KB page sizes from 1 February 2027. Every Apple and Google requirement with its date, what it means for a build pipeline, the two dates you can predict for 2027, and a checklist.

Android 16 KB page sizes: check your APK before Play blocks updates on 1 February 2027
From 1 February 2027 Google Play won't release app updates whose native libraries don't support 16 KB pages. We checked five real APKs: an old VLC with 4 KB libraries passed zipalign's 16 KB check anyway. The two checks you need, a short script that does both, and the React Native, Expo and Flutter versions that fix it.

Google Play's 12 testers for 14 days rule: how many to recruit and a day-by-day plan to production
New personal Play accounts can't publish until 12 testers have stayed opted in to a closed test for 14 days in a row, and the review after that takes up to a week. With exactly 12 testers and a 10% dropout the odds of making it first time are 28%; with 16 they're 98%. The rule as Google states it, the application questions, and a plan from first upload to production.

What iOS and Android builds cost on CI in 2026: GitHub Actions, EAS, Codemagic, Xcode Cloud and a Mac mini
60 iOS and 60 Android builds a month cost $3.60 on Xcode Cloud plus GitHub Linux, $59.40 on GitHub Actions, $112.50 on Codemagic and $154 on EAS Starter. At 300 a month the spread is $67.99 to $874. The rates, both worked scenarios, and the payback on a $599 Mac mini.