mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
7572c610a6
The shells still carried Capacitor's placeholder icon and splash, the blue X on a grid. They now show the white TREK mark on a dark, slightly glassy tile: a soft light from the top left and a sheen over the upper half, in the app's launch colour #09090b. Android 12+ draws its launch screen on the same colour instead of light grey. scripts/generate-app-icons.mjs renders the sources into assets/ from public/icons/icon-white.svg, and `npm run icons:app` turns them into every size both platforms ask for through @capacitor/assets. The Android foreground mark is sized for the adaptive icon's round mask. The home screen label is TREK: the old "TREK - Plan your trips!" was cut off under the icon, and the longer title belongs to the store listings.
135 lines
5.6 KiB
Plaintext
135 lines
5.6 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>CAPACITOR_DEBUG</key>
|
|
<string>$(CAPACITOR_DEBUG)</string>
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>en</string>
|
|
<key>CFBundleDisplayName</key>
|
|
<string>TREK</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>$(EXECUTABLE_NAME)</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleName</key>
|
|
<string>$(PRODUCT_NAME)</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>$(MARKETING_VERSION)</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
|
<key>LSRequiresIPhoneOS</key>
|
|
<true/>
|
|
<!-- TREK is self-hosted: the user types in their own server address, so the
|
|
app cannot know its scheme, hostname or certificate authority at build
|
|
time. NSAllowsArbitraryLoads is the only ATS setting that covers all of
|
|
https://trek.example.com, http://192.168.1.10:3001 and a Tailscale host
|
|
on 100.64.0.0/10 (which is NOT RFC1918, so NSAllowsLocalNetworking alone
|
|
would not reach it).
|
|
|
|
Deliberately the ONLY key in this dict. From iOS 10 on, the presence of
|
|
NSAllowsLocalNetworking, NSAllowsArbitraryLoadsInWebContent or
|
|
NSAllowsArbitraryLoadsForMedia makes the system IGNORE
|
|
NSAllowsArbitraryLoads — adding one of them "to be safe" would silently
|
|
re-block every cleartext server outside the local subnet.
|
|
|
|
App Review will ask for a justification; the answer is that the app is a
|
|
client for a server the user hosts and names themselves. https remains
|
|
the documented recommendation for anything past a LAN. -->
|
|
<key>NSAppTransportSecurity</key>
|
|
<dict>
|
|
<key>NSAllowsArbitraryLoads</key>
|
|
<true/>
|
|
</dict>
|
|
<!-- Local Network Privacy is a separate gate from ATS: since iOS 14 any
|
|
connection to a local-network address prompts the user, and no ATS key
|
|
waives it. Without this string the prompt has no explanation and iOS
|
|
logs "Local network prohibited" instead of a useful error. -->
|
|
<key>NSLocalNetworkUsageDescription</key>
|
|
<string>TREK connects to the TREK server you choose, which is often running on your home or office network.</string>
|
|
<!-- Permission usage descriptions. iOS does not merely deny a missing one:
|
|
it terminates the app the first time the API is touched, so every key
|
|
below is load-bearing even where the feature is optional.
|
|
|
|
The WebView's file picker offers "Take Photo" and "Photo Library". -->
|
|
<key>NSCameraUsageDescription</key>
|
|
<string>TREK uses the camera so you can photograph a place, a journey entry or a booking document and add it to your trip.</string>
|
|
<key>NSPhotoLibraryUsageDescription</key>
|
|
<string>TREK needs access to your photos so you can add them to trips, places and journey entries.</string>
|
|
<!-- "Save Image" in the share sheet that exports and downloads open in. -->
|
|
<key>NSPhotoLibraryAddUsageDescription</key>
|
|
<string>TREK saves photos and exports you download from your trips back to your photo library.</string>
|
|
<!-- navigator.geolocation in the WebView ("locate me" on the map). -->
|
|
<key>NSLocationWhenInUseUsageDescription</key>
|
|
<string>TREK uses your location to centre the map on you and to find places near you.</string>
|
|
<!-- Deep links (@capacitor/app appUrlOpen), matching the intent-filter in
|
|
AndroidManifest.xml and @string/custom_url_scheme there. This is the
|
|
return path for SSO and passkey sign-in, which runs in an
|
|
ASWebAuthenticationSession and redirects back to com.liketrek.trek://…
|
|
|
|
Not a Universal Link: those are verified against one specific domain via
|
|
apple-app-site-association, and a self-hosted app has no single domain to
|
|
verify against. SceneDelegate already forwards openURLContexts to
|
|
Capacitor, so no Swift change is needed. -->
|
|
<key>CFBundleURLTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleURLName</key>
|
|
<string>com.liketrek.trek</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Editor</string>
|
|
<key>CFBundleURLSchemes</key>
|
|
<array>
|
|
<string>com.liketrek.trek</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
<key>UIApplicationSceneManifest</key>
|
|
<dict>
|
|
<key>UIApplicationSupportsMultipleScenes</key>
|
|
<false/>
|
|
<key>UISceneConfigurations</key>
|
|
<dict>
|
|
<key>UIWindowSceneSessionRoleApplication</key>
|
|
<array>
|
|
<dict>
|
|
<key>UISceneConfigurationName</key>
|
|
<string>Default Configuration</string>
|
|
<key>UISceneDelegateClassName</key>
|
|
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
|
|
<key>UISceneStoryboardFile</key>
|
|
<string>Main</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</dict>
|
|
<key>UILaunchStoryboardName</key>
|
|
<string>LaunchScreen</string>
|
|
<key>UIMainStoryboardFile</key>
|
|
<string>Main</string>
|
|
<key>UIRequiredDeviceCapabilities</key>
|
|
<array>
|
|
<string>arm64</string>
|
|
</array>
|
|
<key>UISupportedInterfaceOrientations</key>
|
|
<array>
|
|
<string>UIInterfaceOrientationPortrait</string>
|
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
</array>
|
|
<key>UISupportedInterfaceOrientations~ipad</key>
|
|
<array>
|
|
<string>UIInterfaceOrientationPortrait</string>
|
|
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
</array>
|
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
|
<true/>
|
|
</dict>
|
|
</plist>
|