<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov" -->

---
title: The Capacitor 9 Beta is here | daily.dev
description: Capacitor 9 Beta is now available for testing, bringing the headline changes previewed in the Road to Capacitor 9 post. Cordova compatibility becomes optional...
canonical: https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Capacitor 9 Beta is here | daily.dev
og:description: Capacitor 9 Beta is now available for testing, bringing the headline changes previewed in the Road to Capacitor 9 post. Cordova compatibility becomes optional...
og:url: https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov
og:image: https://api.daily.dev/og/posts/HIPgp8VOV.png
og:image:alt: The Capacitor 9 Beta is here
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Capacitor 9 Beta is here

**[Ionic Blog](https://daily.dev/sources/ionic)** · 4 min read · 0 upvotes · 0 comments

## Summary

Capacitor 9 Beta is now available for testing, bringing the headline changes previewed in the Road to Capacitor 9 post. Cordova compatibility becomes optional and only loads when a Cordova plugin is used, iOS moves to a source-first Swift package, and there's core support for foldables and multi-window scenarios. R8 shrinking is now on by default in release builds, ahead of Google Play's February 2027 rule requiring 25% optimization for apps over 10MB. npm 12's install-script opt-in behavior is now flagged by 'cap doctor', and iOS now boots through SwiftUI instead of AppDelegate. Some pieces, including the R8 keep rules and the npm 12 check, are backported to Capacitor 8.6.0. General availability is targeted for the end of November.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ionic.io/blog/the-capacitor-9-beta-is-here>

## Questions this post answers

### Why do my Capacitor Android plugins fail silently in release builds but work fine in debug?

Starting with Capacitor 9 Beta, R8 (Google's code shrinker) is enabled by default in release builds for new projects, and 'cap migrate' enables it on existing ones. Plugins not updated for R8 can fail silently in release. Plugin authors using Room, Gson, Retrofit or similar must add their own 'consumer-rules.pro' wired through 'consumerProguardFiles', not 'proguardFiles'.

_Developers debugging R8-related release build failures can track Capacitor's migration guidance on daily.dev._

### Why did my npm package's install script stop running after upgrading Node?

Node 24, the minimum supported version for Capacitor 9, ships with npm 12, which disables lifecycle scripts like preinstall, install, and postinstall by default unless the user opts in. Capacitor's 'cap doctor' and 'cap migrate' commands have been updated to flag plugins whose install scripts npm 12 will skip.

_Developers hit by npm 12's lifecycle script changes can follow fixes like this one on daily.dev._

### What Android app size and optimization requirement is Google Play enforcing in 2027?

Starting February 2027, Google Play requires at least 25% optimization, obfuscation, and shrinking for apps larger than 10MB, with non-compliant apps losing visibility in Play search. Capacitor 9 responds by enabling R8 shrinking by default in release builds, with the same keep rules backported to Capacitor 8.6.0.

_Teams planning Play Store compliance deadlines can follow tooling updates like this on daily.dev._

## Similar posts on daily.dev

- [Capacitor 9 Starts Here](https://daily.dev/posts/capacitor-9-starts-here-r2bwcupee) · Ionic Blog · 27 upvotes · 0 comments
- [The Road to Capacitor 9](https://daily.dev/posts/the-road-to-capacitor-9-ifpsukbpe) · Ionic Blog · 20 upvotes · 1 comments
- [Capacitor 8.5 Released](https://daily.dev/posts/capacitor-8-5-released-hnkjkf1i9) · Ionic Blog · 14 upvotes · 1 comments
- [Announcing Capacitor 8](https://daily.dev/posts/announcing-capacitor-8-6jr9es0ba) · Ionic Blog · 34 upvotes · 0 comments
- [Codemagic Patch now supports Ionic Capacitor: OTA updates for your web layer](https://daily.dev/posts/codemagic-patch-now-supports-ionic-capacitor-ota-updates-for-your-web-layer-nhmx7vhjn) · codemagic · 0 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#ios](https://daily.dev/tags/ios), [#npm](https://daily.dev/tags/npm), [#swiftui](https://daily.dev/tags/swiftui)

[View this post on daily.dev](https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Capacitor 9 Beta is here","url":"https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov"},"datePublished":"2026-10-28T21:03:54.038Z","dateModified":"2026-10-28T21:36:10.951Z","description":"Capacitor 9 Beta is now available for testing, bringing the headline changes previewed in the Road to Capacitor 9 post. Cordova compatibility becomes optional...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9c9eccd2e094ef35f2622f1fde9ea979?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9c9eccd2e094ef35f2622f1fde9ea979?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Ionic Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Ionic Blog","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/296f30dacd74494d83a863631ac87394","url":"https://daily.dev/sources/ionic"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"android,ios,npm,swiftui","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Ionic Blog","item":"https://daily.dev/sources/ionic"},{"@type":"ListItem","position":3,"name":"The Capacitor 9 Beta is here"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-capacitor-9-beta-is-here-hipgp8vov#faq","mainEntity":[{"@type":"Question","name":"Why do my Capacitor Android plugins fail silently in release builds but work fine in debug?","acceptedAnswer":{"@type":"Answer","text":"Starting with Capacitor 9 Beta, R8 (Google's code shrinker) is enabled by default in release builds for new projects, and 'cap migrate' enables it on existing ones. Plugins not updated for R8 can fail silently in release. Plugin authors using Room, Gson, Retrofit or similar must add their own 'consumer-rules.pro' wired through 'consumerProguardFiles', not 'proguardFiles'. Developers debugging R8-related release build failures can track Capacitor's migration guidance on daily.dev."}},{"@type":"Question","name":"Why did my npm package's install script stop running after upgrading Node?","acceptedAnswer":{"@type":"Answer","text":"Node 24, the minimum supported version for Capacitor 9, ships with npm 12, which disables lifecycle scripts like preinstall, install, and postinstall by default unless the user opts in. Capacitor's 'cap doctor' and 'cap migrate' commands have been updated to flag plugins whose install scripts npm 12 will skip. Developers hit by npm 12's lifecycle script changes can follow fixes like this one on daily.dev."}},{"@type":"Question","name":"What Android app size and optimization requirement is Google Play enforcing in 2027?","acceptedAnswer":{"@type":"Answer","text":"Starting February 2027, Google Play requires at least 25% optimization, obfuscation, and shrinking for apps larger than 10MB, with non-compliant apps losing visibility in Play search. Capacitor 9 responds by enabling R8 shrinking by default in release builds, with the same keep rules backported to Capacitor 8.6.0. Teams planning Play Store compliance deadlines can follow tooling updates like this on daily.dev."}}]}
```

