Bir iOS cihazında denendiğinde çarpıntı imzası geçersiz


11

TL; DR

Aşağıdaki cevaba bakın: https://stackoverflow.com/a/60013390/1121497

Görünüşe göre iOS 13.3 ile ilgili bir sorun vardı çünkü 13.4'ü yeni yükledim ve şimdi Flutter iPhone'umda çalışıyor. :)


flutter createBir iOS cihazında (iPhone XS) yeni bir Flutter uygulaması (oluşturduğu örnek uygulama ) çalıştırmaya çalışıyorum . Xcode yüklemeyi başarıyor, ancak daha sonra bu mesajla çöküyor:

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'

Denersem flutter run, uygulama da açılır ve kilitlenir. Ve komut sonsuza dek beklemektedir:

$ 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'da bir Ekibi (Kişisel Ekip) yapılandırdım ve İmzalama Sertifikası (Apple Development sertifikası) iyi görünüyor çünkü cihazıma bir Hello world Swift projesi yükleyebilirim.

Not: Apple Developer Program'ın hesabını ödemiyorum . İOS cihazlarda Flutter uygulamalarını çalıştırmak kesinlikle gerekli mi?

Ben takip ettim MacOS talimatları ve flutter doctorben iOS için her şey ihtiyaç var diyor:

[] 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.

Gördüğünüz gibi, beta kanalıyla ilgili sorunları atmak için kararlı kanalı kullandım, ancak genellikle web için (iyi çalışır) çarpıntı oluşturmak için beta kanalında çalışıyorum.

İOS simülatöründe uygulama da iyi çalışıyor.

Son zamanlarda dosyaya sahip olmadığımı fark ettim ios/Podfile. Bu yazıyı bunun hakkında konuşurken buldum . Benim durumumda bunun önemli olup olmadığını bilmiyorum, ama bu Podfile'ı elle eklemeye çalıştım . Her neyse, aynı imza hatasını alıyorum.

Bundan hayal kırıklığına uğradım , şimdilik NativeScript'e geçtim .


Hata ayıklama veya serbest bırakma modunda gerçek cihazda çalıştırmaya mı çalışıyorsunuz?
Sunkuu7

@SlahLayouni Hata ayıklama modundaydı. Yayın modunu denedim ve aynı hatayla başarısız oldu.
Ferran Maylinch

Önce build release'ı deneyin, ardından xcode'dan release olarak çalıştırın. flutter build ios --release
Sunkuu7

1) iOS Simulator'ı denediniz mi 2) iPhone cihazınıza Swift / Xcode içinde bir "Merhaba Dünya" dağıttınız / çalıştırdınız mı? Kişisel sertifika, telefonunuza dağıtım için iyi olmalıdır.
Morrison Chang

Yanıtlar:


8

EDIT: Bu, 24 Mart'ta piyasaya sürülen iOS 13.4'te düzeltildi.

Bu, Flutter ile ilgisi olmayan bir iOS 13.3.1 regresyonudur. Yeni bir Xcode projesi oluşturarak, bir çerçeve hedef ekleyerek ve bir Kişisel Ekip ön hazırlık profili seçerek, çarpışmayı herhangi bir Flutter veya CocoaPods kodu olmadan yeniden üretebildim.

GitHub sorununa bakın: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 .

Hata, Geliştirici Hesabı ekibi sağlama profillerini veya App Store'da önceden imzalanmış ve dağıtılmış uygulamaları etkilememelidir.

Maalesef tek çözüm, geliştirme cihazlarını bu sorun çözülene kadar 13.3.1'e yükseltmekten kaçınmak olabilir.


Çok teşekkür ederim! Umarım bu en kısa sürede giderilir!
Ferran Maylinch

Peki bu iOS seviyesinde mi? Ayrıca iOS 13.3.1 sürümü ile iPhone'da bu sorunla karşılaşıyorum
Adromil Balais

Evet, bu, iOS 13.3.1 ve sonraki sürümlerde Kişisel Ekip sağlama profili imzalı çerçeveleri reddetmeyle ilgili bir sorundur. Flutter'a özgü değil. GitHub yorumundaki bağlantılar diğer projelere atıfta bulunuyor ve Flutter'ı gömmeden Xcode'da yepyeni bir çerçeveyle kolayca çoğaltabildim.
Jenn

