← back to Nineoh Guide
chore: lint (tsc clean), light refactor (import order, label padding, script formatting), v0.3.0 (session close — Fan Club podcasts + real AdMob)
51de6ce51d56be33634ea245ef881df67d46e232 · 2026-08-06 09:13:46 -0700 · Steve Abrams
Files touched
M apps/mobile/App.tsxM package.jsonM scripts/check-approval.mjs
Diff
commit 51de6ce51d56be33634ea245ef881df67d46e232
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Aug 6 09:13:46 2026 -0700
chore: lint (tsc clean), light refactor (import order, label padding, script formatting), v0.3.0 (session close — Fan Club podcasts + real AdMob)
---
apps/mobile/App.tsx | 6 +++---
package.json | 2 +-
scripts/check-approval.mjs | 3 ++-
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/apps/mobile/App.tsx b/apps/mobile/App.tsx
index 1172f40..0b8f6fe 100644
--- a/apps/mobile/App.tsx
+++ b/apps/mobile/App.tsx
@@ -22,14 +22,14 @@ import mobileAds, {
TestIds,
} from "react-native-google-mobile-ads";
import { requestTrackingPermissionsAsync } from "expo-tracking-transparency";
+import { APP, EpisodeSchema, type Episode } from "@nineoh/core";
+import { logScreen } from "./analytics";
// Real AdMob banner unit in production; Google's test unit in dev (so we never
// serve/click live ads while developing, per AdMob policy).
const BANNER_UNIT_ID = __DEV__
? TestIds.BANNER
: "ca-app-pub-5278231299883833/1889257150";
-import { APP, EpisodeSchema, type Episode } from "@nineoh/core";
-import { logScreen } from "./analytics";
// API base resolution (in precedence order):
// 1. EXPO_PUBLIC_API_BASE — set as an EAS Secret for TestFlight/prod builds
@@ -850,7 +850,7 @@ export default function App() {
style={[styles.podBtn, styles.podBtnApple]}
hitSlop={6}
>
- <Text style={styles.podBtnAppleText}> Apple Podcasts ↗</Text>
+ <Text style={styles.podBtnAppleText}>Apple Podcasts ↗</Text>
</Pressable>
<Pressable
onPress={() => Linking.openURL(p.spotify)}
diff --git a/package.json b/package.json
index 8adbbda..ec28e4b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "nineoh-guide",
"private": true,
- "version": "0.2.0",
+ "version": "0.3.0",
"description": "Unofficial 90210 Guide — Turborepo monorepo (Next.js web + Expo mobile + shared core)",
"packageManager": "pnpm@11.15.1",
"scripts": {
diff --git a/scripts/check-approval.mjs b/scripts/check-approval.mjs
index 60616cc..e0793ef 100644
--- a/scripts/check-approval.mjs
+++ b/scripts/check-approval.mjs
@@ -3,7 +3,8 @@
// When it reaches READY_FOR_SALE / PENDING_DEVELOPER_RELEASE / APPROVED, it's
// time to link the AdMob app (id 3798456380) to the App Store listing.
// Usage: node scripts/check-approval.mjs (run from anywhere; keypath is absolute)
-import { readFileSync } from 'node:fs'; import { createSign } from 'node:crypto';
+import { readFileSync } from 'node:fs';
+import { createSign } from 'node:crypto';
const KEY = '/Users/macstudio3/Projects/tesla/apps/mobile/credentials/AuthKey_72Y2TZT54R.p8';
const key = readFileSync(KEY, 'utf8');
const b64u = (o) => Buffer.from(typeof o === 'string' ? o : JSON.stringify(o)).toString('base64url');
← 5d90004 Add read-only App Store approval-check script (for AdMob-lin
·
back to Nineoh Guide
·
Add live ASC blocker board for iOS submission batch (TK-1035 6120fe7 →