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
1 change: 1 addition & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
<!-- Permissions -->

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" tools:node="remove" />
<!-- Android 13+ runtime push permission; OneSignal's requestPermission() drives the prompt -->
Expand Down
16 changes: 16 additions & 0 deletions docs/NATIVE-RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@ How to run the app locally, build/sign/ship it, and get it through Play review.
| **PostgreSQL** | 16 (14 works locally) | backend |
| Xcode / CocoaPods | 26+ / latest | iOS only (§11) |

### OS / WebView floors

The web bundle is built with Tailwind v4: ~90% of the stylesheet lives in
`@layer` (WebKit ≥ 15.4), gradients interpolate `in oklab` (≥ 16.2) and the
`@property` fallback sits inside a layer (≥ 16.4). Anything older renders an
unstyled app, so the shells pin these floors:

| Platform | Floor | Where |
|----------|-------|-------|
| iOS | **16.4** | `IPHONEOS_DEPLOYMENT_TARGET` in `ios/App/App.xcodeproj/project.pbxproj` (+ `.iOS(.v16)` in `ios/App/CapApp-SPM/Package.swift`) |
| Android | `minSdkVersion 24`, **Chrome WebView ≥ 111** | the OS is not the floor, the updatable System WebView is; the app shows an "update your WebView" screen when the boot-time CSS canary fails |

Raising the iOS floor changes the App Store's minimum OS on the next submission;
the JS canary (`isWebViewCssSupported`) is the runtime guard for devices below
either floor that still hold an older binary.

Clone with submodules — the build needs `src/content`:
```bash
git clone --recurse-submodules https://github.com/peanutprotocol/peanut-ui
Expand Down
8 changes: 4 additions & 4 deletions ios/App/App.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
Expand Down Expand Up @@ -293,7 +293,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
Expand All @@ -311,7 +311,7 @@
CURRENT_PROJECT_VERSION = 1; CODE_SIGN_ENTITLEMENTS = App/App.entitlements;

INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand All @@ -337,7 +337,7 @@
CURRENT_PROJECT_VERSION = 1; CODE_SIGN_ENTITLEMENTS = App/AppRelease.entitlements;

INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand Down
3 changes: 3 additions & 0 deletions ios/App/App/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
SentrySDK.start { options in
options.dsn = dsn
options.environment = "native"
// The JS layer already reports failed requests with sanitised URLs;
// the native default would duplicate every 5xx under a second release.
options.enableCaptureFailedRequests = false
}
// Reconciliation hook (mirror of MainActivity.maybeSentryTestCrash).
// Only a developer can pass launch arguments to an iOS app: an Xcode
Expand Down
2 changes: 1 addition & 1 deletion ios/App/CapApp-SPM/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import PackageDescription
// DO NOT MODIFY THIS FILE - managed by Capacitor CLI commands
let package = Package(
name: "CapApp-SPM",
platforms: [.iOS(.v15)],
platforms: [.iOS(.v16)],
products: [
.library(
name: "CapApp-SPM",
Expand Down
Loading