mirror of
https://github.com/stablyai/orca.git
synced 2026-10-22 08:03:37 +00:00
Two small pre-submission changes for the eventual public iOS App Store
release of Orca Mobile:
1. mobile/app.json — declare an iOS privacy manifest via the
expo.ios.privacyManifests field. On 'npx expo prebuild' Expo merges
our declarations with the SDK packages' bundled manifests and
writes mobile/ios/Orca/PrivacyInfo.xcprivacy. Apple has required
this since May 2024 and rejects builds without it.
Required-reason API categories declared:
- NSPrivacyAccessedAPICategoryUserDefaults (CA92.1) — AsyncStorage
and React Native UserDefaults reads, all inside the app's own
container.
- NSPrivacyAccessedAPICategoryFileTimestamp (C617.1) — RN core's
file-mtime reads in cache-invalidation paths.
- NSPrivacyAccessedAPICategorySystemBootTime (35F9.1) — boost's
monotonic-clock initialization.
NSPrivacyTracking is false. NSPrivacyTrackingDomains and
NSPrivacyCollectedDataTypes are empty — verified against
mobile/package.json which has no analytics, crash reporting, or
tracking SDKs.
2. Removed all 9 [mobile-fit] console.log calls left over from the
presence-lock / scrollback-hydration debugging sessions (8 in
mobile/app/h/[hostId]/session/[worktreeId].tsx, 1 in
src/main/runtime/orca-runtime.ts). They were never gated behind
__DEV__ and would run in shipped App Store builds. Strings only
contained opaque handles and viewport dims, no PII or tokens —
but no reason to keep verbose diagnostics in user-facing builds.
Tests: presence-lock + mobile-subscribe-integration + fit-override-
integration all green (39/39). Lint, tc:node, tc:web clean.
Co-authored-by: Orca <help@stably.ai>
81 lines
2.1 KiB
JSON
81 lines
2.1 KiB
JSON
{
|
|
"expo": {
|
|
"name": "Orca",
|
|
"slug": "orca-mobile",
|
|
"version": "0.0.4",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/icon.png",
|
|
"userInterfaceStyle": "automatic",
|
|
"scheme": "orca",
|
|
"newArchEnabled": true,
|
|
"splash": {
|
|
"image": "./assets/splash-icon.png",
|
|
"resizeMode": "contain",
|
|
"backgroundColor": "#111111"
|
|
},
|
|
"ios": {
|
|
"supportsTablet": true,
|
|
"bundleIdentifier": "com.stably.orca.mobile",
|
|
"buildNumber": "5",
|
|
"infoPlist": {
|
|
"NSLocalNetworkUsageDescription": "Orca connects to the desktop app on your local network.",
|
|
"NSAppTransportSecurity": {
|
|
"NSAllowsLocalNetworking": true
|
|
}
|
|
},
|
|
"privacyManifests": {
|
|
"NSPrivacyTracking": false,
|
|
"NSPrivacyTrackingDomains": [],
|
|
"NSPrivacyCollectedDataTypes": [],
|
|
"NSPrivacyAccessedAPITypes": [
|
|
{
|
|
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryUserDefaults",
|
|
"NSPrivacyAccessedAPITypeReasons": ["CA92.1"]
|
|
},
|
|
{
|
|
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryFileTimestamp",
|
|
"NSPrivacyAccessedAPITypeReasons": ["C617.1"]
|
|
},
|
|
{
|
|
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategorySystemBootTime",
|
|
"NSPrivacyAccessedAPITypeReasons": ["35F9.1"]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"android": {
|
|
"adaptiveIcon": {
|
|
"foregroundImage": "./assets/adaptive-icon.png",
|
|
"backgroundColor": "#111111"
|
|
},
|
|
"usesCleartextTraffic": true,
|
|
"allowBackup": false,
|
|
"package": "com.stably.orca.mobile"
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"image": "./assets/splash-icon.png",
|
|
"backgroundColor": "#111111"
|
|
}
|
|
],
|
|
[
|
|
"expo-camera",
|
|
{
|
|
"cameraPermission": "Allow Orca to use the camera for QR code scanning."
|
|
}
|
|
],
|
|
[
|
|
"expo-build-properties",
|
|
{
|
|
"android": {
|
|
"usesCleartextTraffic": true
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|