ลายเซ็นพลิ้วไม่ถูกต้องเมื่อลองบนอุปกรณ์ iOS


11

TL; DR

ดูคำตอบด้านล่าง: https://stackoverflow.com/a/60013390/1121497

ดูเหมือนว่ามันจะมีปัญหากับ iOS 13.3 เพราะฉันเพิ่งติดตั้ง 13.4 และตอนนี้ Flutter ใช้งานได้บน iPhone ของฉัน :)


ฉันพยายามเรียกใช้แอพ Flutter ใหม่ (ตัวอย่างแอพที่สร้างโดยflutter create) บนอุปกรณ์ iOS (iPhone XS) Xcode จัดการเพื่อติดตั้ง แต่แล้วมันล้มเหลวด้วยข้อความนี้:

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'

ถ้าฉันลองflutter runแอพก็จะเปิดและหยุดทำงาน และคำสั่งคอยตลอดไป:

$ 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.)

ใน Xcode ฉันกำหนดค่าทีม (ทีมส่วนบุคคล) และใบรับรองการลงนาม (ใบรับรองการพัฒนาของ Apple) ดูเหมือนดีเพราะฉันสามารถติดตั้งโครงการ Hello world Swift บนอุปกรณ์ของฉัน

หมายเหตุ: ผมไม่ได้จ่ายเงินบัญชีของโปรแกรมสำหรับนักพัฒนาแอปเปิ้ล จำเป็นหรือไม่ที่จะใช้แอพ Flutter บนอุปกรณ์ iOS

ฉันทำตามคำแนะนำของ macOSและflutter doctorบอกว่าฉันมีทุกอย่างที่ฉันต้องการสำหรับ 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.

อย่างที่คุณเห็นฉันใช้แชนเนลที่เสถียรเพื่อทิ้งปัญหาเกี่ยวกับแชนเนลเบต้า แต่โดยปกติฉันจะทำงานในแชนเนลเบต้าเพื่อสร้างความพลิ้วสำหรับเว็บ (ซึ่งใช้งานได้ดี)

ในเครื่องมือจำลอง iOS แอปก็ใช้งานได้เช่นกัน

เมื่อเร็ว ๆ ios/Podfileนี้ผมสังเกตเห็นว่าผมไม่ได้มีไฟล์ ฉันพบโพสต์นี้พูดคุยเกี่ยวกับที่ ผมไม่ทราบว่าเรื่องนี้มีความสำคัญหรือไม่ในกรณีของฉัน แต่ฉันพยายามที่จะเพิ่มด้วยตนเองนี้Podfile อย่างไรก็ตามฉันได้รับข้อผิดพลาดลายเซ็นเดียวกัน

ฉันเปลี่ยนมาใช้NativeScriptตอนนี้


คุณกำลังพยายามเรียกใช้บนอุปกรณ์จริงในโหมดดีบักหรือปล่อย
Sunkuu7

@SlahLayouni มันอยู่ในโหมดแก้ไขข้อบกพร่อง ฉันลองโหมด Release และล้มเหลวด้วยข้อผิดพลาดเดียวกัน
Ferran Maylinch

ลองสร้างรุ่นก่อนแล้วเรียกใช้จาก xcode เป็นรุ่น flutter build ios --release
Sunkuu7

1) คุณลองใช้ iOS Simulator 2) คุณได้ติดตั้ง / เรียกใช้ "Hello World" ใน Swift / Xcode ไปยังอุปกรณ์ iPhone ของคุณหรือไม่? ใบรับรองส่วนบุคคลควรเหมาะสำหรับการปรับใช้กับโทรศัพท์ของคุณ
Morrison Chang

1
คุณสามารถตรวจสอบstackoverflow.com/a/58948346/7183675และgithub.com/flutter/flutter/issues/16507#issuecomment-380790165 ได้หรือไม่ ข้อเสนอแนะที่น่าสนใจยังอยู่ที่นี่: github.com/flutter/flutter/issues/39962#issuecomment-532558471และgithub.com/flutter/flutter/issues/41147#issuecomment-534783565
Adam Tucholski

คำตอบ:


8

แก้ไข: นี่คือการแก้ไขใน iOS 13.4 ซึ่งเผยแพร่ 24 มีนาคม

นี่คือการถดถอย iOS 13.3.1 ที่ไม่เกี่ยวข้องกับ Flutter ฉันสามารถสร้างความผิดพลาดโดยไม่มีรหัส Flutter หรือ CocoaPods โดยการสร้างโครงการ Xcode ใหม่เพิ่มเป้าหมายเฟรมเวิร์กและเลือกโปรไฟล์การจัดสรรทีมส่วนบุคคล

