Флаттер: приложение не x86_64. Запуск lipo -info :, Приложение - архитектура: arm64 - PullRequest
0 голосов
/ 06 января 2020

Я построил свой проект на реальном устройстве iOS, и он работал нормально, но когда я попытался запустить его на симуляторе, это выдает мне ошибку архитектуры ниже. Кроме того, я столкнулся с той же проблемой ранее, и в то время приложение работало нормально для симулятора и выдало мне ту же ошибку для реального устройства.

 Non-fat binary /Users/dhavalkansara/Library/Developer/Xcode/DerivedData/Runner-dwtuugielmxutoatpwezjbbcemuy/Build/Products/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/App is not x86_64. Running lipo -info:
 Non-fat file: /Users/dhavalkansara/Library/Developer/Xcode/DerivedData/Runner-dwtuugielmxutoatpwezjbbcemuy/Build/Products/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/App is architecture: arm64
 Command /bin/sh failed with exit code 1

Я пробовал несколько доступных решений # 25260 , # 22749 , # 23917 на GitHub, но все еще сталкиваются с той же проблемой.

Ответы [ 2 ]

1 голос
/ 20 января 2020

Я не уверен в истинной причине этой проблемы. Я просто удалил проект и производные данные XCode из моей системы, а затем снова повторил тот же проект, и он отлично работал как на симуляторе, так и на реальном устройстве.

Итак, исходя из своего опыта, я предполагаю, что во время работы построить в режиме выпуска с помощью команды flutter run --release или путем изменения Xcode > Edit scheme > Run > Release могут быть некоторые изменения в настройках проекта по умолчанию, и из-за этого я получаю " Could not build the precompiled application for the device." эту ошибку.

Я также поднял выпуск на GitHub для того же.

0 голосов
/ 06 января 2020

Ваш проект, вероятно, имеет фазу сборки сценария выполнения для удаления архитектуры симулятора (во избежание отклонения AppStore).

Этот сценарий обычно представляет собой вариант этого: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/

Если сборка проекта запускает такой сценарий, сборка может завершиться ошибкой, если в качестве места назначения используется симулятор, а не реальное устройство.

Мое предложение: найдите этот сценарий (в Настройках цели -> Этапы сборки) и заключите его в:

    if [[ "$CONFIGURATION" == "Release" ]]; then
    [Put original script here]
    fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...