Chữ ký rung không hợp lệ khi thử trên thiết bị iOS


11

TL; DR

Xem câu trả lời dưới đây: https://stackoverflow.com/a/60013390/1121497

Có vẻ như đó là một vấn đề với iOS 13.3 vì tôi mới cài đặt 13.4 và bây giờ Flutter hoạt động trên iPhone của tôi. :)


Tôi đang cố gắng chạy một ứng dụng Flutter mới (ứng dụng mẫu được tạo bởi flutter create) trên thiết bị iOS (iPhone XS). Xcode quản lý để cài đặt nó, nhưng sau đó nó gặp sự cố với thông báo này:

dyld: Library not loaded: @rpath/Flutter.framework/Flutter
  Referenced from: /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Runner
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter: code signature invalid for '/private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter'

Nếu tôi thử flutter run, ứng dụng cũng mở và gặp sự cố. Và lệnh cứ chờ mãi:

$ flutter run
Launching lib/main.dart on Ferran Maylinch’s iPhone in debug mode...

Automatically signing iOS for device deployment using specified development team in Xcode project: 25D86TPBWG
Running Xcode build...                                                  

 ├─Assembling Flutter resources...                           4.3s
 └─Compiling, linking and signing...                        13.3s
Xcode build done.                                           21.0s
Installing and launching...                                             
(This is taking an unexpectedly long time.)

Trong Xcode, tôi đã định cấu hình Nhóm (Nhóm cá nhân) và Chứng chỉ ký (chứng chỉ phát triển Apple) có vẻ ổn vì tôi có thể cài đặt dự án Hello world Swift trên thiết bị của mình.

Lưu ý: Tôi không trả tiền cho chương trình Nhà phát triển của Apple . Điều đó có thực sự cần thiết để chạy các ứng dụng Flutter trên thiết bị iOS không?

Tôi đã làm theo hướng dẫn macOSflutter doctornói rằng tôi có mọi thứ tôi cần cho iOS:

[] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.15.2 19C57, locale en-ES)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[] Xcode - develop for iOS and macOS (Xcode 11.3)
[!] Android Studio (version 3.5)Flutter plugin not installed; this adds Flutter specific functionality.Dart plugin not installed; this adds Dart specific functionality.
[] IntelliJ IDEA Ultimate Edition (version 2019.3.1)
[!] VS Code (version 1.41.1)Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[] Connected device (1 available)

! Doctor found issues in 3 categories.

Như bạn có thể thấy, tôi đã sử dụng kênh ổn định, để loại bỏ các sự cố với kênh beta, nhưng tôi thường làm việc trong kênh beta để tạo rung cho web (hoạt động tốt).

Trong trình giả lập iOS, ứng dụng cũng hoạt động tốt.

Gần đây tôi nhận thấy rằng tôi không có tập tin ios/Podfile. Tôi tìm thấy bài viết này nói về điều đó. Tôi không biết điều này có quan trọng hay không trong trường hợp của mình, nhưng tôi đã cố gắng tự thêm Podfile này . Dù sao, tôi nhận được cùng một chữ ký lỗi.

Thất vọng vì điều này, bây giờ tôi đã chuyển sang NativeScript .


Bạn đang cố chạy nó trên thiết bị thực ở chế độ gỡ lỗi hoặc phát hành?
Sunkuu7

@SlahLayouni Đó là trong chế độ Gỡ lỗi. Tôi đã thử chế độ Phát hành và nó không thành công với cùng một lỗi.
Ferran Maylinch

Hãy thử xây dựng bản phát hành trước sau đó chạy nó từ xcode dưới dạng bản phát hành. flutter build ios --release
Sunkuu7

1) Bạn đã dùng thử Trình mô phỏng iOS 2) Bạn đã triển khai / chạy "Hello World" trong Swift / Xcode cho thiết bị iPhone của mình chưa? Giấy chứng nhận cá nhân nên tốt để triển khai cho điện thoại của bạn.
Morrison Chang

Câu trả lời:


8

EDIT: Điều này đã được sửa trên iOS 13.4, được phát hành vào ngày 24 tháng 3.

Đây là một hồi quy iOS 13.3.1 không liên quan đến Flutter. Tôi đã có thể tái tạo sự cố mà không cần bất kỳ mã Flutter hoặc CocoaPods nào bằng cách tạo dự án Xcode mới, thêm mục tiêu khung và chọn hồ sơ cung cấp Nhóm cá nhân.

Xem vấn đề GitHub: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 .

Lỗi không ảnh hưởng đến hồ sơ hoặc ứng dụng cung cấp nhóm Tài khoản nhà phát triển đã được ký và phân phối trên App Store.