ปัญหาดู GitHub: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697

ข้อผิดพลาดไม่ควรส่งผลกระทบต่อโปรไฟล์หรือแอปเตรียมทีมบัญชีนักพัฒนาซอฟต์แวร์ที่ลงนามและจัดจำหน่ายแล้วใน App Store

น่าเสียดายที่วิธีแก้ปัญหาเพียงอย่างเดียวอาจหลีกเลี่ยงการอัพเกรดอุปกรณ์การพัฒนาเป็น 13.3.1 จนกว่าจะได้รับการแก้ไข


ขอบคุณมาก! ฉันหวังว่านี่จะได้รับการแก้ไขโดยเร็ว!
Ferran Maylinch

ดังนั้นนี่คือปัญหาระดับ iOS? ฉันยังพบปัญหานี้ใน iPhone กับ iOS 13.3.1 รุ่น
Adromil Balais

ใช่นี่เป็นปัญหากับ iOS 13.3.1 และใหม่กว่าปฏิเสธเฟรมเวิร์กโปรไฟล์การจัดเตรียมโปรไฟล์ทีมส่วนบุคคลที่ลงนามแล้ว มันไม่ได้เฉพาะกับ Flutter ลิงก์ในความคิดเห็น GitHub กำลังอ้างอิงโครงการอื่น ๆ และฉันก็สามารถทำซ้ำได้อย่างง่ายดายด้วยกรอบงานใหม่ใน Xcode โดยไม่ต้องฝัง Flutter
Jenn

ฉันเพิ่งลองตอนนี้กับ iOS 13.4 และใช้งานได้! ฉันสามารถเรียกใช้แอพ Flutter ของฉันบน iPhone จริงจาก Xcode และจาก IntelliJ IDEA ฉันเดาว่ามันจะทำงานจากบรรทัดคำสั่งด้วย
Ferran Maylinch

4

เท่าที่ฉันเห็นมันเป็นปัญหาความเข้ากันได้ของ Flutter กับ iOS 13.3.1 ในกรณีของฉันแอพของฉันทำงานได้ดีอย่างสมบูรณ์บน iPhone XR ด้วย iOS 13.3 แต่เกิดปัญหากับการเปิดตัวบน iPhone XR อื่นที่มี iOS 13.3.1 ไม่สามารถทดสอบแบบจำลองได้เนื่องจากเป็นแอปกล้อง แต่ใช้งานได้ทั้งบนอุปกรณ์ Android จริงและ Android emulators


คุณพูดถูก เพิ่งทดสอบกับ iPad ของฉันกับ 13.3 โทรศัพท์ของฉันใช้ไม่ได้กับ 13.3.1 จะอัปเดตเป็นรุ่นเบต้า 2 และลอง :-)
Ken Hui

13.3.1 เบต้าสาธารณะ 2 มีปัญหาเดียวกัน
เคนฮุย

3
  1. คุณเห็นด้วยกับข้อตกลงใบอนุญาต xcode หรือไม่? sudo xcodebuild -licenseหากไม่ได้ลอง
  2. พ็อดของคุณอัพเดทหรือไม่? หากไม่มีให้ไปที่โฟลเดอร์ ios ในโปรเจ็กต์ flutter ในเทอร์มินัลpod installแล้วพิมพ์pod update

หากวิธีนี้ไม่ได้ผลให้ไปที่โฟลเดอร์ ios ในโครงการกระพือของคุณและเปิด Runner.xcworkspace โดยแตะสองครั้งที่มัน ควรมีลักษณะเช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อ xcode เปิดขึ้นให้คลิกที่ Runner ทางด้านซ้ายบน

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นไปที่การลงชื่อและความสามารถภายใต้รายการแบบเลื่อนลง "ทีม" เลือกฟิลด์ หากไม่มีอยู่สร้างบัญชี

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นใน "Bundle Identifier" ชื่อมัดของแอปของคุณควรจะแสดง เพิ่ม. app ในท้ายที่สุด ตัวอย่างเช่นหาก "com.example.yourapp" ทำให้เป็น "com.example.yourapp.app" แล้วกด Enter

กดปุ่มเล่นที่ด้านบนซ้ายเพื่อเรียกใช้แอพในอุปกรณ์ที่เลือก


ฉันไม่มี Podfile ฉันกำลังดูโพสต์นี้stackoverflow.com/questions/51599686/…
Ferran Maylinch

