Flutter - Xây dựng cho iOS, nhưng khung được liên kết và nhúng 'App.framework' đã được xây dựng cho Trình mô phỏng iOS


13

Sau khi cập nhật lên Catalina 10.15.4 beta với Xcode 13.4 beta, cũng cập nhật Trình mô phỏng lên 13.4 (921.4).

Ứng dụng biên dịch và chạy chính xác trên thiết bị được gắn vật lý, nhưng không có trình giả lập của bất kỳ thiết bị nào có thể vượt qua giai đoạn này.

Tôi đã nhận được lỗi

Xây dựng cho iOS, nhưng khung được liên kết và nhúng 'App.framework' đã được xây dựng cho Trình mô phỏng iOS.

hoặc là

Xây dựng cho Trình mô phỏng iOS, nhưng khung được liên kết và nhúng 'App.framework' đã được xây dựng cho iOS.

nhập mô tả hình ảnh ở đây

Làm thế nào tôi có thể sửa lỗi này?

Câu trả lời:


42

Xcode 11.4 đã thay đổi cách các khung được liên kết và nhúng và bạn có thể gặp sự cố khi chuyển đổi giữa các thiết bị và trình giả lập iOS. Flutter v1.15.3 trở lên sẽ tự động di chuyển dự án Xcode của bạn.

Để có được unstuck, làm theo các hướng dẫn dưới đây;

  • Khắc phục nhanh (làm cho trình giả lập của bạn hoạt động)

rm -rf ios/Flutter/App.framework

  • Các bước được đề xuất chính thức để di chuyển thủ công

    1. Từ thư mục ứng dụng Flutter, mở ios / Runner.xcworkspace trong Xcode.
    2. Trong ngăn Điều hướng, định vị nhóm Flutter và xóa App.framework và Flutter.framework. nhập mô tả hình ảnh ở đây
    3. Trong cài đặt xây dựng mục tiêu của người chạy Xây dựng giai đoạn> Liên kết nhị phân với thư viện xác nhận App.framework và Flutter.framework không còn tồn tại. Đồng thời xác nhận trong Build Phase> Embed Frameworks.

nhập mô tả hình ảnh ở đây

  1. Thay đổi cài đặt xây dựng mục tiêu của người chạy Xây dựng giai đoạn> Tập lệnh nhị phân mỏng như sau:

    / bin / sh "$ FLUTTER_ROOT / gói / flutter_tools / bin / xcode_backend.sh" được nhúng

    / bin / sh "$ FLUTTER_ROOT / gói / flutter_tools / bin / xcode_backend.sh" mỏng

nhập mô tả hình ảnh ở đây

  1. Trong mục tiêu của người chạy Xây dựng cài đặt> Cờ liên kết khác

    (Other_LDFLAGS) thêm $ (kế thừa) -framework Flutter

nhập mô tả hình ảnh ở đây

Hy vọng nó giúp!


Câu hỏi gần đây đã bị đóng và nhận được rất nhiều lượt tải xuống vì nó không rõ ràng và đã được đăng trên Meta . Có vẻ như bạn hiểu những gì nó đang hỏi, bạn có ý tưởng làm thế nào để chỉnh sửa nó thành hình dạng để nó không hoàn toàn không rõ ràng không?
SurePerformance

1
Hoạt động như quyến rũ!
Giedrius likas

3

Xcode 11.4 đã thay đổi cách các khung được liên kết và nhúng, điều này gây ra sự cố khi chuyển đổi giữa các thiết bị và trình giả lập iOS.

Vui lòng làm theo hướng dẫn chính thức về cách di chuyển dự án của bạn.


Sau khi làm theo hướng dẫn chính thức, ứng dụng của tôi vẫn không tải trên thiết bị vật lý của tôi. Chỉ sau khi làm theo hướng dẫn, chạy flutter cleannhiều lần, xóa Pods/thư mục và Podfile.locksau đó cài đặt lại bằng pod installthư mục ios thì cuối cùng nó cũng hoạt động.
Matthew Lerner

2

Cập nhật lên Xcode 11.4. Ios 13.4, Iphone X. Ứng dụng chỉ tìm nạp dữ liệu bằng API. Ứng dụng bắt đầu trên màn hình trắng và cuối cùng là sự cố, cả trên trình giả lập và thiết bị.