Thật không may, cách giải quyết duy nhất có thể là tránh nâng cấp các thiết bị phát triển lên 13.3.1 cho đến khi điều này được giải quyết.


Cảm ơn rât nhiều! Tôi hy vọng điều này là cố định càng sớm càng tốt!
Ferran Maylinch

Vì vậy, đây là vấn đề cấp độ iOS? Tôi cũng gặp phải vấn đề này trên iPhone với phiên bản iOS 13.3.1
Adromil Balais

Có, đây là sự cố với iOS 13.3.1 và sau đó từ chối hồ sơ cung cấp hồ sơ cá nhân của Nhóm cá nhân. Nó không đặc trưng cho Flutter. Các liên kết trong nhận xét GitHub đang tham khảo các dự án khác và tôi có thể dễ dàng tái tạo với một khung hoàn toàn mới trong Xcode mà không cần nhúng Flutter.
Jenn

Tôi vừa thử với iOS 13.4 và nó hoạt động! Tôi có thể chạy ứng dụng Flutter của mình trên iPhone thật từ Xcode và từ IntelliJ IDEA. Tôi đoán rằng nó cũng sẽ làm việc từ dòng lệnh.
Ferran Maylinch

4

Theo như tôi có thể thấy đó là sự cố tương thích Flutter với iOS 13.3.1. Trong trường hợp của tôi, ứng dụng của tôi chạy hoàn toàn tốt trên iPhone XR với iOS 13.3 nhưng gặp sự cố khi khởi chạy trên iPhone XR khác với iOS 13.3.1. Không thể kiểm tra trình giả lập vì đây là ứng dụng camera nhưng nó hoạt động trên cả thiết bị Android vật lý và trình giả lập Android.


Bạn đúng rồi. Chỉ cần thử nghiệm với iPad của tôi với 13.3. Điện thoại của tôi không hoạt động với 13.3.1. Sắp cập nhật lên phiên bản beta 2 và dùng thử :-)
Ken Hui

13.3.1 Phiên bản beta 2 công khai có cùng một vấn đề.
Ken Hui

3
  1. Bạn đã đồng ý thỏa thuận cấp phép xcode? nếu không, hãy thử sudo xcodebuild -license.
  2. Có phải pod của bạn được cập nhật? nếu không, hãy điều hướng đến thư mục ios trong dự án rung trong thiết bị đầu cuối của bạn và nhập pod installsau đópod update

Nếu điều này không hoạt động, hãy chuyển đến thư mục ios trong dự án rung của bạn và mở Runner.xcworkspace bằng cách nhấn đúp vào nó. Nó sẽ giống như thế này:

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

Khi xcode mở ra, nhấp vào Runner ở trên cùng bên trái.

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

Sau đó, đi đến Ký và Khả năng và trong danh sách thả xuống "Nhóm", chọn một trường. Nếu không tồn tại, tạo một tài khoản.

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

Sau đó, trong "Gói nhận dạng gói", tên gói ứng dụng của bạn sẽ được hiển thị. Thêm .app vào cuối. Ví dụ: nếu "com.example.yourapp", hãy đặt "com.example.yourapp.app" và nhấn enter.

Nhấn nút phát ở trên cùng bên trái để chạy ứng dụng trên thiết bị được chọn.


Tôi không có Podfile. Tôi đang xem bài đăng này stackoverflow.com/questions/51599686/ từ
Ferran Maylinch

Cài đặt cocoapods vào máy của bạn và chạy các lệnh pod trong thư mục ios của bạn.
Yudhishthir Singh

Tôi có cocoapods. Tôi nên sử dụng các lệnh pod nào?
Ferran Maylinch

cài đặt pod và sau đó cập nhật pod
Yudhishthir Singh

Tôi đã thực hiện các chỉnh sửa cho câu trả lời của tôi, xin vui lòng có một cái nhìn.
Yudhishthir Singh

1

Bạn có thể làm theo từng bước một

flutter channel master
flutter upgrade
flutter clean
flutter build ios

Tôi đã thử điều đó. Cũng trên kênh beta.
Ferran Maylinch

Lỗi liên quan đến khả năng ký, nhánh rung không liên quan gì.
Yudhishthir Singh

1

Bài đăng này không phải là một câu trả lời vì tôi cũng đang vật lộn với vấn đề này và viết nó vì nó đã được một thời gian mà không có sửa chữa

Tất cả những gì tôi muốn là cung cấp thêm chi tiết cho OP và các thành viên khác tại đây. Vì vậy, tôi có mọi thứ như OP đã nêu.

