Skip to content

feat: add platform installers (MSIX, DMG, AppImage) and fix iOS IPA#10

Merged
anonymoussoft merged 2 commits intomasterfrom
codex/github-actions-release-publish
Apr 2, 2026
Merged

feat: add platform installers (MSIX, DMG, AppImage) and fix iOS IPA#10
anonymoussoft merged 2 commits intomasterfrom
codex/github-actions-release-publish

Conversation

@anonymoussoft
Copy link
Copy Markdown
Owner

Summary

  • Windows: Generate .msix installer alongside existing .zip via dart run msix:create
  • macOS: Generate .dmg disk image alongside existing .zip via create-dmg
  • Linux: Generate .AppImage portable binary alongside existing .tar.gz via appimagetool
  • iOS: Always create .ipa for unsigned builds (previously skipped entirely)
  • All new installer formats use graceful fallback — if the tool is unavailable, packaging continues with just the existing archive format

Changes

File What
linux/toxee.desktop New .desktop entry for AppImage
pubspec.yaml Add msix dev dep + msix_config section
tool/ci/package_artifacts.sh Add MSIX/DMG/AppImage creation; fix unsigned iOS IPA
.github/workflows/build-packages.yml Install appimagetool, create-dmg, libfuse2
tool/ci/publish_release.sh Add *.AppImage to release asset filter

Test plan

  • Linux CI job passes and produces both .tar.gz and .AppImage
  • Windows CI job passes and produces both .zip and .msix
  • macOS CI job passes and produces both .zip and .dmg
  • iOS CI job passes and produces .ipa (unsigned)
  • Android CI job still passes (no changes)
  • bash -n syntax checks pass for both shell scripts
  • YAML validates for workflow and pubspec

🤖 Generated with Claude Code

…iOS IPA

Desktop releases now produce proper installer formats alongside existing
archives: MSIX for Windows, DMG for macOS, and AppImage for Linux. iOS
unsigned builds now always produce an IPA instead of silently skipping
artifact creation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a18f7a1417

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/build-packages.yml Outdated
Comment on lines +78 to +80
wget -q -O /usr/local/bin/appimagetool \
https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x /usr/local/bin/appimagetool
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Install appimagetool with elevated permissions

In the Linux workflow (.github/workflows/build-packages.yml), this step writes directly to /usr/local/bin without sudo. GitHub-hosted Ubuntu jobs run as a non-root user, so this can fail with Permission denied before packaging starts, which breaks the Linux job instead of producing artifacts. Use sudo for the write/chmod or install into a user-writable directory on PATH.

Useful? React with 👍 / 👎.

Comment thread tool/ci/package_artifacts.sh Outdated
--app-drop-link 450 190 \
$volicon \
"$dmg_path" \
"$app_bundle" \
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Pass app container directory to create-dmg

create-dmg expects <output_name.dmg> <source_folder> and copies the contents of source_folder; passing "$app_bundle" (the .app itself) makes the DMG contain Contents/... instead of Toxee.app, and also conflicts with --icon "$(basename "$app_bundle")" because that file is not at the DMG root. Point the source argument at the parent directory of the app bundle so the installer contains a draggable .app.

Useful? React with 👍 / 👎.

…e-dmg

- Add sudo to appimagetool wget/chmod since GitHub runners are non-root
- Use a staging directory for create-dmg so the DMG contains a draggable
  Toxee.app instead of its raw Contents/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0b5d9b2235

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +99 to +101
if [[ -d "$appdir/usr/bin/lib" ]]; then
cp -a "$appdir/usr/bin/lib"/. "$appdir/usr/lib/"
rm -rf "$appdir/usr/bin/lib"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve Flutter lib directory beside AppImage executable

Moving usr/bin/lib into usr/lib makes the generated AppImage layout incompatible with Flutter Linux defaults: fl_dart_project_new() resolves the AOT library as lib/libapp.so relative to the executable directory, but this block deletes that path for usr/bin/toxee. As a result, release AppImages can fail to start even though LD_LIBRARY_PATH is set, because the engine still looks for usr/bin/lib/libapp.so unless the project explicitly overrides the AOT path (which this runner does not).

Useful? React with 👍 / 👎.

@anonymoussoft anonymoussoft merged commit 54039b3 into master Apr 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant