Класс AMSupportURLConnectionDelegate реализован в обоих

#ios #flutter

#iOS #флаттер

Вопрос:

Я пытаюсь создать приложение flutter на M1 Mac и получаю следующую ошибку.

 $ flutter build ios --release
Building XXX for device (ios-release)...
Automatically signing iOS for device deployment using specified development team in Xcode project: XXX
Running pod install...                                             13.2s
Running Xcode build...
Xcode build done.                                            6.7s
Failed to build iOS app
Error output from Xcode build:
↳
    objc[65074]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x1f66de518) and ?? (0x1160d82b8). One
    of the two will be used. Which one is undefined.
    objc[65074]: Class AMSupportURLSession is implemented in both ?? (0x1f66de568) and ?? (0x1160d8308). One of the two
    will be used. Which one is undefined.
    ** BUILD FAILED **


Xcode's output:
↳
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description
    error: The linked framework 'Pods_Runner.framework' is missing one or more architectures required by this target:
    armv7. (in target 'Runner' from project 'Runner')

Encountered error while building for device.
 

Вот мой flutter doctor -v

 flutter doctor -v
[✓] Flutter (Channel stable, 1.22.4, on macOS 11.0 20A2411 darwin-arm, locale en-AU)
    • Flutter version 1.22.4 at /Users/mlee/development/flutter
    • Framework revision 1aafb3a8b9 (3 weeks ago), 2020-11-13 09:59:28 -0800
    • Engine revision 2c956a31c0
    • Dart version 2.10.4


