The island has been dead since June. The two iOS apps in this repo shared one Xcode build directory: the Manager is a fork of the app, so both build a project, a scheme and a target of the same name out of a project file carrying the same internal ids, and Xcode's build database is keyed on exactly those. Only the source path differs, which is not enough to tell them apart. The Manager has no Live Activity target, so its build treated the app's extension as a leftover file and swept it, while the app's build picked up the Manager's object files. What shipped was an app whose embedded extension came from some older build and no longer matched the code around it, so the island had nothing to render. It only ever happened on the self-hosted runner. The hosted ones handed every job a fresh machine, so the directory was always empty and every build was a clean one. Each product now derives its build directory from its own folder, so no two can share one. Both release workflows also assert the extension is inside the IPA before publishing, because an app missing it installs and runs perfectly and says nothing about what is wrong.
40 lines
1.1 KiB
Makefile
40 lines
1.1 KiB
Makefile
NAME := FTStoreAdmin
|
|
SCHEME := FTStoreAdmin
|
|
|
|
# Keyed on the product directory like the other two, so no future fork of this
|
|
# tree can end up sharing a build database with it. See ios/Makefile.
|
|
TMP := $(TMPDIR)/$(NAME)-$(notdir $(CURDIR))
|
|
|
|
.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"
|