Şimdi iOS 13.4 ile denedim ve işe yarıyor! Flutter uygulamamı Xcode'dan ve ayrıca IntelliJ IDEA'dan gerçek bir iPhone'da çalıştırabilirim. Komut satırından da çalışacağını tahmin ediyorum.
Ferran Maylinch

4

Görebildiğim kadarıyla iOS 13.3.1 ile bir Flutter uyumluluk sorunu. Benim durumumda, uygulamam iOS 13.3 ile iPhone XR'de mükemmel çalışıyor, ancak iOS 13.3.1 ile başka bir iPhone XR'de başlatıldığında çöküyor. Bir kamera uygulaması olduğu için simülatörde test edilemez, ancak hem fiziksel Android cihazlarda hem de Android emülatörlerinde çalışır.


Haklısın. 13.3 ile iPad'imle test ettim. Telefonum 13.3.1 ile çalışmıyor. Beta 2'ye güncelleyecek ve bir deneyin :-)
Ken Hui

13.3.1 Herkese açık beta 2 de aynı sorunu yaşıyor.
Ken Hui

3
  1. Xcode lisans sözleşmesini kabul ettiniz mi? değilse, deneyin sudo xcodebuild -license.
  2. Kapsülleriniz güncellendi mi? değilse, çarpıntı projesinde iOS klasörüne gezinme içinde senin terminali ve yazın pod installardındanpod update

Bu işe yaramazsa, çarpıntı projenizdeki ios klasörüne gidin ve üzerine iki kez dokunarak Runner.xcworkspace'i açın. Şöyle görünmelidir:

resim açıklamasını buraya girin

Xcode açıldığında, sol üstteki Runner'a tıklayın.

resim açıklamasını buraya girin

Ardından İmzalama ve Yetenekler'e gidin ve "Takım" açılır menüsünden bir alan seçin. Hiçbiri yoksa, bir hesap oluşturun.

resim açıklamasını buraya girin

Ardından "Paket Kimliği" nde, uygulamanızın paket adının gösterilmesi gerekir. Sonunda .app ekleyin. Örneğin, "com.example.yourapp" ifadesini "com.example.yourapp.app" yapın ve enter tuşuna basın.

Uygulamayı seçilen cihazda çalıştırmak için sol üstteki oynat düğmesine basın.


Pod dosyam yok. Bu
gönderiye bakıyorum

Cocoapod'ları makinenize kurun ve ios dizininizdeki pod komutlarını çalıştırın.
Yudhishthir Singh

Kokoododlarım var. Hangi kapsül komutlarını kullanmalıyım?
Ferran Maylinch

bakla yükleme ve sonra bakla güncelleme
Yudhishthir Singh

Cevabımda düzenlemeler yaptım, lütfen bir göz atın.
Yudhishthir Singh

1

Adım adım takip edebilir misin

flutter channel master
flutter upgrade
flutter clean
flutter build ios

Bunu denedim. Ayrıca beta kanalında.
Ferran Maylinch

Hata imzalama yetenekleriyle ilgilidir, çarpıntı dalının onunla hiçbir ilgisi yoktur.
Yudhishthir Singh

1

Bu yazı bir cevap değil çünkü bu sorunla da mücadele ediyorum ve bunu bir süredir düzeltmediğim için yazıyorum

Tek istediğim OP ve diğer üyelere burada daha fazla ayrıntı vermektir. OP'nin belirttiği gibi her şeyim var.

