feat: add multi-platform build and release workflows#8
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: de43f329a0
ℹ️ 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".
| if [[ -f "$signed_marker" ]]; then | ||
| mkdir -p "$payload_dir" | ||
| cp -R "$app_bundle" "$payload_dir/" | ||
| (cd "$DIST_DIR" && zip -qry "$(basename "$archive_path")" Payload) |
There was a problem hiding this comment.
Inject staged iOS FFI binaries before IPA packaging
In package_ios, the signed path zips Runner.app as soon as embedded.mobileprovision is present, but it never copies framework_src/dylib_src into the app bundle first. That means artifacts staged by build_tim2tox.sh from TIM2TOX_IOS_FRAMEWORK_PATH or TIM2TOX_IOS_DYLIB_PATH are ignored, so signed CI releases can publish an installable IPA that still lacks the tim2tox_ffi native binary required at runtime.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 9fbee81. package_ios now injects the staged tim2tox_ffi.framework / libtim2tox_ffi.dylib into Runner.app/Frameworks before packaging the signed IPA, and the regression script now verifies that the IPA actually contains the injected binary.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9fbee81efc
ℹ️ 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".
| if [[ -f "$signed_marker" ]]; then | ||
| mkdir -p "$payload_dir" | ||
| cp -R "$app_bundle" "$payload_dir/" | ||
| (cd "$DIST_DIR" && zip -qry "$(basename "$archive_path")" Payload) |
There was a problem hiding this comment.
Re-sign iOS bundle after injecting native framework
When TIM2TOX_IOS_FRAMEWORK_PATH/TIM2TOX_IOS_DYLIB_PATH is provided, this function copies new binaries into Runner.app and then immediately packages the app as soon as embedded.mobileprovision is present, but it never re-signs the modified app. On signed iOS builds, changing Runner.app/Frameworks after flutter build ios invalidates the code signature, so the generated IPA can fail installation/verification at runtime. Re-sign the injected framework and app bundle (or inject before signing) before zipping.
Useful? React with 👍 / 👎.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
1 similar comment
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
77484b0 to
b04a554
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
b04a554 to
0aad955
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
0aad955 to
3eac3da
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
3eac3da to
40dad81
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
83c5340 to
23c591b
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
23c591b to
5f8b7aa
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
5f8b7aa to
2eccbf7
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Windows fix: - Update tim2tox submodule to include git repo initialization before applying SDK patches. git apply requires a git repository context. Linux fix: - Add gstreamer-1.0 development libraries to Linux dependencies for audioplayers_linux plugin compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2eccbf7 to
b2fa63a
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Summary
Verification
bash tool/test_ci_packaging.shbash -n tool/ci/common.sh && bash -n tool/ci/build_tim2tox.sh && bash -n tool/ci/package_artifacts.sh && bash -n tool/ci/publish_release.sh && bash -n tool/ci/prepare_ios_signing.sh && bash -n build_all.shruby -e 'require "yaml"; YAML.load_file(".github/workflows/build-packages.yml"); puts "workflow yaml ok"'dart analyze tool/bootstrap_deps.dartNotes
IOS_CERTIFICATE_P12_BASE64,IOS_CERTIFICATE_PASSWORD, andIOS_PROVISIONING_PROFILE_BASE64; without them the workflow only performs an unsigned validation build and writesdist/ios/NOTES.txt