Đây là những gì tôi đã thử:

  1. Podfile không được tạo (ngay cả sau khi chạy trên Trình mô phỏng và vv) và đó là lý do tại sao tôi đã thử bao gồm một từ ứng dụng ví dụ rung từ Flutter Github.

    • Xóa thư mục iOS
    • Đã thêm một Podfile
    • Ran cập nhật pod.
    • Đã sửa lỗi cảnh báo (cung cấp cấu hình gỡ lỗi Pod và phát hành cấu hình cho Xcode)
    • Đã thêm FLUTTER_ROOT vào cài đặt do người dùng xác định (vắng mặt) và tôi đã gặp lỗi Xcode-backend.sh (không nhớ chính xác, xin lỗi)
    • Được xây dựng

Vì vậy, các bước này tạo ra: lỗi này trên Trình mô phỏng. Cùng lỗi chữ ký như không Pod trên thiết bị vật lý

  • Đã xóa tất cả các chứng chỉ khỏi Keychain Access và khôi phục chúng thông qua Xcode.

    Kết quả: Không có gì thay đổi

  • Đã xóa Xcode, Pod và cài đặt liên quan đến nó. Giấy chứng nhận bị xóa. Đã khôi phục mọi thứ sau khi khởi động lại (cài đặt mới)

    Kết quả: Một lần nữa, cũng không xây dựng với pod cũng như không cung cấp các lỗi tương tự

  • Tôi đã nâng cấp Flutter lên kênh dev (1.14.1) và dự án được tạo lại bằng cách sử dụng flutter create .

    Reran xây dựng. Với vỏ và không có. Vẫn như cũ

  • Ngoài ra, tôi đã cố gắng thay đổi chữ ký từ Nhà phát triển Apple sang Nhà phát triển iOS trên tất cả mục tiêu (bao gồm Pod)

    Trong trường hợp này, tôi đã gặp một số lỗi vì tôi thậm chí đã thử ký Pods-Runner (có một chút hy vọng). Nhưng nhìn chung không có gì mới.

  • Khi tôi chạy một thiết bị trên iOS 13.3.1 Beta, tôi đã nâng cấp Target lên 13.2 (tối đa khả dụng ngay bây giờ?).

    Không

  • Tôi đã kích hoạt các bản dựng macOS và xây dựng một ứng dụng Mac

    Nó chạy như dự định, mọi thứ đều ổn.

Tóm lại:

  • Vấn đề này không phụ thuộc vào dự án Pod / Non-Pod.
  • Không có gì thay đổi liên quan đến vấn đề này giữa rung động ổn định mới nhất và dev mới nhất (như bài viết)
  • Lỗi này không được sửa bởi cài đặt lại Xcode và không liên quan đến chứng chỉ Keychain
  • Sự cố chỉ bật lên khi xây dựng chỉ cho Thiết bị iOS vật lý (iPhone X trong trường hợp của tôi). Trình mô phỏng (không có Pod) chạy tốt.

Btw. Mọi thứ đã chạy trên MacBook Pro 13 với cài đặt Catalina 10.15.3 và Xcode 11.3.1.

Mọi Run đều có cờ -v và không có gì đáng ngờ được tìm thấy trong các bản ghi trong quá trình xây dựng

Lần nữa. Tôi xin lỗi nếu tôi đã làm gì đó sai khi đăng bài này nhưng tôi không muốn sao chép vấn đề này hoặc đề nghị OP chỉnh sửa vì bài đăng này khá dài.


Cảm ơn bạn rất nhiều vì câu trả lời này. Nó không phải là giải pháp nhưng nó rất hữu ích. Rõ ràng, có gì đó không ổn với Flutter. Có vẻ như Google không biết chính xác những gì Apple đang mong đợi hoặc Apple không quan tâm đến việc để Flutter hoạt động trơn tru ... :)
Ferran Maylinch

Nhân tiện, hôm qua tôi đã thử Flutter trên một máy Mac khác, với Mojave (của tôi có Catalina) và tôi cũng gặp lỗi tương tự.
Ferran Maylinch

Rất có thể đây là một cái gì đó liên quan đến CodeSign hoặc Flutter. Chúng ta nên mở một vấn đề github.com/flutter/flutter/issues
Emin Guliev

Đúng. Ý tưởng tốt. Hãy cho tôi biết nếu bạn làm điều đó, hoặc tôi có thể tự làm điều đó.
Ferran Maylinch

0

Cố gắng chuyển sang kênh ổn định thông qua flutter channel stable, thực hiện flutter upgradevà sau đó điều hướng đến dự án ứng dụng và chạyflutter run