[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/mlee/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.51.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (2 available)
   

! Doctor found issues in 1 category.
 

Комментарии:

1. Я не использую Flutter, но я получаю это сообщение всякий раз, когда пытаюсь запустить clang с терминала. Однако он появляется только один раз за сеанс.

2. для меня изменение версии flutter решило проблему. от (2.8.1 -> до 2.2.2)

Ответ №1:

сначала попробуйте простой, документированный шаг

В терминале:

 sudo xcode-select -r
 

объяснение

Команда сбрасывает xcode на путь по умолчанию (см. Выдержку из документации ниже). Эта команда

  • решил проблему для меня и
  • избегается риск введения случайных, недокументированных идей от незнакомцев.

Эти преимущества делают его достойным первой попытки, тем более что документированные подходы обычно не будут мешать будущим обновлениям версий. Возможно, сначала потребуется отменить экспериментальные обходные пути.

Документация

 % xcode-select -h
Usage: xcode-select [options]

Print or change the path to the active developer directory. This directory
controls which tools are used for the Xcode command line tools (for example, 
xcodebuild) as well as the BSD development commands (such as cc and make).

Options:
  -h, --help                  print this help message and exit
[...]
  -r, --reset                 reset to the default command line tools path
 

Комментарии:

1. это работает для меня… хотя, добро пожаловать в новую эру «разработки программного обеспечения». Google для ошибки, введите что-то, не понимая этого. «Бум, Бам!» и это сделано… все, не зная, что на самом деле происходит. Мои коллеги тоже «программируют» таким образом, npm install XYZ и «Бум, Бам!» это сделано

2. @неполярность Я так сильно смеялся…

3. Исправил это PDQ … и избежал всех случайных предложений BS 🙂

Ответ №2:

У меня была такая же проблема. Я видел ту же ошибку при запуске flutter build ios .

Сообщение об ошибке отображалось красным цветом на моем терминале VS code, но это вводило в заблуждение. Я обнаружил, что это не главная проблема.

Фактическая проблема должна быть в следующем разделе ошибок.

Итак, пожалуйста, запустите flutter build ios --verbose и внимательно прочитайте вывод.

В моей ситуации были и другие проблемы, связанные с отказом flutter build ios . Проблемы были похожи на то, что забыли ввести GoogleService-Info.plist или целевая версия iOS меньше, чем требуется для пакетов flutter.

Комментарии:

1. Вы правы, в моем случае профиль отсутствовал.

2. Существует также уродливое «решение», только временное, и для того, чтобы закомментировать строку «import ‘dart: html’;» в main.dart

3. @ChiragKalsariya Можем ли мы не создавать код без добавления каких-либо профилей?

4. Да, для симулятора вы можете запускать / создавать без профиля.

5. Правильно. Мой профиль отсутствовал после обновления xcode.

Ответ №3:

установка ffi мне помогла. Я застрял за последние два дня, а затем я, наконец, нашел это решение.

arch -x86_64 sudo gem install ffi используйте это, если вы используете m1

sudo gem устанавливает ffi, если вы используете компьютеры Intel Mac

Спасибо, надеюсь, это сработает.

Комментарии:

1. Как пользователь m1, ffi прерывает команду «pod install», idk почему, но это происходит. Удаление исправляет мою проблему, просто хотел сказать :/

2. @bcihan удаление что устранило вашу проблему?

3. запуск этой команды arch -x86_64 sudo gem устанавливает ffi, а затем flutter clean amp;amp; flutter pub работает для меня

Ответ №4:

Получил ту же ошибку, также на macbook M1. Исправлено с помощью:

  1. flutter clean внутри каталога проекта.
  2. flutter build ios
  3. «Начать отладку» (vs code).

Комментарии:

1. Получение той же проблемы на MacBook M1. Но не может решить

2. @AbdullahKhan Вы нашли решение?

3. @Prasath да, это была проблема с интеграцией firestore, вам больше не нужно следовать руководству по интеграции firestore. После загрузки файла конфигурации. После этого не следуйте руководству.

4. это решило мою проблему. Я думаю, это действительно просто ошибка упаковки при переключении версий.

Ответ №5:

Я столкнулся с той же ошибкой, используя микросхему M1 на моем mac. Я создал новый проект и понял, что настройки сборки новых проектов исключают Any IOS Simulator SDK: arm64 i386

в разделе «Исключенные архитектуры»

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

Комментарии:

1. Итак, каково его решение?

2. перейдите в свой Xcode и убедитесь, что у вас те же настройки сборки, что и на изображении.

3. Это решило мою проблему с той же ошибкой, которую я получал и с React Native

Ответ №6:

Каким-то образом мне удалось устранить проблему, удалив flutter/bin/cache папку. Это может быть комбинацией других случайных вещей, которые я сделал, чтобы решить эту проблему.

Вещи, которые я пробовал.

  1. Запуск терминала с использованием Rosetta.
  2. Обновление версий зависимостей, а также запуск flutter pub upgrade
  3. Удалить ios/Pods amp; Podfile.lock
  4. Реорганизуйте xcconfig файлы — обязательно включите Generated.xcconfig
    • Я создал base.xcconfig и настроил его с помощью существующего Pods-Runner.release.xcconfig

Это мой base.xcconfig

 #include "Generated.xcconfig"
#include "Env-defaults.xcconfig"
#include "Env.xcconfig"
 

Комментарии:

1. Каким-то образом сбой сборки повторился после перезагрузки системы. Удалось исправить это с flutter clean помощью amp; rm -rf ~/development/flutter/bin/cache .

2. Где ваша development/flutter/bin/cache папка? Я не могу найти его в своем проекте. Или, может быть, это где-то еще?

3. Если вы следовали этому руководству, flutter.dev/docs/get-started/install/macos#get-sdk . Он должен находиться в вашем домашнем каталоге. Так что это ~/development/flutter/bin/cache

4. О, хорошо, понял. Я должен зайти в свой каталог flutter SDK. Спасибо.

5. @Prasath Сообщение об ошибке, вызванное различными причинами, я опубликовал два ответа, которые устраняют конкретную проблему. Обратите больше внимания на фактическую ошибку, которая вызывает AMSupportURLConnectionDelegate , например, в моем вопросе выше, ошибка error: The linked framework 'Pods_Runner.framework' is missing one or more architectures required by this target: armv7. (in target 'Runner' from project 'Runner')

Ответ №7:

Я заменил все файлы / app / ios на новые из нового приложения, созданного flutter create

Ответ №8:

НАКОНЕЦ-то это заработало — вот что мне нужно было сделать, начиная с корня проекта:

 cd ios
rm -rf ~/Library/Caches/CocoaPods
rm -rf Podfile.lock
rm -rf Pods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
 

Затем:

 pod deintegrate
pod setup
pod install
 

Комментарии:

1. Пожалуйста, не делайте этого. Это ужасное решение (если вообще решение)..

2. @MuhammadbinYusrat объясните? Мы удаляем модули, кэш Xcode затем сбрасываем модули.

3. Потому что проблема явно в файлах проекта. Вы можете просто flutter create testapp и запустить его (совершенно новое приложение), и оно будет работать нормально. Ваш совет заключается в удалении многих файлов, которые необходимо будет повторно загрузить без причины.

4. Для тех, кто реализует — все эти файлы по сути являются кешем, и их повторная установка никогда не является для меня проблемой — решение, упомянутое в комментариях выше, не сработало для меня.

Ответ №9:

Для тех, кто сталкивается с этой проблемой на M1, запустите iTerm / Terminal из Rosetta. Следуйте приведенным ниже командам.

Установка Rosetta,

 softwareupdate --install-rosetta
 

Запуск из Розетты,

  1. Перейдите в папку приложений.
  2. Щелкните правой кнопкой мыши на iTerm >> Get Info .
  3. Проверьте open using Rosetta .

Вот и все, откройте терминал, проблема будет исправлена.

Комментарии:

1. кажется, это исправило это для меня. Я не использую никаких наборов / инструментов для разработки iOS или Android, просто использую iTerm на процессоре iMac M1. Случайно, при использовании завершения табуляции в iTerm я получал это предупреждающее сообщение. Следуя вашему совету, он заставил его исчезнуть. Спасибо!

2. Это работает правильно. Однако это не основная причина, теперь npm работает корректно. Спасибо.

Ответ №10:

Получил ту же проблему на Macbook M1. Изменил цель развертывания iOS для запуска проекта на 10.0. Исправлена проблема.

Ответ №11:

Обычно он работает после этих шагов

  1. flutter clean
  2. flutter pub get
  3. cd ios
  4. pod install
  5. cd ..
  6. flutter build ios

На этот раз это сработало для меня с дополнительной командой flutter upgrade pub , поскольку я использовал более новую версию flutter со старым файлом pub. Я надеюсь, что это может помочь кому-то, использующему процессор M1.

Ответ №12:

Я решил эту проблему!

  1. перестроить новый проект flutter
  2. открыть терминал
  3. переместить в каталог ios (проект)
  4. инициализация модуля
  5. модуль установки
  6. измените файл ios / Podfile в качестве этого содержимого

ссылка : https://github.com/t-sakurai816/flutter_todo_new/blob/main/ios/Podfile

Ответ №13:

Я перепробовал почти все, но у меня ничего не получилось.

За исключением этого —

Откройте свой podfile и выполните следующие действия

изменить

 use_frameworks!
 

Для

 use_frameworks! :linkage => :static
 

Комментарии:

1. если бы вам пришлось перейти use_frameworks! на use_frameworks! :linkage => :static правильное исправление, было бы удалить Flutter.framework папку under ios/Flutter . со мной однажды случилась та же проблема, и использование use_frameworks! :linkage=> :static создаст вам проблему при попытке создать приложение для app Store.

2. Я пробовал, и у меня это никогда не получалось! Исправление, о котором я упоминал, сработало для меня, по крайней мере, очаровательно хорошо.

Ответ №14:

Я продолжал сталкиваться с аналогичной проблемой и с React Native на M1, и я оставляю это здесь, если кому-то это может понадобиться.

Что сработало для меня, так это необходимость запуска проекта из встроенного терминала с включенной Розеттой. Все связанные с проектом конфигурации, установки npm и pod установки должны были произойти на встроенном терминале, чтобы ошибка исчезла

 npm install
cd ios amp;amp; pod install amp;amp; cd ..
npm run ios
 

Комментарии:

1. Я видел аналогичное предупреждение в (не реагирующем) собственном проекте iOS при сборке на Apple M1. При сборке в терминале с поддержкой Rosetta предупреждение исчезло.

Ответ №15:

Откройте ios / Runner.xcworkspace в xCode и попробуйте запустить его на своем iPhone, и ошибка должна сообщить вам о вашей проблеме.

В моем случае мне пришлось войти в систему с моим apple ID в Xcode и загрузить сертификаты.

Комментарии:

1. Мне просто нужно было запустить xcode, согласиться с условиями и позволить ему обновиться. Я вышел из xcode, как только попал в диалоговое окно проекта, и после этого проблема исчезла.

Ответ №16:

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

Для начала попробуйте создать приложение для Android вместо iOS. Это сообщит вам, является ли ошибка специфичной для iOS или это что-то другое. После сборки для Android у меня появилась ошибка «участник не нашел корень пакета». Чтобы исправить это, я сделал

 flutter pub upgrade
 

Я использую Apple silicon, я выполнил эту команду

 sudo gem install ffi
 

На пути к исправлению этого я понял, что использую системный ruby, когда я должен использовать установленный на дому ruby

 brew install ruby
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
 

удалите все cocoapods из gem

 gem list --local | grep cocoapods | awk '{print $1}' | xargs sudo gem uninstall
 

установите cococapods из brew

 brew install cocoapods
 

затем попробуйте перестроить свой проект

Ответ №17:

Удалите строку
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"

в ios/flutter/Debug.xcconfig

Работает для меня

Комментарии:

1. Когда я выполняю запуск flutter после удаления этой строки, строка добавляется повторно при запуске pod install

2. Попробуйте удалить файл (debug.xcconfig) и проверьте, если не исправлено, дайте мне знать вашу версию flutter?

3. Я пытался, но получил ту же ошибку, Flutter 2.1.0-11.0.pre.145 • channel master • https://github.com/flutter/flutter.git Framework • revision a0ba646408 (10 hours ago) • 2021-03-05 22:09:03 -0500 Engine • revision f751d04fa0 Tools • Dart 2.13.0 (build 2.13.0-107.0.dev)

4. Debug.xcconfig — это автоматически сгенерированный файл, и ваше редактирование будет перезаписано при следующей сборке приложения.

Ответ №18:

Мое решение этой проблемы было:

  1. Удалить / flutter/ iOS /Podfile amp; /flutter/iOS /Pods amp; flutter/iOS /Podfile.lock
  2. очистка от флаттера
  3. Наслаждайтесь 🙂

Ответ №19:

Я исправил проблему, сделав это:

 cd ios
pod init
pod install
 

надеюсь, это сработает и для вас

Ответ №20:

Похоже, эта ошибка может возникнуть по разным причинам, и этот «Вывод ошибки из сборки Xcode:» не отражает фактическую ошибку.

Я смог устранить эту проблему, открыв ios / Runner.xcworkspace с помощью Xcode и выбрав правильную команду в разделе «Подписание и возможности». Затем я смог запустить flutter run без получения этой ошибки

Комментарии:

1. Можем ли мы не создавать код, не выбирая «команду» в Xcode?

Ответ №21:

Если вы видите дополнительную ошибку, которая гласит: error: no such module 'Flutterz' , перейдите в свой файл AppDelegate.swift и измените import Flutterz на import Flutter .

После исправления выше я больше не получал AMSupportURLConnectionDelegate реализован в обоих сообщениях об ошибках.

Ответ №22:

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

Первой причиной было то, что одна из библиотек, которые я использовал, устарела — после обновления с 1.x до 2.x. На странице pub.dev не было видно, что этот плагин устарел, только на соответствующей странице Github. Это была какая-то библиотека Google. Как только плагин был прокомментирован, он сработал.

Второй случай было намного сложнее найти. Это произошло после обновления до 2.2.0, и некоторые из моих изображений внезапно перестали работать. Мне нужно было прокомментировать их, затем ошибка исчезла. Понятия не имею, почему эти PNG внезапно перестали работать, но он воспроизводим. Каждый раз, когда вы обнаруживаете изображение, которое не работает, запустите flutter clean, после чего выполните pub get и только ПОСЛЕ этого снова запустите сборку на симуляторе.

Надеюсь, это кому-то поможет, это стоило мне более 5 дней…

Ответ №23:

Для людей, использующих чипы M1:

  1. В Xcode, target Runner, перейдите к настройкам сборки
  2. Проверьте архитектуру и выберите стандарт, если выбрана архитектура arm.

Ответ №24:

У меня была та же проблема.

Я исправил проблему:

  1. Переименуйте папку ios в ios.old
  2. Я создал новый проект flutter и скопировал папку ios в свой проект
  3. Я скопировал файл info.plist из ios.из старой папки в новую папку ios
  4. Я думаю, что было бы необходимо только скопировать изображения значков.

Ответ №25:

В моем случае проблема была вызвана недопустимым номером версии выпуска, он должен содержать только цифры, без строк

Ответ №26:

Если вы установили cocoapods с использованием gem, а также home-brew, пожалуйста, удалите установленные gem cocoapods.

На моем Mac mini m1 cocoapods, установленные с помощью «gem», не работали, поэтому были установлены из самогонки. Из-за этого система имела обе версии. Из-за этого у меня возникла такая же проблема при каждом запуске команды flutter.

После удаления « sudo gem uninstall cocoapods » эта ошибка исчезла.

Ответ №27:

Попробуйте выбрать для установки сборки только в сценарии запуска на вкладке Этапы сборки.

введите описание изображения здесьЯ изменил

Ответ №28:

Другим исправлением может быть

 flutter clean
rm -rf ios/Flutter/Flutter.framework
cd ios
pod install
 

Благодаря https://github.com/CocoaPods/CocoaPods/issues/7234#issuecomment-606591037

Ответ №29:

В моем случае решение состояло в том, чтобы прокомментировать эту строку podfile:

 # platform :ios, '14.3'
 

Ответ №30:

Это случалось со мной несколько раз. Почти всегда это было связано с неправильным именем ресурса или указывало на неправильный пакет ресурсов.