TL; DR
РЕДАКТИРОВАТЬ 2020-05-06 : Мое приложение корректно устанавливается с iOS 13.4, но через некоторое время приложение вылетает при запуске, и мне приходится переустанавливать его. Я не знаю почему. Может быть, после обновлений iOS?
Также см. Ответ ниже: https://stackoverflow.com/a/60013390/1121497
Полный вопрос
Я пытаюсь запустить новое приложение 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 Development) выглядит нормально, потому что я могу установить проект Hello world Swift на свое устройство.
Примечание. Я не плачу с учетной записью Apple Developer Program . Это абсолютно необходимо для запуска приложений 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 на данный момент.
flutter build ios --release
Ответы:
РЕДАКТИРОВАТЬ: это исправлено в iOS 13.4, который был выпущен 24 марта.
Это регрессия iOS 13.3.1, не связанная с Flutter. Мне удалось воспроизвести сбой без какого-либо кода Flutter или CocoaPods, создав новый проект Xcode, добавив целевой объект фреймворка и выбрав профиль обеспечения Personal Team.
См. Выпуск GitHub: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 .
Эта ошибка не должна влиять на профили подготовки группы разработчиков или приложения, которые уже подписаны и распространены в App Store.
К сожалению, единственный обходной путь может заключаться в том, чтобы избежать обновления устройств разработки до 13.3.1, пока это не будет решено.
источник
Насколько я вижу, это проблема совместимости Flutter с iOS 13.3.1. В моем случае мое приложение отлично работает на iPhone XR с iOS 13.3, но вылетает при запуске на другом iPhone XR с iOS 13.3.1. Невозможно протестировать в симуляторе, так как это приложение для камеры, но оно работает как на физических устройствах Android, так и на эмуляторах Android.
источник
sudo xcodebuild -license
.pod install
тоpod update
Если это не сработает, перейдите в папку ios вашего проекта флаттера и откройте Runner.xcworkspace, дважды нажав на него. Это должно выглядеть так:
Когда xcode откроется, нажмите на Runner в левом верхнем углу.
Затем перейдите в раздел «Подписание и возможности» и в раскрывающемся списке «Команда» выберите поле. Если ничего не существует, создайте учетную запись.
Затем в «Идентификаторе пакета» должно отображаться имя пакета вашего приложения. Добавьте .app в конце. Например, если его com.example.yourapp, сделайте его com.example.yourapp.app и нажмите enter.
Нажмите кнопку воспроизведения в левом верхнем углу, чтобы запустить приложение на выбранном устройстве.
источник
Можете ли вы следовать за шагом один за другим
источник
Этот пост не является ответом, потому что я тоже борюсь с этой проблемой и пишу это, так как прошло некоторое время без исправления.
Все, что я хочу, это предоставить более подробную информацию OP и другим участникам здесь. Так что у меня все как указано в ОП.
Вот что я попробовал:
Podfile не создается (даже после запуска на Simulator и т. Д.), И поэтому я попытался включить его из примера приложения Flutter от Flutter Github.
Удалил все сертификаты из Keychain Access и восстановил их через Xcode.
Удалены Xcode, Pod и настройки связанные с ним. Удалены сертификаты. Восстановил все после перезагрузки (свежая установка)
Я обновил Flutter до dev-канала (1.14.1) и восстановил проект, используя
flutter create .
Также я попытался изменить подпись с Apple Developer на iOS Developer для всех целей (включая Pod)
Когда я запускаю устройство на iOS 13.3.1 Beta, я обновил Target до 13.2 (максимум доступен прямо сейчас?).
Я включил сборку macOS и собрал приложение для Mac
Подводить итоги:
Btw. Все работало на MacBook Pro 13 с установленной Catalina 10.15.3 и Xcode 11.3.1.
Каждый запуск был с флагом -v, и ничего подозрительного не было найдено в журналах во время сборки
Снова. Прошу прощения, если я сделал что-то не так, опубликовав это, но я не хотел дублировать этот вопрос или предлагать OP отредактировать, поскольку этот пост довольно длинный.
источник
Попробуйте переключиться на стабильный канал через
flutter channel stable
, выполнить,flutter upgrade
а затем перейти к проекту приложения и запуститьflutter run
источник
Просто для запуска приложения в режиме отладки не требуется какой-либо платной учетной записи Apple. 1) Откройте xCode для этого проекта, выберите устройство и запустите его.
Откройте XCode этого проекта и проверьте параметры сборки, так как путь FLUTTER_ROOT указан правильно, если нет, создайте корень флаттера и укажите путь.
источник
FLUTTER_ROOT
. Это не проблема ... :(Откройте Xcode и нажмите
Product -> Clean
или (CMD
-Shift
-K
). Если это не сработало, попробуйте следующее: https://macpaw.com/how-to/clear-xcode-cacheЕсли это также не работает, пожалуйста, дайте мне знать.
источник
Вы проверили эту ссылку, которая может дать вам желаемый вывод https://github.com/flutter/flutter/issues/16507 . дайте мне знать, если это работает, может быть, это проблема подписания, этот пост даст вам представление о том, что происходит не так. Спасибо
источник
Хорошо, у меня есть время, чтобы создать ответ:
Основываясь на ответе Subaharan Vel , вопрос: папки Flutter Podfile и Pods не созданы в каталоге ios, а ответ предполагает, что сборка для симулятора iOS может создать подфайл в неправильном месте (он должен создаваться автоматически непосредственно в каталоге iOS. Поэтому, вероятно, ваш Podfile существует где-то там. Попробуйте найти его или просто удалите весь каталог ios, очистите проект и заново создайте его. Также убедитесь, что это не так. Создание Podfile для добавления модулей iOS перед добавлением любых плагинов Flutter никогда не подключает модули плагинов в существующий подфайл .
Удачи, надеюсь это тебе поможет
источник
Podfile
нигде. Я бегуfind . -name Podfile
и ничего не получаю. Я удалилios
каталог, но теперь, как я могу восстановить его? Если я бегу,flutter build ios
я получаю ошибкуApplication not configured for iOS
.Не идеальное решение, но следующее сработало для меня.
Хотя вы ничего не увидите в окне отладки, так как процесс завершается после выдачи ошибки. Это не идеальное решение, но определенно обходной путь, пока мы не получим следующее обновление Xcode.
источник