ติดตั้ง cocoapods ลงในเครื่องของคุณและเรียกใช้คำสั่ง pod ในไดเรกทอรี ios ของคุณ
Yudhishthir Singh

ฉันมี cocoapods ฉันควรใช้คำสั่ง pod ใด
Ferran Maylinch

ติดตั้งพ็อดแล้วอัปเดตพ็อด
Yudhishthir Singh

ฉันได้แก้ไขคำตอบของฉันโปรดดู
Yudhishthir Singh

1

คุณสามารถทำตามขั้นตอนทีละหนึ่ง

flutter channel master
flutter upgrade
flutter clean
flutter build ios

ฉันลองแล้ว ยังอยู่ในช่องเบต้า
Ferran Maylinch

ข้อผิดพลาดเกี่ยวข้องกับความสามารถในการลงชื่อสาขากระพือไม่เกี่ยวกับเรื่องนี้
Yudhishthir Singh

1

โพสต์นี้ไม่ใช่คำตอบเพราะฉันกำลังดิ้นรนกับปัญหานี้เช่นกันและเขียนสิ่งนี้มานานแล้วโดยไม่มีการแก้ไข

ทั้งหมดที่ฉันต้องการคือการให้รายละเอียดเพิ่มเติมให้กับ OP และสมาชิกคนอื่น ๆ ที่นี่ ดังนั้นฉันมีทุกอย่างตามที่ระบุไว้

นี่คือสิ่งที่ฉันได้ลอง:

  1. Podfile ไม่ได้ถูกสร้างขึ้น (แม้หลังจากทำงานบน Simulator และอื่น ๆ ) และนั่นเป็นสาเหตุที่ฉันลองรวมแอพพลิเคชั่นตัวอย่างจาก Flutter Github

    • ล้างไดเรกทอรี iOS แล้ว
    • เพิ่ม Podfile
    • เรียกใช้อัพเดทพ็อด
    • คำเตือนที่แก้ไขแล้ว (มีการดีบัก Pod และกำหนดค่าการปล่อยเป็น Xcode)
    • เพิ่ม FLUTTER_ROOT ไปยังการตั้งค่าที่ผู้ใช้กำหนดเอง (เหมือนขาดอยู่) และฉันได้รับข้อผิดพลาด Xcode-backend.sh (จำไม่ได้ว่าขอโทษจริงๆ)
    • สร้างขึ้น

ดังนั้นขั้นตอนเหล่านี้ผลิต: นี้ข้อผิดพลาดในการจำลอง ข้อผิดพลาดลายเซ็นเดียวกันกับที่ไม่มี Pod บนอุปกรณ์จริง

  • ลบใบรับรองทั้งหมดจาก Keychain Access และเรียกคืนผ่าน Xcode

    ผลลัพธ์: ไม่มีอะไรเปลี่ยนแปลง

  • นำ Xcode, Pod และการตั้งค่าที่เกี่ยวข้องออก ลบใบรับรองแล้ว คืนค่าทุกสิ่งหลังจากรีบูต (การติดตั้งใหม่)

    ผลลัพธ์: อีกครั้งหรือสร้างด้วยพ็อดหรือไม่มีข้อผิดพลาดเดียวกัน

  • ฉันได้อัปเกรด Flutter เป็นช่อง dev (1.14.1) และใช้โครงการที่สร้างใหม่ flutter create .

    รันใหม่อีกครั้ง ด้วยฝักและไม่มี ยังคงเหมือนเดิม

  • นอกจากนี้ฉันได้ลองเปลี่ยนลายเซ็นจาก Apple Developer เป็น iOS Developer บนเป้าหมายทั้งหมด (รวม Pod)

    ในนี้ฉันมีข้อผิดพลาดเพราะฉันได้ลองลงชื่อ Pods-Runner (มีความหวังเล็กน้อย) แต่โดยรวมแล้วไม่มีอะไรใหม่

  • เมื่อฉันเปิดใช้งานอุปกรณ์บน iOS 13.3.1 Beta ฉันได้อัปเกรด Target เป็น 13.2 (สูงสุดแล้วในตอนนี้)

    Nope

  • ฉันเปิดใช้งาน macOS-builds และสร้างแอพ Mac แล้ว

    มันทำงานได้ตามที่ระบุไว้ทุกอย่างเป็นไร

