Skip to content

release: v2.0.12 — signing secrets out of .env, Facebook login removed - #118

Merged
roncodes merged 7 commits into
mainfrom
release/v2.0.12
Oct 19, 2026
Merged

roncodes merged 7 commits into
mainfrom
release/v2.0.12

Conversation

@roncodes

Copy link
Copy Markdown
Member

Navigator v2.0.12

A quick release so client apps can pull two changes from upstream: Android signing secrets no longer belong in .env, and Facebook login is gone. Supersedes #117, which stays open until this merges.

1. Release signing secrets out of .env (from #117)

android/app/build.gradle read the four ANDROID_NAVIGATOR_APP_UPLOAD_* values only from react-native-config's .env map. react-native-config compiles every .env key into BuildConfig and string resources (and into GeneratedDotEnv.m on iOS). Release builds don't minify and proguard-rules.pro keeps BuildConfig, so the upload keystore passwords shipped readable in the APK/AAB. Each value now resolves from .env (kept for compatibility), then android/local.properties, then environment variables. The GradleException message and README explain the setup. Anyone who had these keys in .env should rotate the upload key password.

2. Facebook login removed

  • react-native-fbsdk-next removed; yarn.lock and ios/Podfile.lock updated (FBSDK pods gone).
  • iOS: FBSDKCoreKit import, ApplicationDelegate.shared launch call and open-URL handler removed from AppDelegate.swift. The Google Sign-In handler and RCTLinkingManager fallback are unchanged. Info.plist loses FacebookAppID, FacebookClientToken, FacebookDisplayName, the fb$(FACEBOOK_APP_ID) URL scheme, and the fbapi, fbauth2 and fb-messenger-share-api query schemes.
  • Android: com.facebook.sdk.* meta-data and the com.facebook.katana package query removed from AndroidManifest.xml. res/values/strings.xml held only the two self-referencing facebook_* strings, so it's deleted. The app uses react-native-share only through Share.open, which doesn't need the katana query.
  • JS: facebook provider, SDK init and facebookLoginIsSupported removed from use-oauth.ts. Also removed: the facebook branch of loginSupported (apple/google stay), FacebookLoginManager.logOut() from AuthContext, and FacebookLoginButton, which was imported but never rendered.
  • CI: the FACEBOOK_APP_ID / FACEBOOK_CLIENT_TOKEN lines in react-native-ci.yml are removed. Clients can drop those keys.
  • React Native's own com.facebook.react*, facebook:: JNI namespaces, soloader and hermes are untouched.

3. Version

package.json → 2.0.12 (the only file release.yml checks), iOS MARKETING_VERSION → 2.0.12, and RELEASE.md now starts with v2.0.12. CURRENT_PROJECT_VERSION stays 11. The Android version comes from .env at build time.

Verification

  • yarn test: 5 suites, 10 tests pass.
  • Production Android JS bundle builds and contains no fbsdk.
  • plutil -lint Info.plist and xmllint AndroidManifest.xml pass.
  • pod install (CocoaPods 1.14.3 via bundler) succeeds.
  • Not verified: tsc and eslint fail on main too (tsconfig lacks jsx, and @react-native-community eslint config is missing), so they can't judge this change. No native Android or iOS build was run locally; CI's debug builds are the check.

Committed Android JS bundle

android/app/src/main/assets/index.android.bundle is regenerated (react-native bundle --platform android --dev false, same format as the v2.0.11 one), so it no longer carries the fbsdk JS. It contains no local paths.

…nv, not .env

react-native-config compiles every .env key into BuildConfig and string
resources, so upload-keystore passwords placed in .env shipped readable in
the release APK/AAB. Resolve the ANDROID_NAVIGATOR_APP_UPLOAD_* values from
project.env, then android/local.properties, then System.getenv, and
document local.properties / CI env vars as the supported setup.
…nv, not .env

react-native-config compiles every .env key into BuildConfig and string
resources, so upload-keystore passwords placed in .env shipped readable in
the release APK/AAB. Resolve the ANDROID_NAVIGATOR_APP_UPLOAD_* values from
project.env, then android/local.properties, then System.getenv, and
document local.properties / CI env vars as the supported setup.
Drop the Meta login SDK entirely: the JS provider, logout call and login
button, the iOS AppDelegate/Info.plist SDK setup and fb URL/query schemes,
the Android com.facebook.sdk meta-data, katana query and facebook_* string
resources, and the FACEBOOK_* keys written to .env in CI. React Native's
own com.facebook.react packages are untouched.
…t-of-env

fix(android): keep release signing secrets out of .env (they ship in the binary)
setup-android@v3 requests the legacy 'tools' package by default, which
cmdline-tools 16.0 no longer ships, so sdkmanager exited 1 before the
build started. Request platform-tools only; the build's own SDK
components are installed in the next step.
@roncodes
roncodes merged commit 0da77ce into main Oct 19, 2026
9 checks passed
@roncodes
roncodes deleted the release/v2.0.12 branch October 19, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant