Loading Now

Could not find module ‘xxx’ for target ‘arm64-apple-ios-simulator’

coder

Lỗi “Could not find module ‘xxx’ for target ‘arm64-apple-ios-simulator'” và cách khắc phục

fix arm64 iOS simulator
fix arm64 iOS simulator

Nguyên nhân

Lỗi “Could not find module ‘xxx’ for target ‘arm64-apple-ios-simulator'” thường xảy ra trong các dự án iOS sử dụng CocoaPods hoặc Swift Package Manager khi chạy trên iOS Simulator của Apple Silicon (Mac M1/M2). Nguyên nhân chính bao gồm:

  1. Pod chưa hỗ trợ kiến trúc arm64 trên iOS Simulator: Một số thư viện chưa được biên dịch hoặc chưa hỗ trợ kiến trúc arm64 cho simulator.
  2. Cài đặt build không tương thích: Một số cấu hình trong Podfile hoặc xcconfig có thể loại bỏ kiến trúc arm64.
  3. Bộ nhớ cache bị lỗi: Xcode có thể đang sử dụng cache cũ không tương thích với phiên bản mới.
  4. Thư viện không được build đúng cách: Nếu bạn đang sử dụng framework dạng binary, có thể nó chưa hỗ trợ arm64 trên simulator.

Cách khắc phục

1. Kiểm tra và cập nhật Podfile

Mở file Podfile và đảm bảo bạn có đoạn post_install phù hợp:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
    end
  end
end

Sau đó chạy lại:

pod install --repo-update

👉 Hướng dẫn chính thức về CocoaPods

2. Kiểm tra kiến trúc được hỗ trợ

Chạy lệnh sau để kiểm tra kiến trúc được hỗ trợ của thư viện bị lỗi:

lipo -info Pods/xxx/xxx.framework/xxx

Nếu không thấy arm64, bạn có thể cần tìm một phiên bản mới hơn của thư viện hoặc sử dụng phiên bản xcframework nếu có.

👉 Tìm hiểu về lệnh lipo

3. Dọn dẹp và rebuild dự án

Xoá cache và build lại:

rm -rf ~/Library/Developer/Xcode/DerivedData
pod deintegrate
pod install --repo-update

Sau đó, mở lại Xcode và chạy thử.

4. Chạy Xcode với Rosetta (tạm thời)

Nếu bạn không thể build với arm64, bạn có thể thử chạy Xcode bằng Rosetta:

  1. Mở Finder, vào thư mục /Applications.
  2. Chuột phải vào Xcode.app > Get Info.
  3. Chọn Open using Rosetta.
  4. Khởi động lại Xcode và thử chạy trên iOS Simulator.

👉 Thông tin về Rosetta trên Apple

5. Sử dụng Xcode Legacy Build System

Nếu vẫn gặp lỗi, thử đổi sang Legacy Build System trong Xcode:

  • Vào File > Workspace Settings.
  • Chọn Legacy Build System.
  • Clean project và build lại.

👉 Hướng dẫn về Legacy Build System

Kết luận

Lỗi này chủ yếu xảy ra do sự không tương thích của thư viện với arm64 trên iOS Simulator. Bạn có thể khắc phục bằng cách cập nhật Podfile, xoá cache, hoặc chạy Xcode với Rosetta. Nếu thư viện chưa hỗ trợ arm64, bạn có thể phải đợi bản cập nhật hoặc tìm giải pháp thay thế.

Hy vọng bài viết này giúp bạn giải quyết lỗi trên! 🚀

Post Comment

Bạn có thể đã bỏ qua