Repository navigation
Fix flet build ignoring [tool.flet.deep_linking] on Android and iOS - #6953
Open
FeodorFitsner wants to merge 1 commit into
Open
FeodorFitsner wants to merge 1 commit into
FeodorFitsner wants to merge 1 commit into
Conversation
…6951) On Android and iOS flet build read only the platform's deep_linking table, so a project that configured deep linking once in [tool.flet.deep_linking] got no deep-link entries at all. Resolve each key from [tool.flet.<platform>.deep_linking] first, then the common table, as the publish docs describe; other platforms keep reading only the common table. Closes #6951
Deploying flet-website-v2 with
|
| Latest commit: |
536c04d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://525bba0d.flet-website-v2.pages.dev |
| Branch Preview URL: | https://fix-deep-linking-fallback.flet-website-v2.pages.dev |
Contributor
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
3 open findings
Usingassert self.get_pyprojectas a runtime check is fragile because assertions can be disabled… · New Usingassert self.get_pyprojectas a runtime check is fragile because assertions can be disabled… · New The test name says the common deep-linking config is a 'fallback' for all listed platforms, but per… · New
What changed in this PR
Fixes flet build deep-linking config precedence on Android and iOS so the common [tool.flet.deep_linking] table becomes a per-key fallback when platform-specific values are missing, matching documented behavior.
Changes:
- Add
BaseBuildCommand.get_deep_linking_setting(key)to resolve deep-link settings with correct per-platform precedence. - Update build logic to use the new resolver for
schemeandhost. - Add tests covering common fallback, per-key overrides, platform-only config, and cross-platform isolation.
| File | Description |
|---|---|
| sdk/python/packages/flet-cli/src/flet_cli/commands/build_base.py | Introduces get_deep_linking_setting() and uses it to resolve deep-link scheme/host. |
| sdk/python/packages/flet-cli/tests/test_build_platform_settings.py | Adds test coverage for precedence rules and isolation across platforms. |
| CHANGELOG.md | Documents the bug fix for Android/iOS deep-linking precedence. |
🧠 Review effort: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| else self.get_platform_setting(pyproj_setting, default_value) | ||
| ) | ||
|
|
||
| def get_deep_linking_setting(self, key: str): |
Comment on lines
+2961
to
+2968
|
|
||
| assert self.get_pyproject | ||
| platform = {"Android": "android", "iOS": "ios"}.get(self.package_platform) | ||
| if platform: | ||
| value = self.get_pyproject(f"tool.flet.{platform}.deep_linking.{key}") | ||
| if value is not None: | ||
| return value | ||
| return self.get_pyproject(f"tool.flet.deep_linking.{key}") |
|
|
||
|
|
||
| @pytest.mark.parametrize("package_platform", ["Android", "iOS", "Darwin", "Emscripten"]) | ||
| def test_common_deep_linking_is_the_fallback(package_platform): |
Copilot stopped reviewing on behalf of
FeodorFitsner due to an error
October 10, 2026 21:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Closes #6951.
Problem
On Android and iOS
flet buildread only[tool.flet.<platform>.deep_linking], so a project that configured deep linking once in[tool.flet.deep_linking]got no deep-link entries in the manifest / Info.plist — the common table was only read on desktop and web, where it does nothing.Fix
New
BaseBuildCommand.get_deep_linking_setting(key): on Android and iOS the platform table wins and the common table is the fallback, per key (so a platform table may override justhost); other platforms read only the common table, as before.--deep-linking-scheme/--deep-linking-hoststill override both when given together, and both scheme and host are still required. This is the precedencewebsite/docs/publish/index.mdalready documents, so no docs change.Tests
tests/test_build_platform_settings.py: common table as fallback on Android/iOS/desktop/web, platform table overriding per key, platform-only config, and the iOS table not leaking to Android.cd sdk/python && uv run --no-dev --group test pytest packages/flet-cli/tests→ 473 passed, 1 skipped.Summary by Sourcery
Apply the documented deep-linking configuration precedence consistently across Android, iOS, desktop, and web builds.
Bug Fixes:
flet builddeep-link configuration on Android and iOS by using the common[tool.flet.deep_linking]settings as per-key fallbacks when platform-specific values are absent.Tests: