The web/ dashboard used to ride along inside FTStore Manager as a second tab, hidden behind a developer-mode switch. Hiding was the wrong tool: the Manager is what a normal user installs to get FTStore onto a phone, and the worker controls were one gesture away from it. FTStore Admin (admin/, app.ftstore.admin) is now its own app: - admin/FTStoreAdmin/Console/* is the moved console, unchanged in behaviour — ManagerConfig became AdminConfig, ManagerHomeView.brand became AdminTheme.brand. - It links no Swift package at all, only system frameworks. The three helpers it borrowed from NimbleKit and the engine (User-Agent, share sheet, image resize, AnyCodable) are inlined in Support/, so the IPA stays what it claims to be: a login form and nothing else. - Its Keychain service is app.ftstore.admin and its User-Agent is FTStore-Admin/…, deliberately outside web/'s APP_UA gate — the console only calls session-authenticated routes. - The optional biometric gate now re-arms whenever the app leaves the screen, not just at launch. - Sideloaded on purpose: admin-release.yml cuts a draft release from an admin-v* tag and admin-build.yml compiles every push, but there is no AltStore source and no self-update channel. The Manager loses the console, the developer-mode gate and therefore the tab bar — FTStoreManagerApp shows ManagerHomeView directly. Its camera and Face ID usage strings go with it, and ManagerLegacyConsole.purge() wipes the session an updated install would otherwise still be holding.
21 lines
585 B
Plaintext
21 lines
585 B
Plaintext
//
|
|
// FTStoreAdmin.xcconfig
|
|
// FTStore Admin
|
|
//
|
|
// Build-time identity and the one address the console talks to.
|
|
//
|
|
|
|
FTSTORE_PROJECT_VERSION=1.0
|
|
FTSTORE_PRODUCT_BUNDLE_IDENTIFIER=app.ftstore.admin
|
|
FTSTORE_DISAMBIGUATOR=${DEVELOPMENT_TEAM}
|
|
|
|
// FTStore Admin server address. Injected into Info.plist as FTStoreAdminBaseURL.
|
|
// Leave blank to use the built-in default (https://ftstore.app). This is the only
|
|
// baked-in value in the app — no token, no API key, ever.
|
|
FTSTORE_ADMIN_BASE_URL =
|
|
|
|
AD_HOC_CODE_SIGNING_ALLOWED = YES
|
|
|
|
DEPLOYMENT_LOCATION = YES
|
|
DSTROOT = $(SRCROOT)/_build/
|