Tôi đã làm theo hướng dẫn chính thức (tôi cũng rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration . Tôi đã chạy nhiều lầnflutter clean

Tôi cũng đã thử xóa Pods / thư mục và Podfile.lock, sau đó cài đặt lại bằng pod installthư mục ios.

Khi tôi đang sử dụng dữ liệu không đồng bộ, tôi cũng đã thêm vào dòng thứ 1 trong hàm main ()

WidgetsFlutterBinding.ensureInitialized();

Không có trợ giúp, ứng dụng đã không bắt đầu giả lập.

Sau đó, tôi loại bỏ ios/android/các thư mục. Sau đó trong thư mục dự án tôi đã chạy lệnh flutter create .tạo lại các thư mục được đề cập.

Sau đó, ứng dụng của tôi bắt đầu tốt cả trên trình giả lập và trên thiết bị. Tôi hy vọng điều này sẽ giúp đỡ người khác. GHI CHÚ!! nếu bạn đã thực hiện bất kỳ sửa đổi nào theo cách thủ công đối với các thư mục đó, vui lòng sao lưu hoặc cam kết trước.


1

Sau vài ngày cố gắng tìm giải pháp để thử nghiệm ứng dụng Flutter trên thiết bị iOS, cuối cùng tôi cũng tìm thấy điều này:

flutter clean
flutter build ios

-Mở xCode và chạy ứng dụng trên thiết bị của bạn.


Vẫn không làm việc cho tôi. làm điều tương tự khi tôi cố gắng chạyflutter build ios
Raymond Ativie


vâng, đó là những gì tôi đã làm, cảm ơn
Raymond Ativie

0

Tôi đã thử giải pháp trên trang web chính thức của flutter nhưng nó không hiệu quả với tôi, vì vậy tôi đã tìm thấy một giải pháp tạm thời có hiệu quả với tôi, nhưng tôi đã mất một số công việc khó khăn: Đây là ví dụ của tôi với dự án bị mắc kẹt dự án mới (lần đầu tiên chạy trên trình giả lập)

  1. Tôi đã tạo 2 thư mục bên trong dự án flutter gọi là
    "ios_simulator" và "ios_real_device". nhập mô tả hình ảnh ở đây

  2. Bây giờ bản dựng đầu tiên của tôi là dành cho trình giả lập, sau đó tôi muốn chuyển sang một thiết bị thực, tôi sẽ chuyển thư mục ios bên trong dự án Flutter sang "ios_simulator"

  3. Tôi mở dự án với mã studio trực quan và chạy "tạo rung". và bây giờ tôi sẽ chọn một thiết bị thực để xây dựng lại dự án (nếu trình giả lập của bạn đang trực tuyến, vui lòng thoát). nhập mô tả hình ảnh ở đây
  4. Bây giờ tôi chờ quá trình xây dựng kết thúc và chạy trên thiết bị thực mà không có bất kỳ lỗi nào. Bây giờ tôi có 2 ios dự án 1 cho giả lập và một cho thiết bị thực.
  5. Lần tới khi tôi muốn chạy lại trình giả lập, tôi chỉ cần xóa thư mục ios hiện tại và sao chép thư mục ios mà tôi đã đặt trên "ios_simulator" trở lại thư mục dự án rung. Hy vọng điều này giúp đỡ

0

Nâng cấp thủ công flutter lên phiên bản 1.15 cũng giải quyết vấn đề này. Chạy flutter version v1.15.17giúp tôi.

Ngoài ra, bạn có thể chuyển sang betahoặc devkênh bằng cách chạy flutter channellệnh nhưng hãy chắc chắn rằng bạn đã kiểm tra mã của mình trước tất cả các thay đổi BC ...


0

Trong trường hợp của tôi, nó chỉ hoạt động giả lập (gỡ lỗi). nếu bạn muốn triển khai ứng dụng của mình trên cửa hàng ứng dụng (phát hành) tôi khuyên bạn nên nâng cấp phiên bản rung bằng cách sử dụng

flutter version v1.15.17

nếu không bạn sẽ gặp ứng dụng bị sập với màn hình trắng.

Chỉ cần nâng cấp phiên bản rung thì tất cả mọi thứ hoạt động tốt


1.15.17chưa có trên kênh Ổn định.
Loolooii
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.