Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/ios-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ jobs:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2

- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 16.4

- name: Install npm dependencies (bun)
run: bun install

Expand Down Expand Up @@ -93,6 +98,11 @@ jobs:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2

- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 16.4

Comment on lines +101 to +105
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fix the YAML indentation under the second “Setup Xcode” step.

YAMLlint points out the extra indentation on Line 104. It should match the first job’s indentation so the “with” map parses correctly.

Apply this diff to align indentation:

       - name: Setup Xcode
         uses: maxim-lobanov/setup-xcode@v1
         with:
-            xcode-version: 16.4
+          xcode-version: 16.4
🧰 Tools
🪛 YAMLlint (1.37.1)

[warning] 104-104: wrong indentation: expected 10 but found 12

(indentation)

🤖 Prompt for AI Agents
.github/workflows/ios-build.yml around lines 101 to 105: the second "Setup
Xcode" step has incorrect extra indentation for the "with" mapping (line 104)
which prevents YAML from parsing the map correctly; align the "with" key to the
same indentation level as the first "Setup Xcode" step (remove the extra two
spaces) so that "with:" is directly under the step's "uses:" line, and ensure
its nested "xcode-version: 16.4" stays indented one level under "with".

- name: Install npm dependencies (bun)
run: bun install

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }}
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-

Expand Down
259 changes: 117 additions & 142 deletions bun.lock

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
buildscript {
ext {
buildToolsVersion = "35.0.0"
buildToolsVersion = "36.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
compileSdkVersion = 36
targetSdkVersion = 36
ndkVersion = "27.1.12297006"
kotlinVersion = "2.1.20"
}
Expand Down
5 changes: 5 additions & 0 deletions example/android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,8 @@ newArchEnabled=true
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true

# Use this property to enable edge-to-edge display support.
# This allows your app to draw behind system bars for an immersive UI.
# Note: Only works with ReactActivity and should not be used with custom Activity.
edgeToEdgeEnabled=false
Comment on lines +41 to +44
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Edge-to-edge flag: confirm wiring and Activity type

The docs are clear. Two quick checks:

  • This flag is auto-handled only when the app Activity extends ReactActivity. If you use a custom Activity, you must handle WindowInsets yourself.
  • Ensure your build actually reads this property (RN templates/plugins do, but verify for your setup).

Run the following to confirm:

If (1) doesn’t show ReactActivity, keep edgeToEdgeEnabled=false or add manual insets handling. If (2) only hits gradle.properties, that’s fine if RN 0.81’s Gradle plugin is in use; otherwise it’s a no-op.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Check if MainActivity extends ReactActivity (auto edge-to-edge support):"
fd -t f -a -e java -e kt MainActivity example/android/app 2>/dev/null | while read -r f; do
  echo "--- $f"
  rg -n -C2 'class\s+\w+\s+(:\s*ReactActivity|extends\s+ReactActivity)' "$f" || true
done

echo
echo "2) Check where edgeToEdgeEnabled is referenced (besides gradle.properties):"
rg -n -C2 '\bedgeToEdgeEnabled\b' || true

Length of output: 1233


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Check for react-native-gradle-plugin in buildscript classpath (android/build.gradle):"
rg -n 'react-native-gradle-plugin' -g 'android/**/*' || true

echo
echo "2) Check for application of com.facebook.react plugin in android/app/build.gradle:"
rg -nE 'id\(["'"'"']com\.facebook\.react["'"'"']\)|apply plugin:\s*["'"'"']com\.facebook\.react["'"'"']' -g 'android/app/build.gradle' || true

Length of output: 984


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Look for plugin DSL 'com.facebook.react' in android/app/build.gradle(.kts):"
rg -nE "id\\s*['\"]com\\.facebook\\.react['\"]" -g "android/app/build.gradle*" || true

echo
echo "2) Look for legacy apply plugin syntax in android/app/build.gradle(.kts):"
rg -nE "apply plugin:\\s*['\"]com\\.facebook\\.react['\"]" -g "android/app/build.gradle*" || true

echo
echo "3) Check plugin resolution strategy for react-native-gradle-plugin in settings.gradle(.kts):"
rg -n "com.facebook.react:react-native-gradle-plugin" -g "android/settings.gradle*" || true

Length of output: 1783


Edge-to-edge flag not wired up – Gradle plugin missing

Your edgeToEdgeEnabled=false will be a no-op unless the React Native Gradle plugin is on your classpath and applied in your app project. Based on our checks:

  • android/build.gradle doesn’t include
    com.facebook.react:react-native-gradle-plugin in its buildscript.dependencies.
  • android/app/build.gradle(.kts) doesn’t apply the com.facebook.react plugin.

Please add:

In android/build.gradle

buildscript {
  dependencies {
    // add this line
    classpath("com.facebook.react:react-native-gradle-plugin")
  }
}

In android/app/build.gradle (Groovy)

// at top of file
apply plugin: 'com.facebook.react'

Or in android/app/build.gradle.kts (Kotlin DSL)

plugins {
  // add this line
  id("com.facebook.react")
}

Once you’ve wired up the plugin, the edgeToEdgeEnabled property in gradle.properties will be picked up automatically by ReactActivity. Otherwise you’ll need to handle WindowInsets manually in your custom Activity.

🤖 Prompt for AI Agents
In example/android/gradle.properties around lines 41-44 the
edgeToEdgeEnabled=false flag is a no-op because the React Native Gradle plugin
is not on the classpath or applied; add the
com.facebook.react:react-native-gradle-plugin to android/build.gradle
buildscript dependencies and apply the React Native plugin in the app module
(use apply plugin: 'com.facebook.react' in android/app/build.gradle or
id("com.facebook.react") in android/app/build.gradle.kts) so the
edgeToEdgeEnabled property is picked up automatically by ReactActivity.

2 changes: 1 addition & 1 deletion example/android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading
Loading