เพื่อสรุป:

  • ปัญหานี้ไม่ได้ขึ้นอยู่กับโครงการ Pod / Non-Pod
  • ไม่มีอะไรเปลี่ยนแปลงเกี่ยวกับปัญหานี้ระหว่างกระพือเสถียรภาพล่าสุดและ dev ล่าสุด (ตามที่เขียนโพสต์)
  • ข้อผิดพลาดนี้ไม่ได้รับการแก้ไขโดยการติดตั้ง Xcode อีกครั้งและไม่เกี่ยวข้องกับใบรับรอง Keychain
  • ปัญหาจะปรากฏขึ้นเฉพาะเมื่อสร้างสำหรับอุปกรณ์ iOS ที่มีอยู่จริงเท่านั้น (iPhone X ในกรณีของฉัน) เครื่องมือช่วย (โดยไม่มี Pod) ทำงานได้ดี

Btw ทุกอย่างทำงานบน MacBook Pro 13 พร้อมติดตั้ง Catalina 10.15.3 และ Xcode 11.3.1

ทุก Run ทำงานด้วยแฟล็ก -v และไม่พบสิ่งที่น่าสงสัยในบันทึกระหว่างการสร้าง

อีกครั้ง ฉันขอโทษถ้าฉันทำอะไรผิดโพสต์นี้ แต่ฉันไม่ต้องการทำซ้ำปัญหานี้หรือแนะนำให้ OP แก้ไขเพราะโพสต์นี้ค่อนข้างยาว


ขอบคุณมากสำหรับคำตอบนี้ มันไม่ใช่ทางออก แต่มันมีประโยชน์มาก เห็นได้ชัดว่ามีบางอย่างผิดปกติกับ Flutter ดูเหมือนว่า Google จะไม่ทราบแน่ชัดว่า Apple คาดหวังอะไรหรือ Apple ไม่สนใจที่จะให้ Flutter ทำงานได้อย่างราบรื่น ... :)
Ferran Maylinch

อย่างไรก็ตามเมื่อวานนี้ฉันลอง Flutter บนเครื่อง Mac เครื่องอื่นด้วย Mojave (ของฉันมี Catalina) และฉันได้รับข้อผิดพลาดเดียวกัน
Ferran Maylinch

อาจเป็นสิ่งที่เกี่ยวข้องกับ CodeSign หรือ Flutter เราควรเปิดปัญหาgithub.com/flutter/flutter/issues
Emin Guliev

ใช่. ความคิดที่ดี. แจ้งให้เราทราบหากคุณทำหรือฉันสามารถทำเอง
Ferran Maylinch

0

ลองเปลี่ยนเป็นแชนเนลที่เสถียรผ่านflutter channel stableดำเนินการflutter upgradeแล้วไปยังแอปโปรเจ็กต์และรันflutter run


ขออภัยฉันได้รับข้อผิดพลาดเดียวกัน ฉันยังสร้างแอพพลิเคชั่นกระพือใหม่หลังจากเปลี่ยนเป็นแชนเนลที่เสถียร ฉันอัปเดตคำถามของฉันเพื่อแสดงว่าตอนนี้ฉันอยู่ในช่องสัญญาณที่มีความเสถียร
Ferran Maylinch

ฉันยังเพิ่มผลลัพธ์ของการรันกระพือ
Ferran Maylinch

0

เพียงเพื่อเรียกใช้แอปในโหมดดีบั๊กไม่จำเป็นต้องมีบัญชีแอปเปิ้ลจ่ายใด ๆ 1) เปิด xCode สำหรับโครงการนั้นและเลือกอุปกรณ์และเรียกใช้ในนั้น

เปิด XCode ของโครงการนั้นและตรวจสอบการตั้งค่าการสร้างเนื่องจากมีเส้นทาง FLUTTER_ROOT ถูกต้องหากไม่มีการสร้างรากที่พลิ้วและให้เส้นทาง