Ben denedim budur:

  1. Podfile (Simulator vb. Üzerinde çalıştıktan sonra bile) oluşturulmaz ve bu yüzden Flutter Github'dan bir çarpıntı örnek uygulamasından birini dahil etmeyi denedim.

    • Temizlenen iOS dizini
    • Bir Pod dosyası eklendi
    • Pod güncellemesi çalıştırıldı.
    • Sabit uyarılar (Xcode'a Pod hata ayıklama ve yayın yapılandırmaları sağlandı)
    • Kullanıcı Tanımlı ayarlara FLUTTER_ROOT eklendi (olmadığı gibi) ve Xcode-backend.sh hatası alıyordum (tam olarak hatırlamıyorum, üzgünüm)
    • İnşa edilmiş

Yani bu adımlar üretiyor: Simülatördeki bu hata. AynıFiziksel cihazda Pod olmadan imza hataları

  • Keychain Access'teki tüm sertifikaları sildi ve Xcode ile geri yükledi.

    Sonuç: Hiçbir şey değişmedi

  • Xcode, Pod ve bununla ilgili ayar kaldırıldı. Kaldırılan sertifikalar. Yeniden başlatıldıktan sonra her şey geri yüklendi (yeni kurulum)

    Sonuç: Yine, ne pod ile ne de aynı hataları sağlamadan oluşturma

  • Flutter'ı geliştirici kanalına (1.14.1) yükselttim ve kullanarak projeyi yeniden oluşturdum flutter create .

    Reran inşa ediyor. Bakla ve onsuz. Hala aynı

  • Ayrıca tüm hedefte Apple Developer'dan iOS Developer'a imza değiştirmeye çalıştım (Pod dahil)

    Bu bile bazı hatalar var çünkü ben bile Pods-Runner imzalamaya çalıştım (biraz umut vardı). Ama genel olarak yeni bir şey yok.

  • İOS 13.3.1 Beta sürümünde bir cihaz çalıştırdığımda, Target'u 13.2'ye yükselttim (şu anda maksimum kullanılabilir mi?).

    Hayır

  • MacOS-derlemelerini etkinleştirdim ve bir Mac uygulaması oluşturdum

    Girintili olarak çalışır, her şey yolunda.

Sonuç olarak:

  • Bu sorun Pod / Pod Olmayan projeye bağlı değildir.
  • En son kararlı çarpıntı ve en son geliştirici arasındaki bu konuda hiçbir şey değişmedi (yazı yazıldığı gibi)
  • Bu hata Xcode'un yeniden yüklenmesi ile düzeltilmemiştir ve Anahtarlık sertifikalarıyla ilgili değildir
  • Sorun yalnızca fiziksel iOS Cihazı (benim durumumda iPhone X) için oluştururken ortaya çıkıyor. Simülatör (Pod olmadan) iyi çalışır.

Btw. Her şey Catalina 10.15.3 ve Xcode 11.3.1 yüklü MacBook Pro 13'te çalışıyordu.

Her Run -v bayrağıyla yapıldı ve yapı s sırasında günlüklerde şüpheli bir şey bulunamadı

Tekrar. Bu yazı yanlış bir şey yaptıysanız üzgünüm ama bu yazı çoğaltmak veya bu yazı oldukça uzun olduğu gibi bir düzenleme OP önermek istemiyordu üzgünüm.


Bu cevap için çok teşekkür ederim. Çözüm değil ama çok yardımcı. Açıkçası, Flutter'da bir sorun var. Google, Apple'ın ne beklediğini tam olarak bilmiyor gibi görünüyor veya Apple, Flutter'ın sorunsuz çalışmasına izin vermekle ilgilenmiyor ... :)
Ferran Maylinch

Bu arada, dün Flutter'ı Mojave (benimki Catalina var) ile başka bir Mac'te denedim ve aynı hatayı aldım.
Ferran Maylinch

Büyük olasılıkla bu CodeSign veya Flutter'ın kendisiyle ilgili bir şeydir. Bir konu açmalıyız github.com/flutter/flutter/issues
Emin Guliev

Evet. İyi bir fikir. Bunu yapıp yapmadığımı bana bildir, yoksa kendim yapabilirim.
Ferran Maylinch

0

Aracılığıyla kararlı kanala geçmeye çalışın flutter channel stable, yürütün flutter upgradeve ardından uygulama projesine gidin ve çalıştırınflutter run


Ne yazık ki, aynı hatayı alıyorum. Kararlı kanala geçtikten sonra yeni bir çarpıntı uygulaması bile oluşturdum. Şimdi sabit kanalda olduğumu göstermek için sorumu güncelledim.
Ferran Maylinch

Çarpıntı çalışmasının çıktısını da ekledim.
Ferran Maylinch

0

Uygulamayı Hata Ayıklama modunda çalıştırmak için herhangi bir apple ücretli hesaba gerek yoktur. 1) Söz konusu proje için xCode'u açın ve cihazı seçin ve çalıştırın.

