Systems | Development | Analytics | API | Testing

What App Stores allow with OTA updates: Apple and Google policy explained

A critical bug is live in production. Your fix is ready. And now your team is staring at a potential multi-day wait for app store review. This is exactly what over-the-air (OTA) updates are designed to solve. Tools like Expo EAS Update, CodePush, Shorebird, Revopush or Stallion make it easy to push updates directly to users’ devices. But OTA updates don't bypass app store rules, they operate within boundaries that both Apple and Google have defined.

Cross-workflow integration testing on iOS: a recipe for macOS + Docker pipelines

Running real integration tests for iOS projects is one of those problems that sounds straightforward until you're actually in it. The core tension: your backend runs on Linux, your iOS app can only build on Apple hardware. The two worlds don't meet naturally. Most teams end up mocking server responses in their mobile tests to isolate components without relying on backend services.

Why your AI Agent needs both a key and a map

You asked Claude to generate a bitrise.yml. It came back clean: right steps, reasonable workflow names, valid YAML. You almost merged it. Then you noticed it’s using before_run instead of step bundles. There are no version locks on steps. The triggers are structured in a format Bitrise deprecated months ago. It’s a valid config, but it would never pass code review. The quality of an agent's interaction with your CI/CD comes down to two things: what it can do and what it knows.

GitHub Actions macOS runner alternative: M4 Pro with 54GB RAM and same-day Xcode

Bitrise Build Hub is a vertically integrated mobile CI/CD infrastructure layer that drops into GitHub Actions with one line of YAML. GitHub Actions runs your CI, but its Mac runners are holding your mobile builds back. Limited M1/M2 hardware, stale Xcode, no cache co-location, no macOS uptime SLA. The infrastructure wasn't built for mobile. Build Hub was. Build Hub upgrades the runner layer underneath.

Ship React Native updates in minutes: CodePush on Bitrise is now live

React Native teams ship fast. App store reviews do not. Today, CodePush officially launched on Bitrise, giving React Native teams the ability to deliver JavaScript and asset updates directly to users in minutes, without waiting for App Store or Play Store approval.

What millions of mobile builds reveal about high-performing teams: A conversation with Arpad Kun

‍Mobile development has a reputation for being slow, complex, and harder than it needs to be. Platform quirks, rigid review gates, and ever-growing app complexity can make it feel like the toolchain is working against you. But the data tells a different story. We analyzed tens of millions of builds across thousands of mobile teams on Bitrise, spanning three years of real-world data from 2022 to 2025. The results challenge some common assumptions, and confirm others.

With AI coding, the delivery pipeline is the new bottleneck - and we already solve it

For fifty years, the hardest part of software was writing it. That's no longer true. In 2025, AI coding assistants went mainstream — 90% of developers now use them (DORA 2025). Then came background agents: autonomous systems that take a ticket, write the code, run the tests, and open a pull request while the engineer sleeps. Stripe merges over 1,000 AI-written PRs per week. Ramp reached 30% AI-authored PRs within two months. Spotify has merged 1,500+ agent-generated PRs into production.

Q&A: How Bitrise is helping Tapcart power the next wave of world-class ecommerce

For small enterprises with big ambitions, Tapcart opens up a world of possibilities. Founded in 2017, the Los Angeles–based SaaS company is on a mission to democratize access to world-class mobile commerce tools for every brand. A big part of making that happen is its partnership with Bitrise. Few people have seen the evolution of that partnership more closely than Sahand Ansari.

See exactly why your Gradle Build Cache missed: new Task Inputs visibility feature

Every Android developer has been there: yesterday's build finished in 2 minutes, but today's identical build takes 8 minutes. You check your code - nothing major changed. You check your environment - everything looks the same. So why the massive difference? Without visibility into what actually changed between builds, debugging performance issues becomes guesswork. You're left wondering: Which tasks didn't come from cache? What inputs changed? Why did this specific compilation task take so long?