Невірно підписаний підпис під час спроби на пристрої 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 я налаштував команду (Personal Team) і сертифікат підпису (сертифікат Apple Development) здається нормальним, оскільки я можу встановити проект Hello world Swift на свій пристрій.

Примітка. Я не плачу за рахунок програми для розробників Apple . Це абсолютно необхідно для запуску програм 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 Це було в режимі налагодження. Я спробував режим випуску, і він виходить з тієї ж помилки.
Ферран Мейлінч

Спробуйте спочатку створити реліз, а потім запустіть його з xcode як випуску. flutter build ios --release
Sunkuu7

1) Ви спробували iOS Simulator 2) Чи розгорнули / запустили "Hello World" у програмі Swift / Xcode на свій пристрій iPhone? Особистий сертифікат повинен бути хорошим для розгортання на ваш телефон.
Моррісон Чанг

Відповіді:


8

EDIT: Це виправлено на iOS 13.4, який вийшов 24 березня.

Це регресія iOS 13.3.1, не пов'язана з Flutter. Мені вдалося відтворити збій без будь-якого коду Flutter або CocoaPods, створивши новий проект Xcode, додавши рамкову ціль і вибравши профіль надання персональної команди.

Дивіться випуск GitHub: https://github.com/flutter/flutter/isissue/49504#issuecomment-581554697 .

Помилка не повинна впливати на профілі та програми надання облікових записів розробників, які вже підписані та розповсюджені в App Store.

На жаль, єдиним рішенням може бути уникнення оновлення пристроїв розробки до 13.3.1, поки це не буде вирішено.


Дуже дякую! Я сподіваюся, що це виправлено як можна швидше!
Ферран Мейлінч

Отже, це питання на рівні iOS? Я також стикаюся з цим питанням на iPhone із версією iOS 13.3.1
Adromil Balais

Так, це проблема з iOS 13.3.1 і пізнішим відхиленням підписаних рамок профілю надання персональної команди. Це не характерно для Flutter. Посилання в коментарі GitHub посилаються на інші проекти, і мені легко вдалося відтворити з абсолютно новою рамкою в Xcode, не вбудовуючи Flutter.
Дженн

Я просто спробував зараз з iOS 13.4, і він працює! Я міг запустити додаток Flutter на реальному iPhone з Xcode, а також від IntelliJ IDEA. Я здогадуюсь, що це буде працювати і з командного рядка.
Ферран Мейлінч

4

Наскільки я бачу, це проблема сумісності Flutter з iOS 13.3.1. У моєму випадку моя програма ідеально працює на iPhone XR з iOS 13.3, але виходить з ладу на іншому iPhone XR з iOS 13.3.1. Неможливо перевірити симулятор, оскільки це додаток для камери, але він працює як на фізичних пристроях Android, так і на емуляторах Android.


Ти правий. Щойно перевірена на моєму iPad з 13.3. Мій телефон не працює з 13.3.1. Переходимо до оновлення до бета-2 і спробуйте :-)
Кен Хуй

13.3.1 Публічна бета-версія 2 має таку ж проблему.
Кен Хуй

3
  1. Чи погодились ви ліцензійну угоду xcode? якщо ні, спробуйте sudo xcodebuild -license.
  2. Чи оновлюються ваші стручки? якщо ні, перейдіть до папки ios у проекті флеттера у своєму терміналі та введіть pod installпотімpod update

Якщо це не працює, перейдіть до папки ios у вашому проекті, що розгортається, та відкрийте Runner.xcworkspace, двічі торкнувшись його. Це повинно виглядати так:

введіть тут опис зображення

Коли відкриється xcode, натисніть на Runner у верхньому лівому куті.

введіть тут опис зображення

Потім перейдіть до підпису та можливостей і в спадному меню "Команда" виберіть поле. Якщо такої немає, створіть обліковий запис.

введіть тут опис зображення

Потім у "Ідентифікаторі групи" має відображатися назва пакету програми. Додайте .app врешті-решт. Наприклад, якщо його "com.example.yourapp" зробіть його "com.example.yourapp.app" і натисніть клавішу Enter.

