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.
38 lines
997 B
Makefile
38 lines
997 B
Makefile
NAME := FTStoreAdmin
|
|
SCHEME := FTStoreAdmin
|
|
|
|
TMP := $(TMPDIR)/$(NAME)
|
|
|
|
.PHONY: all clean iphoneos
|
|
|
|
all: iphoneos
|
|
|
|
clean:
|
|
rm -rf $(TMP)
|
|
rm -rf packages
|
|
rm -rf _build
|
|
|
|
# No `deps` step, unlike the app and the Manager: FTStore Admin never signs or
|
|
# installs anything, so it needs neither the localhost TLS pack nor a Payload
|
|
# full of signing material — just the app.
|
|
iphoneos:
|
|
rm -rf _build
|
|
|
|
xcodebuild \
|
|
-project FTStoreAdmin.xcodeproj \
|
|
-scheme $(SCHEME) \
|
|
-configuration Release \
|
|
-destination "generic/platform=iOS" \
|
|
-derivedDataPath $(TMP)/iphoneos \
|
|
-skipPackagePluginValidation \
|
|
CODE_SIGNING_ALLOWED=NO \
|
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO
|
|
|
|
mkdir -p _build/Payload
|
|
cp -R _build/Applications/*.app _build/Payload/FTStoreAdmin.app
|
|
chmod -R 0755 _build/Payload/FTStoreAdmin.app
|
|
codesign --force --sign - --timestamp=none _build/Payload/FTStoreAdmin.app
|
|
|
|
mkdir -p packages
|
|
ditto -c -k --sequesterRsrc --keepParent _build/Payload "packages/FTStore-Admin.ipa"
|