Thật không may, tôi nhận được cùng một lỗi. Tôi thậm chí đã tạo một ứng dụng rung mới sau khi đổi sang kênh ổn định. Tôi đã cập nhật câu hỏi của mình để cho thấy rằng bây giờ tôi đang ở trên kênh ổn định.
Ferran Maylinch

Tôi cũng đã thêm đầu ra của rung.
Ferran Maylinch

0

Chỉ cần chạy ứng dụng ở chế độ Gỡ lỗi, không cần bất kỳ tài khoản trả phí nào. 1) Mở xCode cho dự án đó và chọn thiết bị và chạy trong đó.

Mở XCode của dự án đó và kiểm tra Cài đặt bản dựng vì có đường dẫn FLUTTER_ROOT là chính xác, nếu không, hãy tạo gốc rung và đưa ra đường dẫn.


Tôi có một chính xác FLUTTER_ROOT. Đó không phải là vấn đề ... :(
Ferran Maylinch


0

Bạn có kiểm tra liên kết này có thể cung cấp cho bạn đầu ra mong muốn https://github.com/flutter/flutter/issues/16507 . cho tôi biết nếu nó hoạt động có thể là một vấn đề ký, bài đăng này sẽ cung cấp cho bạn ý tưởng những gì đang xảy ra. Cảm ơn


Tôi không có Podfile vì vậy tôi đang kiểm tra điều này: stackoverflow.com/questions/51599686/ Dù sao, tôi không biết Podfile tôi cần gì. Tôi đã tạo một nhưng tôi vẫn nhận được cùng một lỗi. Vì vậy, có lẽ tôi không cần Podfile hoặc dù sao thì vấn đề là một vấn đề khác.
Ferran Maylinch

0

Ok, có một khoảnh khắc để tạo câu trả lời:

Dựa trên câu trả lời của Subaharan Vel , câu hỏi: Flutter Podfile và các thư mục Pods không được tạo trong thư mục ios trả lời cho thấy rằng việc xây dựng trình giả lập iOS có thể tạo podfile ở vị trí không chính xác (nên được tạo tự động trực tiếp trong thư mục iOS. Hãy tồn tại ở đâu đó. Hãy thử tìm nó hoặc chỉ xóa toàn bộ thư mục ios, làm sạch dự án và tạo lại nó. Ngoài ra, hãy đảm bảo rằng đây không phải là trường hợp Tạo Podfile để thêm pods iOS trước khi thêm bất kỳ plugin Flutter nào không bao giờ kết nối các plugin của plugin Podfile hiện có .

Chúc may mắn, tôi hy vọng nó sẽ giúp bạn


Không có Podfilenơi nào. Tôi chạy find . -name Podfilevà tôi không nhận được gì. Tôi đã xóa iosthư mục nhưng bây giờ, làm thế nào tôi có thể tạo lại nó? Nếu tôi chạy flutter build iostôi nhận được lỗi Application not configured for iOS.
Ferran Maylinch

@Ferran Maylinch Chỉ cần lặp lại tất cả các bước từ Surbahan Vel (liên kết đầu tiên) - anh ấy đã xóa thư mục ios và nó được tạo lại sau khi làm sạch dự án. Nếu cần thêm podfile theo cách thủ công (từ stackoverflow.com/a/53492243/7183675 , hãy xóa các pod không cần thiết khỏi đó, đồng thời kiểm tra nhận xét thứ hai dưới câu trả lời này). Như một phương sách cuối cùng - có thể hữu ích nếu bạn thêm ít nhất một gói vào pubspec để buộc Flutter tự động tạo Podfile. Ngay cả khi gói này không thực sự được sử dụng
Adam Tucholski

0

Không phải là một giải pháp lý tưởng nhưng sau đây làm việc cho tôi.

  1. Nâng cấp thiết bị của bạn lên iOS 13.4 beta.
  2. Thực hiện một cú rung
  3. Việc xây dựng nên thành công.
  4. Nó sẽ đưa ra lỗi "Phiên bản Xcode của bạn có thể quá cũ so với phiên bản iOS của bạn" .
  5. Ứng dụng được cài đặt trên thiết bị. Lưu ý: Ứng dụng sẽ không tự động khởi chạy khi quá trình kết thúc.
  6. Nhấp vào biểu tượng ứng dụng đã cài đặt trên thiết bị của bạn để khởi chạy ứng dụng.

Mặc dù, bạn sẽ không thể thấy bất cứ điều gì trên cửa sổ gỡ lỗi vì quá trình kết thúc sau khi ném lỗi. Đây không phải là một giải pháp lý tưởng nhưng chắc chắn là một cách giải quyết cho đến khi chúng tôi nhận được bản cập nhật Xcode tiếp theo. 

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.