Söz konusu projenin XCode'unu açın ve FLUTTER_ROOT yolu doğru olduğundan Oluşturma Ayarları'nı kontrol edin, yoksa çarpışma kökü oluşturun ve yolu verin.


Benim bir hakikatim var FLUTTER_ROOT. Sorun bu değil ... :(
Ferran Maylinch


0

İstediğiniz çıktıyı sağlayabilecek bu bağlantıyı kontrol ettiniz mi https://github.com/flutter/flutter/issues/16507 . çalışırsa bir imza sorunu olabilir bana bildirin, bu yazı size ne yanlış gidiyor fikir verecektir. Teşekkürler


Podfile'ım yok, bu yüzden bunu kontrol ediyorum: stackoverflow.com/questions/51599686/… Neyse, Podfile'a ihtiyacım olduğunu bilmiyorum. Bir tane oluşturdum ama yine de aynı hatayı alıyorum. Bu yüzden belki bir Pod dosyasına ihtiyacım yok ya da yine de sorun başka bir sorun.
Ferran Maylinch

0

Tamam, cevap oluşturmak için biraz zaman ayırın:

Subaharan Vel cevabına dayanarak , soru: ios dizininde oluşturulmamış Flutter Podfile ve Pods klasörleri ve cevap, iOS simülatörü için yapının yanlış yerde pod dosyası oluşturabileceğini düşündürüyor (bu, doğrudan iOS dizininde otomatik olarak oluşturulmalıdır. Herhangi bir Flutter eklentisi eklemeden önce iOS bölmeleri eklemek için bir Pod dosyası oluşturma, hiçbir zaman eklenti bölmelerini takmayın. Bulmaya çalışın veya sadece tüm ios dizinini kaldırın, projeyi temizleyin ve yeniden oluşturun. mevcut Podfile .

İyi şanslar, umarım sana yardımcı olur


Hiçbir Podfileyerde yok . Koşuyorum find . -name Podfileve hiçbir şey alamıyorum. iosDizini kaldırdım ama şimdi nasıl yeniden oluşturabilirim? Eğer çalıştırırsam flutter build ioshatayı alırım Application not configured for iOS.
Ferran Maylinch

@Ferran Maylinch Surbahan Vel'in tüm adımlarını tekrarlayın (ilk bağlantı) - ios dizinini kaldırdı ve projeyi temizledikten sonra yeniden oluşturuldu. Gerekirse el ile pod dosyası ekleyin ( stackoverflow.com/a/53492243/7183675 adresinden , gereksiz bölmeleri buradan kaldırın, ayrıca bu cevabın altındaki ikinci yorumu da kontrol edin). Son çare olarak - Flutter'ı otomatik olarak Podfile oluşturmaya zorlamak için pubspec'e en az bir paket eklerseniz yardımcı olabilir. Bu paket gerçekten kullanımda olmasa bile
Adam Tucholski

0

İdeal bir çözüm değil ama aşağıdakiler benim için çalıştı.

  1. Cihazınızı iOS 13.4 beta sürümüne yükseltin .
  2. Çırpınma koşusu gerçekleştirin
  3. Yapı başarılı olmalıdır.
  4. Bu atacağım "Sizin Xcode sürümü iOS sürümü için çok eski olabilir" hata.
  5. Uygulama cihaza yüklenir. Not: İşlem sona erdiğinde uygulama otomatik olarak başlamaz.
  6. Uygulamayı başlatmak için cihazınızda yüklü uygulama simgesini tıklayın.

Bununla birlikte, hata atıldıktan sonra işlem sonlandığından hata ayıklama penceresinde hiçbir şey göremezsiniz. İdeal bir çözüm değil, ancak bir sonraki Xcode güncellemesini alana kadar kesinlikle bir çözüm. 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.