Flutter - Створення для iOS, але пов'язаний та вбудований фреймворк "App.framework" був побудований для iOS Simulator


13

Після оновлення до бета-версії Catalina 10.15.4 з бета-версією Xcode 13.4, яка також оновила Simulator до 13.4 (921.4).

Додаток компілюється та працює правильно на фізично підключеному пристрої, але жоден тренажер будь-яких пристроїв не може пройти цю стадію.

Я отримав помилки

Створення для iOS, але пов'язаний і вбудований фреймворк "App.framework" був побудований для iOS Simulator.

або

Створення для iOS Simulator, але для iOS був побудований пов'язаний та вбудований фреймворк "App.framework".

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

Як я можу це виправити?

Відповіді:


42

Xcode 11.4 змінив спосіб з'єднання та вбудовування рамок, і у вас можуть виникнути проблеми з перемиканням між пристроями iOS та тренажерами. Flutter v1.15.3 і пізнішої версії автоматично перенесуть ваш проект Xcode.

Щоб відклеїтись, дотримуйтесь інструкцій нижче;

  • Швидке виправлення (змусити ваш тренажер працювати)

rm -rf ios/Flutter/App.framework

  • Офіційні рекомендовані кроки для переміщення вручну

    1. У каталозі програм Flutter відкрийте ios / Runner.xcworkspace у Xcode.
    2. На панелі Навігатор знайдіть групу Flutter та видаліть App.framework та Flutter.framework. введіть тут опис зображення
    3. У налаштуваннях цільової збірки Runner Фази збірки> Посилання бінарних із бібліотеками підтверджують, що App.framework та Flutter.framework більше не є. Підтвердити також у фазах збірки> Вставити рамки.

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

  1. Змініть параметри збірки цілі Runner Фази збірки> Тонкий бінарний скрипт наступним чином:

    / bin / sh "$ FLUTTER_ROOT / пакети / flutter_tools / bin / xcode_backend.sh" вставити

    / bin / sh "$ FLUTTER_ROOT / пакети / flutter_tools / bin / xcode_backend.sh" тонкий

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

  1. У розділі Налаштування збірки цільового бігуна > Інші прапорці Linker

    (OTHER_LDFLAGS) додати $ (успадкований) -framework Flutter

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

Сподіваюся, це допомагає!


Питання було нещодавно закрите і отримало багато відгуків, оскільки воно незрозуміло і було розміщено на Meta . Схоже, ви розумієте, про що йдеться, чи маєте ви уявлення про те, як відредагувати його у форму, щоб це було не зовсім так незрозуміло?
Окреме виконання

1
Працює як шарм!
Гедріус Шлікас

3

Xcode 11.4 змінив спосіб з'єднання та вбудовування рамок, що спричиняє проблеми перемикання між пристроями iOS та тренажерами.

Дотримуйтесь офіційного керівництва щодо міграції проекту.


Дотримуючись офіційного керівництва, мій додаток все ще не завантажувався на мій фізичний пристрій. Лише після того, як дотримуватися інструкції, flutter cleanкілька разів запустившись , видаливши Pods/папку та Podfile.lockпотім перевстановившись за допомогою pod installпапки ios, вона нарешті спрацювала.
Метью Лернер

2

Оновлено до Xcode 11.4. Ios 13.4, Iphone X. Додаток просто отримує дані за допомогою API. Додаток запущено на білому екрані, а потім остаточно виходить з ладу, як на тренажері, так і на пристрої.

Я дотримувався офіційного керівництва (я також rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration . Я бігав кілька разівflutter clean

Я також спробував видалити Pods / folder і Podfile.lock, а потім перевстановити за допомогою pod installпапки ios.

Оскільки я використовую дані асинхронізації, я також додав як основний перший рядок ()

WidgetsFlutterBinding.ensureInitialized();

Немає допомоги, додаток не запустив жоден симулятор.

Потім я видалив ios/і android/папки. Після цього в папці проекту я запустив команду, flutter create .яка відновлює згадані папки.

Після цього мій додаток почав чудово як на тренажері, так і на пристрої. Я сподіваюся, що це допоможе іншим. ПРИМІТКА!! якщо ви внесли будь-які зміни в ці папки вручну, будь ласка, заздалегідь створіть резервну копію або введіть.


1

Після кількох днів, що намагаються знайти рішення для тестування програми Flutter на пристрої iOS, я нарешті знайшов таке:

flutter clean
flutter build ios

-Закрийте xCode та запустіть додаток на своєму пристрої.


Все ще не працює для мене. робить те ж саме, коли я намагаюся запуститиflutter build ios
Реймонд Атівіє,

3
Перейдіть за цим посиланням: flutter.dev/docs/development/ios-project-migration
gordonturibamwe

так, ось, що я в кінцевому підсумку робив подяку
Raymond Ativie

0

Я спробував рішення на офіційному веб-сайті Flutter, але це не спрацювало для мене, тому я знайшов тимчасове рішення, яке працювало на мене, але це знадобило мені кілька важких робіт: Ось мій приклад з проектом stuck_framework, який є свіжим новий проект (перший раз запустіть на тренажері)

  1. Я створив 2 папки всередині проекту
    "Fioster", який називався "ios_simulator" та "ios_real_device". введіть тут опис зображення

  2. Тепер моя перша збірка була для тренажера, потім я хочу перейти на реальний пристрій, я переміщу папку ios всередині проекту Flutter до "ios_simulator"

  3. Я відкриваю проект із кодом візуальної студії та запускаю "flutter create". і тепер я виберу справжній пристрій для відновлення проекту (якщо ваш тренажер в Інтернеті, будь ласка, вийдіть). введіть тут опис зображення
  4. Тепер я чекаю завершення збірки і запускаю на реальному пристрої без будь-яких помилок. Зараз у мене є 2 ios проекту 1 для тренажерів та один для реальних пристроїв.
  5. Наступного разу, коли я хочу знову запустити на тренажері, я просто видаляю поточну папку ios і копіюю папку ios, яку я помістив у "ios_simulator", назад у папку проекту. Сподіваюся, що це допоможе

0

Вручну оновлення флетера до версії 1.15 також вирішило цю проблему. Біг flutter version v1.15.17мені допоміг.

Крім того, ви можете перейти на betaабо на devканали, запустивши flutter channelкоманду, але не забудьте перевірити свій код проти всіх змін BC ...


0

У моєму випадку працює лише тренажер (налагодження). якщо ви хочете розгорнути свій додаток у магазині додатків (випуск), я настійно рекомендую оновити верблюжу версію за допомогою

flutter version v1.15.17

інакше ви зіткнетеся з розбитою програмою з білим екраном.

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


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