Latest published app: 1.3 (build 5) — personal SideStore prerelease for iOS 26 or later.
Download page and Add to SideStore · SideStore source · Setup and publishing guide
The download page and source automatically track published IPAs, including personal prereleases. The release above is the current baseline; use the download page for subsequent versions.
A small native SwiftUI app for creating ranked lists, adding items, dragging them into order, and sharing the result as numbered text to Notes or any other app. It also includes a Share Extension for adding an Amazon Music album to an existing list.
- Xcode 26 or newer on a supported Mac
- iOS 26 or newer (physical-device testing targets iOS 26.6.2)
The Mac needs Xcode and SSH-key access, but does not need Codex or an Apple signing account for this build. The script sends the current working files, including uncommitted changes, to a new directory under ~/LeaderboardBuilds and downloads the finished IPA.
.\scripts\build-on-mac.ps1 -BuildNumber 5The default build host is erickolb@barovia.chateaulore.net. HostKeyAlias defaults to barovia.local, the name under which this Mac's SSH key was originally recorded. Increment the build number for each new distributed build. Each run retains its isolated Mac build directory and log for troubleshooting; these can be removed after the build is no longer needed.
Alternatively, run directly on a Mac:
BUILD_NUMBER=5 bash scripts/build-ipa.shThe output is dist/Leaderboard.ipa. It has temporary ad-hoc signatures that preserve the App Group entitlements; it cannot be installed directly. SideStore supplies the device-valid signatures and provisioning profiles. No Apple password or distribution certificate is needed on the build Mac.
On the iPhone, save the IPA in Files, enable LocalDevVPN on Wi-Fi, and import it from SideStore's My Apps screen. Keep the share extension, with its own App ID/profile when offered. Refresh SideStore itself before the first installation. The app and extension resolve their shared App Group from their installed profiles so a signing-team suffix is supported.
Before relying on the build, check list persistence, sharing an Amazon Music album into a list, a SideStore refresh, and updating over an existing installation without deleting it. Device signing, App Group access, and data retention after a real update require physical-device validation.
To run the unit tests on the Mac, keep local simulator signing enabled so SwiftData can access the App Group:
xcodebuild -project Leaderboard.xcodeproj -scheme Leaderboard \
-configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
CODE_SIGN_IDENTITY=- DEVELOPMENT_TEAM= CODE_SIGNING_ALLOWED=YES test- Open
Leaderboard.xcodeprojin Xcode. - Select the
Leaderboardscheme and an iPhone simulator. - Press Run.
The app and Share Extension use an App Group so both can access the same on-device lists.
- Select the
Leaderboardtarget, choose Signing & Capabilities, and select your development team. - Change
me.erickolb.Leaderboardto a bundle identifier you own. - Repeat for
LeaderboardShare, using the same prefix and an extension suffix. - Add the App Groups capability to both targets and create/select one shared group.
- Replace
group.me.erickolb.Leaderboardwith that group inLeaderboard/SharedModelContainer.swiftand both.entitlementsfiles.
The renamed app uses new bundle identifiers and a new App Group. Register the group for both targets when using direct Xcode signing. SideStore manages provisioning for its own installations. Existing lists from a previously named installation are not migrated automatically.
The project uses SwiftData, so lists and their items persist automatically on the device. No account, server, or Apple Notes access is required.
- Create and delete named lists
- Use Edit on the Leaderboard screen to drag lists into a saved order; new lists appear at the top
- Add and edit list items
- Drag to reorder using the standard Edit button and move handles
- Swipe to delete items
- Persistent on-device storage
- Share a numbered plain-text ranking via the iOS share sheet
- Share an Amazon Music album into Leaderboard, edit the detected
Artist — Albumtext, choose a list, and append it - App icon artwork supplied by Magnific on Flaticon, with attribution available from the in-app menu
Amazon Music’s share payload can vary. Leaderboard first tries the shared title and link metadata, then leaves the detected text editable so an album can always be added.