Натисніть кнопку відтворення у верхньому лівому куті, щоб запустити додаток на вибраному пристрої.


У мене немає Podfile. Я дивлюся на це повідомлення stackoverflow.com/questions/51599686 / ...
Ферран Maylinch

Встановіть cocoapods на свій апарат і запустіть команди pod у вашому ios-каталозі.
Yudhishthir Singh

У мене є какаоподи. Які команди струків я повинен використовувати?
Ферран Мейлінч

встановити pod, а потім оновити pod
Yudhishthir Singh

Я змінив свою відповідь, будь ласка, подивіться.
Yudhishthir Singh

1

Чи можете ви слідувати кроку один за одним

flutter channel master
flutter upgrade
flutter clean
flutter build ios

Я спробував це. Також на бета-каналі.
Ферран Мейлінч

Помилка пов’язана з можливостями підписання, мерехтіння гілка не має нічого спільного.
Yudhishthir Singh

1

Цей пост не є відповіддю, тому що я також борюся з цим питанням і пишу це, оскільки минув час без виправлень

Все, що я хочу, - це надати тут більше деталей для ОП та інших членів. Тож у мене все, як заявляла ОП.

Це те, що я спробував:

  1. Podfile не створюється (навіть після запуску на Simulator і т. Д.), І тому я спробував включити одне з прикладу Flutter Github.

    • Очищений каталог iOS
    • Додано підфайл
    • Оновлення для стручка.
    • Виправлені попередження (за умови конфігурації налагодження Pod та випуску Xcode)
    • Додано FLUTTER_ROOT до налаштованих користувачем налаштувань (оскільки він відсутній), і я отримував помилку Xcode-backend.sh (точно не пам'ятаю, вибачте)
    • Побудований

Отже, ці кроки створюють: ця помилка на Simulator. Ті ж помилки підпису, що і без 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 (максимальний доступний зараз?).

    Ні

  • Я ввімкнув macOS-збірки та створив додаток для Mac

    Він працює як індексований, все гаразд.

Підсумовуючи:

  • Ця проблема не залежить від проекту Pod / Non-Pod.
  • Нічого не змінилося в цьому питанні між останнім-стабільним трепетом і останнім розробником (як написано у публікації)
  • Ця помилка не виправлена ​​шляхом перевстановлення Xcode і не пов’язана з сертифікатами Keychain
  • Випуск з’являється лише під час створення лише фізичних пристроїв iOS (у моєму випадку iPhone X). Симулятор (без Pod) працює добре.

Btw. Все працювало на MacBook Pro 13 із встановленою Catalina 10.15.3 та Xcode 11.3.1.

Кожен Run був з прапорцем -v, і нічого підозрілого не було знайдено в журналах під час build s

Знову. Вибачте, якщо я щось неправильно розмістив, але я не хотів дублювати це питання або пропонувати ОП редагувати, оскільки ця публікація досить довга.


Дуже дякую за цю відповідь. Це не рішення, але це дуже корисно. Очевидно, щось не так з Flutter. Схоже, Google точно не знає, чого очікує Apple, або Apple не зацікавлений у тому, щоб Flutter безперебійно працював ... :)
Ferran Maylinch

До речі, вчора я спробував Flutter на іншому Mac, з Mojave (у мене є Каталіна), і я отримав ту ж помилку.
Ферран Мейлінч

Найімовірніше, це щось пов'язане з CodeSign або Flutter. Ми повинні відкрити випуск github.com/flutter/flutter/isissue
Емін Гулієв,

Так. Гарна ідея. Дайте мені знати, чи ви це зробите, чи я можу зробити це сам.
Ферран Мейлінч

0

Спробуйте переключитися на стабільний канал через flutter channel stable, виконати flutter upgradeта перейти до проекту програми та запуститиflutter run