FLUTTER_ROOTฉันมีความถูกต้อง นั่นไม่ใช่ปัญหา ... :(
Ferran Maylinch

0

เปิด Xcode แล้วคลิกProduct -> Cleanหรือ ( CMD- Shift- K) หากไม่ได้ผลให้ลองทำดังนี้: https://macpaw.com/how-to/clear-xcode-cache

หากยังไม่ได้ผลโปรดแจ้งให้เราทราบ


มันไม่ทำงาน ฉันรู้ว่าฉันไม่มี Podfile ดังนั้นฉันจึงตรวจสอบสิ่งนี้: stackoverflow.com/questions/51599686/…
Ferran Maylinch

0

คุณตรวจสอบการเชื่อมโยงนี้ซึ่งอาจทำให้คุณผลลัพธ์ที่ต้องการhttps://github.com/flutter/flutter/issues/16507 แจ้งให้เราทราบหากการทำงานอาจเป็นปัญหาการลงนามโพสต์นี้จะทำให้คุณมีความคิดว่าเกิดอะไรขึ้น ขอบคุณ


ฉันไม่มี Podfile ดังนั้นฉันจึงตรวจสอบสิ่งนี้: stackoverflow.com/questions/51599686/… ยังไงก็ตามฉันไม่รู้ Podfile ที่ฉันต้องการ ฉันสร้างขึ้นมาแล้วแต่ยังคงได้รับข้อผิดพลาดเดียวกัน ดังนั้นฉันอาจไม่ต้องการ Podfile หรือปัญหาก็คือปัญหาอื่น
Ferran Maylinch

0

ตกลงมีเวลาสักครู่ในการสร้างคำตอบ:

การอ้างอิงจากคำตอบ Subaharan Velคำถาม: โฟลเดอร์ Flutter Podfile และ Pods ที่ไม่ได้สร้างในไดเรกทอรี ios และคำตอบที่แนะนำว่าการสร้าง iOS Simulatorสามารถสร้าง podfile ในตำแหน่งที่ไม่ถูกต้อง (ควรสร้างโดยตรงในไดเรกทอรี iOS โดยอัตโนมัติดังนั้นดูเหมือนว่า Podfile มีอยู่ที่นั่นลองค้นหาหรือลบไดเรกทอรี ios ทั้งหมดทำความสะอาดโครงการและสร้างใหม่อีกครั้งตรวจสอบให้แน่ใจว่านี่ไม่ใช่กรณีการสร้าง Podfile เพื่อเพิ่ม Pod ของ iOS ก่อนที่จะเพิ่มปลั๊กอิน Flutter ใด ๆ Podfile

โชคดีฉันหวังว่ามันจะช่วยคุณ


ไม่มีPodfileที่ใดก็ได้ ฉันวิ่งfind . -name Podfileแล้วก็ไม่ได้อะไรเลย ฉันลบiosไดเรกทอรีแล้ว แต่ตอนนี้ฉันจะสร้างใหม่ได้อย่างไร ถ้าฉันเรียกฉันได้รับข้อผิดพลาดflutter build ios Application not configured for iOS
Ferran Maylinch

@Ferran Maylinch เพียงทำซ้ำทุกขั้นตอนจาก Surbahan Vel (ลิงก์แรก) - เขาลบไดเรกทอรี ios และมันถูกสร้างขึ้นใหม่หลังจากทำความสะอาดโครงการ หากจำเป็นต้องเพิ่ม podfile ด้วยตนเอง (จากstackoverflow.com/a/53492243/7183675ลบpod ที่ไม่จำเป็นออกจากที่นั่นและตรวจสอบความคิดเห็นที่สองภายใต้คำตอบนี้) ในฐานะทางเลือกสุดท้าย - อาจช่วยได้ถ้าคุณเพิ่มแพคเกจอย่างน้อยหนึ่งแพคไปที่ pubspec เพื่อบังคับให้ Flutter สร้าง Podfile โดยอัตโนมัติ แม้ว่าแพ็คเกจนี้จะไม่ได้ใช้งานจริงๆ
Adam Tucholski

0

ไม่ใช่วิธีที่สมบูรณ์แบบ แต่สิ่งต่อไปนี้ใช้ได้กับฉัน

  1. อัปเกรดอุปกรณ์ของคุณเป็นiOS 13.4 เบต้า
  2. ทำการวิ่งกระพือ
  3. การสร้างควรจะประสบความสำเร็จ
  4. มันจะโยน"รุ่น Xcode ของคุณอาจจะเก่าเกินไปสำหรับรุ่นของ iOS"ข้อผิดพลาด
  5. แอปพลิเคชันได้รับการติดตั้งบนอุปกรณ์ หมายเหตุ: แอปพลิเคชันจะไม่เปิดโดยอัตโนมัติเมื่อกระบวนการสิ้นสุดลง
  6. คลิกที่ไอคอนแอพที่ติดตั้งบนอุปกรณ์ของคุณเพื่อเปิดแอพ

แม้ว่าคุณจะไม่เห็นอะไรเลยในหน้าต่างแก้ไขข้อบกพร่องเนื่องจากกระบวนการยุติลงหลังจากส่งข้อผิดพลาดไปแล้ว มันไม่ใช่ทางออกที่ดี แต่เป็นการแก้ปัญหาแน่นอนจนกว่าเราจะได้รับการอัปเดต Xcode ครั้งต่อไป 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.