Bài viết này dành cho các bạn hiện tại vẫn còn đang ở nhánh stable của Flutter(Channel stable, v1.12.13+hotfix.9 hoặc nhỏ hơn) hoặc khi build App bạn nhận được error như dưới đây:

Building for iOS, but the linked and embedded framework ‘App.framework’ was built for iOS Simulator.

Hoặc:

Building for iOS Simulator, but the linked and embedded framework ‘App.framework’ was built for iOS.

Để fix được lỗi trên, các bạn follow theo hướng dẫn của mình từng bước phía dưới nhé:

  1. Mở file ios/Runner.xcworkspace trong project của Flutter của bạn
  2. Bạn nhìn qua bên Navigation Pane của XCode, bên trong thư mục Flutter bạn sẽ thấy App.framework và Flutter.framework.
  3. Nhẹ nhàng remove chúng bằng cách Select -> chuột phải -> Delete.

Sau khi remove xong, các bạn chọn Target Runner -> Build Phases > Link Binary With Libraries Embed Frameworks để đảm bảo rằng không còn xuất hiện 2 file App.framework và Flutter.framework nữa.

Vẫn trong Build Phases đó, bạn chọn tiếp Thin Binary và thêm đoạn script dưới đây:

/bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed 
/bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" thin

Và cuối cùng, các bạn chọn Target Runner -> Other Linker Flags, thêm các dòng sau nếu chưa có $(inherited) -framework Flutter

Cuối cùng, nếu các bạn vẫn chưa hiểu các thành phần trong XCode, mình sẽ bonus cho các bạn 1 tấm hình tổng hợp các thành phần trong XCode mà chúng mình thường sử dụng mà không để ý đến.

Xcode Cheat Sheat

Lưu ý: Flutter v1.15.3 và các version sau đó đã tự động migrate vào project trong XCode của bạn.

Các bài viết khác

Leave A Comment