Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

flet build: common [tool.flet.deep_linking] is ignored on Android and iOS

Đang mở Phù hợp với người mới
#6,951 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Một pull request liên quan đã được merge.

  • #6953 của @FeodorFitsner — đã merge

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
android, flutter, ios, python
Lĩnh vực
mobile

Hướng nghiên cứu

Đọc setup_template_data trong flet_cli/commands/build_base.py và phần Deep linking của website/docs/publish/index.md để xác nhận thứ tự ưu tiên được ghi trong tài liệu. Theo dõi cách scheme và host được chọn cho Android và iOS, sau đó thêm các bài kiểm tra cho cài đặt chung, cài đặt nền tảng và các giá trị ghi đè của nền tảng. Hoàn tất khi cả hai nền tảng dùng các giá trị chung làm phương án dự phòng và vẫn yêu cầu cả hai giá trị đã được phân giải.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug packaging platform: mobile
Problem

On Android and iOS — the only platforms where deep linking applies — flet build never reads the common [tool.flet.deep_linking] table. A project that configures deep linking once:

[tool.flet.deep_linking]
scheme = "https"
host = "app.example.com"

gets no deep-linking entries in the Android manifest or iOS Info.plist.

Cause

setup_template_data in flet_cli/commands/build_base.py (flet-1.1.0 @ ab1c5e43, lines ~1421–1439) picks exactly one source per platform:

deep_linking_scheme = (
    self.get_pyproject("tool.flet.ios.deep_linking.scheme")
    if self.package_platform == "iOS"
    else (
        self.get_pyproject("tool.flet.android.deep_linking.scheme")
        if self.package_platform == "Android"
        else self.get_pyproject("tool.flet.deep_linking.scheme")
    )
)

(same for host). On iOS/Android there is no fallback to tool.flet.deep_linking.*; the common table is only read on desktop/web, where it has no effect.

Expected (per docs)

website/docs/publish/index.md → Deep linking documents this precedence:

  1. --deep-linking-scheme / --deep-linking-host (only when both are provided)
  2. [tool.flet.<PLATFORM>.deep_linking] (android or ios)
  3. [tool.flet.deep_linking]

i.e. the platform table should override, and the common table should be the fallback.

Proposal

Resolve per key with fallback, e.g. get_platform_setting("deep_linking.scheme") (platform, then common), keeping the "both scheme and host required" rule on the resolved pair. Add a test for: common only, platform only, platform overriding common.

Ngôn ngữ chính
Python
Star
17.4k
Fork
728
Merge trung bình
1 ngày 7 giờ
Pull request đã merge (30 ngày)
51

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của flet-dev/flet

Tất cả issue của flet-dev/flet

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.