Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .github/workflows/fork-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,14 @@ jobs:
echo "First release (no prior release tag) — skipping the auto PR breakdown."
fi
{
printf '\n---\n\n**Downloads** — NOOP Staging identity, installs **beside** the official app (separate data):\n'
printf -- '- **Android** — `NOOP-android-v%s.apk` (`com.noop.whoop.staging`)\n' "$NEW"
printf -- '- **macOS** — `NOOP-macos-v%s.zip` (unzip, then right-click → Open)\n' "$NEW"
printf -- '- **iOS** — `NOOP-ios-unsigned-v%s.ipa` (AltStore / Sideloadly)\n' "$NEW"
# The beside-install claim is per-platform, not global: 749c94118 gave the iOS family the
# PRODUCTION bundle id, so an iOS sideload REPLACES an installed official app and uses its
# data. Android (.staging via -PstagingRelease) and macOS (.noop.staging, kept per #39) do
# install beside. Saying "separate data" for all three told iOS users the opposite.
printf '\n---\n\n**Downloads:**\n'
printf -- '- **Android** — `NOOP-android-v%s.apk` (`com.noop.whoop.staging`) — installs **beside** the official app, with its own data.\n' "$NEW"
printf -- '- **macOS** — `NOOP-macos-v%s.zip` (unzip, then right-click → Open) — installs **beside** the official app; on first launch it copies any data the official app already has, leaving the original untouched.\n' "$NEW"
printf -- '- **iOS** — `NOOP-ios-unsigned-v%s.ipa` (AltStore / Sideloadly) — carries the **production** bundle id, so it **replaces** an installed official app and uses its data. Not a beside-install.\n' "$NEW"
} >> "$BODY"
gh release create "$TAG" --repo "$GITHUB_REPOSITORY" --target "$(git rev-parse HEAD)" \
--title "NOOP ${NEW}" --notes-file "$BODY"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/fork-testing-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,12 @@ jobs:
fi
gh release create "$TAG" --repo "$GITHUB_REPOSITORY" --prerelease --target "${{ github.sha }}" \
--title "NOOP Staging — base ${VER} · ${DATE} · ${SHA}" \
--notes "Rolling **latest** testing build — refreshed in place, so this tag is always the newest. NOOP main + ryanbr's open PRs + vetted community PRs, built with the **NOOP Staging** identity (installs **beside** the official app, separate data). Filenames carry the base app version (\`v${VER}\`).
--notes "Rolling **latest** testing build — refreshed in place, so this tag is always the newest. NOOP main + ryanbr's open PRs + vetted community PRs, built with the **NOOP Staging** identity. Android and macOS install **beside** the official app; the iOS ipa carries the **production** bundle id, so it **replaces** an installed official app and uses its data. Filenames carry the base app version (\`v${VER}\`).

- **Android (release)** — \`NOOP-android-v${VER}.apk\` — optimized, non-debuggable build; installs beside the official app. \`com.noop.whoop.staging\`.
- **Android (debug)** — \`NOOP-android-debug-v${VER}.apk\` — debuggable build. \`com.noop.whoop.debug\`.
- **macOS** — \`NOOP-macos-v${VER}.zip\` — unzip, then **right-click → Open** (ad-hoc signed, not notarized; Gatekeeper warns once). If it says *\"damaged\"*, run \`xattr -dr com.apple.quarantine /Applications/NOOP.app\`.
- **iOS** — \`NOOP-ios-unsigned-v${VER}.ipa\` — sideload via **AltStore / Sideloadly** (re-signs on-device); embedded watch app stripped, widget extension retained for Home/Lock-Screen widgets and Live Activities.
- **iOS** — \`NOOP-ios-unsigned-v${VER}.ipa\` — sideload via **AltStore / Sideloadly** (re-signs on-device). **Replaces** an installed official app (production bundle id, shared data), so back up first if you have one. Embedded watch app stripped, widget extension retained for Home/Lock-Screen widgets and Live Activities.

Base app version ${VER} · built ${DATE} · \`${SHA}\`."
# Belt-and-braces: a rolling tag is deleted with --cleanup-tag and recreated seconds later, and
Expand Down
6 changes: 5 additions & 1 deletion project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,11 @@ targets:
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: $(BUNDLE_ID_PREFIX).noop
PRODUCT_NAME: "NOOP Staging"
# NOT "NOOP Staging": 749c94118 dropped the .staging suffix from every iOS-family bundle id
# because iOS has no App Store app to install beside (NoopApp is closed), so the overlay served
# no purpose and only broke sideloading. The product name was missed by that same change. macOS
# keeps both halves deliberately (#39) and is unaffected.
PRODUCT_NAME: NOOP
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
# Ship every *.appiconset (not just the primary AppIcon) so the alternate "AppIcon-Navy"
# set is compiled into the bundle and is available to UIApplication.setAlternateIconName.
Expand Down
Loading