Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c43b913dde | |||
| 256b338ae3 |
@@ -89,6 +89,17 @@ jobs:
|
||||
[ -n "$KEYSTORE_STORE_PASSWORD" ] && echo "KEYSTORE_STORE_PASSWORD: set" || echo "KEYSTORE_STORE_PASSWORD: EMPTY"
|
||||
[ -n "$KEYSTORE_KEY_PASSWORD" ] && echo "KEYSTORE_KEY_PASSWORD: set" || echo "KEYSTORE_KEY_PASSWORD: EMPTY"
|
||||
|
||||
- name: Patch native modules for Android 15 16KB page size
|
||||
run: |
|
||||
WORKLETS="node_modules/react-native-worklets/android/CMakeLists.txt"
|
||||
REANIMATED="node_modules/react-native-reanimated/android/CMakeLists.txt"
|
||||
if [ -f "$WORKLETS" ] && ! grep -q "max-page-size" "$WORKLETS"; then
|
||||
printf '\ntarget_link_options(worklets PRIVATE "-Wl,-z,max-page-size=16384")\n' >> "$WORKLETS"
|
||||
fi
|
||||
if [ -f "$REANIMATED" ] && ! grep -q "max-page-size" "$REANIMATED"; then
|
||||
printf '\ntarget_link_options(reanimated PRIVATE "-Wl,-z,max-page-size=16384")\n' >> "$REANIMATED"
|
||||
fi
|
||||
|
||||
- name: Build signed APK
|
||||
run: ./build-apk.sh
|
||||
|
||||
|
||||
@@ -77,6 +77,32 @@ info "Running expo prebuild (Android)…"
|
||||
cd "$SCRIPT_DIR"
|
||||
npx expo prebuild --platform android --clean --no-install
|
||||
|
||||
# ─── 4.5. Patch native modules — 16KB page size (Android 15) ──────────────
|
||||
info "Patching native modules for 16KB page size support (Android 15)…"
|
||||
|
||||
WORKLETS_CMAKE="$SCRIPT_DIR/node_modules/react-native-worklets/android/CMakeLists.txt"
|
||||
REANIMATED_CMAKE="$SCRIPT_DIR/node_modules/react-native-reanimated/android/CMakeLists.txt"
|
||||
|
||||
if [ -f "$WORKLETS_CMAKE" ] && ! grep -q "max-page-size" "$WORKLETS_CMAKE"; then
|
||||
printf '\ntarget_link_options(worklets PRIVATE "-Wl,-z,max-page-size=16384")\n' >> "$WORKLETS_CMAKE"
|
||||
info "Patched react-native-worklets for 16KB pages"
|
||||
fi
|
||||
|
||||
if [ -f "$REANIMATED_CMAKE" ] && ! grep -q "max-page-size" "$REANIMATED_CMAKE"; then
|
||||
printf '\ntarget_link_options(reanimated PRIVATE "-Wl,-z,max-page-size=16384")\n' >> "$REANIMATED_CMAKE"
|
||||
info "Patched react-native-reanimated for 16KB pages"
|
||||
fi
|
||||
|
||||
# ─── 4.6. Disable New Architecture (Android 15 compat) ────────────────────
|
||||
GRADLE_PROPS_NEWARCH="$SCRIPT_DIR/android/gradle.properties"
|
||||
if [ -f "$GRADLE_PROPS_NEWARCH" ]; then
|
||||
sed -i 's/^newArchEnabled=true/newArchEnabled=false/' "$GRADLE_PROPS_NEWARCH"
|
||||
if ! grep -q "^newArchEnabled=" "$GRADLE_PROPS_NEWARCH"; then
|
||||
echo "newArchEnabled=false" >> "$GRADLE_PROPS_NEWARCH"
|
||||
fi
|
||||
info "New Architecture disabled in gradle.properties"
|
||||
fi
|
||||
|
||||
# ─── 5. Patch build.gradle — inject release signingConfig ──────────────────
|
||||
info "Patching android/app/build.gradle for release signing…"
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// Exclude native build for packages not used in this project.
|
||||
// react-native-gesture-handler detects their absence and falls back to its
|
||||
// noreanimated codepath, so GestureHandlerRootView continues to work.
|
||||
module.exports = {
|
||||
dependencies: {
|
||||
'react-native-reanimated': {
|
||||
platforms: { android: null },
|
||||
},
|
||||
'react-native-worklets': {
|
||||
platforms: { android: null },
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user