На жаль, я отримую ту ж помилку. Я навіть створив нову програму флетера після переходу на стабільний канал. Я оновив своє запитання, щоб показати, що зараз я на стабільному каналі.
Ферран Мейлінч

Я також додав вихід пробігу.
Ферран Мейлінч

0

Просто для запуску програми в режимі налагодження не потрібен жоден яблучний платіжний рахунок. 1) Відкрийте xCode для цього проекту та виберіть пристрій та запустіть його.

Відкрийте XCode цього проекту і перевірте Налаштування збірки, якщо є FLUTTER_ROOT шлях правильний, якщо немає, створіть корінь флеттера і дайте шлях.


У мене правильний FLUTTER_ROOT. Це не проблема ... :(
Ферран Мейлінч

0

Відкрийте Xcode і натисніть на Product -> Clean( CMD- Shift- K). Якщо це не вийшло, спробуйте слідувати цьому: https://macpaw.com/how-to/clear-xcode-cache

Якщо це також не працює, будь ласка, повідомте мене про це.


Це не працює. Я зрозумів , що немає Podfile, тому я перевіряю це: stackoverflow.com/questions/51599686 / ...
Ферран Maylinch

0

Ви перевірили це посилання, яке може дати вам бажаний вихід https://github.com/flutter/flutter/isissue/16507 . дайте мені знати, якщо це працює, можливо, його питання підписання, ця публікація дасть вам уявлення про те, що йде не так. Дякую


У мене немає Podfile, тому я перевіряю це: stackoverflow.com/questions/51599686/… Як би там не було, я не знаю, який мені потрібний Podfile. Я створив його, але все одно отримую ту ж помилку. Тому, можливо, мені не потрібен Podfile або все-таки проблема інша.
Ферран Мейлінч

0

Гаразд, є момент для створення відповіді:

Спираючись на Subaharan Vel відповідь , запитання: Flutter Podfile та Pods папки, не створені в каталозі ios, і відповідь, що дозволяє створити підсистему iOS, щоб створити podfile у неправильному місці (його слід створити автоматично безпосередньо в каталозі iOS. Тому, мабуть, ваш Podfile Спробуйте знайти його або просто видаліть весь каталог ios, очистіть проект і відтворіть його. Також переконайтеся, що це не так. Створення підфілу для додавання стручків iOS перед додаванням будь-яких плагінів Flutter ніколи не зачіпляє плагінні стручки у наявний Podfile .

Удачі, сподіваюся, це допоможе тобі


Ніде його немає Podfile. Я біжу find . -name Podfileі нічого не отримую. Я видалив iosкаталог, але тепер, як його відтворити? Якщо я запускаю, flutter build iosя отримую помилку Application not configured for iOS.
Ферран Мейлінч

@Ferran Maylinch Просто повторіть усі кроки з Surbahan Vel (перша посилання) - він видалив ios каталог, і його відтворили після проекту очищення. При необхідності додати podfile вручну (від stackoverflow.com/a/53492243/7183675 , видалити непотрібні стручки звідти, а також перевірити другий коментар під цією відповіддю). В крайньому випадку - це може допомогти, якщо ви додасте принаймні один пакет до pubspec, щоб змусити Flutter автоматично створювати Podfile. Навіть якщо цей пакет насправді не використовується
Адам Тухольський,

0

Не ідеальне рішення, але наступне працювало для мене.

  1. Оновіть свій пристрій до бета-версії iOS 13.4.
  2. Виконайте трепетний біг
  3. Створення має бути успішним.
  4. Це призведе до помилки "Ваша версія Xcode може бути занадто стара для вашої версії iOS" .
  5. Додаток встановлюється на пристрій. Примітка. Програма не запуститься автоматично, оскільки процес закінчиться.
  6. Клацніть піктограму встановленого додатка на своєму пристрої, щоб запустити додаток.

Хоча у вікні налагодження ви нічого не зможете побачити, оскільки процес припиняється після видалення помилки. Це не ідеальне рішення, але, безумовно, рішення, поки ми не отримаємо наступне оновлення Xcode. 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.