Отсутствует файл libarclite_iphoneos.a в Xcode 14.3 после обновления флаттера и Xcode

У меня есть проект флаттера, я пытаюсь запустить версию для iOS, но получаю сообщение об ошибке после обновления флаттера и Xcode до последней версии, я использую плагин ядра firebase

ошибка:

Could not build the precompiled application for the device.
Error (Xcode): File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

Error (Xcode): Linker command failed with exit code 1 (use -v to see invocation)

Подфайл:

# Uncomment this line to define a global platform for your project
# platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

Я также попытался установить все установленные модули:

pod deintegrate
rm Podfile.lock
rm -rf Pods

а затем обновить репозитории и установить модули, и я все равно получаю ту же ошибку, должен ли я переустановить xcode?

Флаттер-пакеты:

firebase_core: ^2.8.0
firebase_crashlytics: ^3.0.17
firebase_analytics: ^10.1.6
firebase_messaging: ^14.3.0

Любое обходное решение для этого? и спасибо за ваше время

Дубликат stackoverflow.com/questions/75574268/…

Paul Beusterien 04.04.2023 01:53

Здесь вы можете найти лучший способ решить эту проблему: stackoverflow.com/a/75924853/7048924

Edimar Martins 05.04.2023 14:50

Теперь эта проблема должна быть исправлена ​​в Flutter 3.7.10: github.com/flutter/flutter/wiki/…

Clifton Labrum 06.04.2023 06:44

Я сопровождающий Flutter, который исправил обе проблемы, которые путают в этих ответах SO, обе вызваны изменениями поведения в Xcode 14.3. Первоначально заявленное отсутствующее libarclite_iphoneos было исправлено во Flutter 3.7.11 github.com/flutter/flutter/issues/124340 . Другая не связанная с этим проблема — сбой архивации, который был отслежен на github.com/flutter/flutter/issues/123890 и исправлен во Flutter 3.7.10. В любом случае удалите все изменения, которые вы внесли в свой подфайл, и запустите flutter upgrade.

Jenn 12.04.2023 23:55

Так почему бы не закрыть его @PaulBeusterien?

miken32 13.05.2023 20:30

Отвечает ли это на ваш вопрос? Отсутствует файл libarclite_iphoneos.a (Xcode 14.3)

miken32 13.05.2023 20:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
59
6
28 547
18
Перейти к ответу Данный вопрос помечен как решенный

Ответы 18

post_install do |installer|
  installer.generated_projects.each do |project|
    project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
         end
    end
end
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

Попробуйте обновить файл ios/Podfile. Измените 13.0 на версию, которая у вас есть в верхней части файла.

Я попробую, но не могли бы вы подробно объяснить, что здесь происходит? Спасибо за ваше время

Ahmed Hnewa 31.03.2023 18:40

это решает проблему компиляции (мы используем 11.0, так как это наше минимальное требование), сборка, но затем происходит сбой в архиве с ios/../../../IntermediateBuildFilesPath/UninstalledProducts/‌​iphoneos/openssl_grp‌​c.f ramework" failed: No such file or directory (2)

Romk1n 31.03.2023 20:46

Почему этот воск не выдает Xcode 14.3?

Ahmed Hnewa 31.03.2023 21:03

Я попробовал это, и это работает, но я не уверен, что это хорошее решение, я не являюсь родным разработчиком iOS, и я знаком только с флаттером и родным Android, так что вы можете объяснить нам, что происходит на? в чем проблема, почему это происходит и как вы ее решили? Большое спасибо за уделенное время

Ahmed Hnewa 31.03.2023 21:51

Измените 13.0 на версию, которая у вас есть в верхней части файла. Например, у меня это было 13,7.

Damia Fuentes 06.04.2023 02:43

Я сопровождающий Flutter, который исправил эту проблему. Пожалуйста, не редактируйте свой подфайл, как описано в этом ответе. Вместо этого запустите flutter upgrade, чтобы получить обходной путь к изменению поведения Xcode 14.3 во Flutter 3.7.11 github.com/flutter/flutter/issues/124340.

Jenn 12.04.2023 23:57

Столкнулся с этой проблемой и пошел по тому же пути.

  1. Обновление цели развертывания до 13.0, к сожалению, решает проблему только для отладочной версии приложения. Тогда вы, по крайней мере, сможете снова запустить его в симуляторе.

  2. Архивация приложения (например, сборка ipa для отправки в магазин) по-прежнему не будет работать с Xcode 14.3 на данный момент из-за CocoaPods (Обновление с xCode 14.2 до 14.3 PhaseScriptExecution не удалось с ненулевым кодом выхода). К сожалению, (единственное?) решение на данный момент, похоже, понижается до 14.2, ожидая исправления со стороны CocoaPods (https://github.com/CocoaPods/CocoaPods/issues/11808#issuecomment-1481244508)

Обновлять Проблема вроде бы найдена и исправлена ​​(https://github.com/CocoaPods/CocoaPods/pull/11828), но еще не объединена — надеюсь, это произойдет в ближайшее время. Тем временем замена source="$(readlink "${source}")" на source="$(readlink -f "${source}")" в файлах ...framework.sh, похоже, помогает.

Я обновил тестовый iPhone до версии 16.4, и он не совместим с Xcode 14.2.

Ahmed Hnewa 31.03.2023 21:43

здравствуйте, подскажите пожалуйста подробнее что означает замена source = "$(readlink "${source}")" на source = "$(readlink -f "${source}")" где это изменить и как ? и как это можно сделать?

songhee24 03.04.2023 10:29

@songhee24 в вашем проекте перейдите в Pods -> Targets Support Files -> Pods-YourApp -> Pods-YourApp-frameworks в этом файле, найдите и замените, как говорит OP

Pasosta 04.04.2023 20:08

Проблемы с архивированием приложения не связаны с исходным libarclite_iphoneos (что должно быть исправлено в версии 3.7.11). Это произошло из-за изменения поведения Xcode 14.3, которое сломало скрипт CocoaPods github.com/CocoaPods/CocoaPods/issues/11808 . Во Flutter есть обходной путь, отслеживаемый на github.com/flutter/flutter/issues/123890 и доступный во Flutter 3.7.10.

Jenn 13.04.2023 00:02

Предоставление моей доли мыслей.

Я строю для MacOS, и Xcode жаловался на файл libarclite_macosx. Так похожий сценарий.

Решение состоит в том, чтобы изменить цель развертывания на RECOMMENDED_MACOSX_DEPLOYMENT_TARGET, что в настоящее время эквивалентно MacOS 10.13 для Xcode 14.3.

Это по существу устраняет зависимость этого ненужного файла, потому что

цель развертывания приложения достаточно современна, чтобы можно было полагаться на встроенный в систему ARC. Действительно, это всегда так с Xcode 14, где минимальная поддерживаемая цель развертывания — iOS 11.

Ссылка: https://developer.apple.com/forums/thread/725300

В вашем случае, я считаю, это означает обновить цель развертывания в Xcode и podfile.

В проекте ios нет RECOMMENDED_MACOSX_DEPLOYMENT_TARGET, только в проекте mac os, поэтому вы предлагаете обновить его вручную? вроде 13 или 14? потому что я сделал для файла pod и проекта и цели бегуна до 14, и я все еще получаю ту же ошибку

Ahmed Hnewa 02.04.2023 02:26

@AhmedHnewa Для iOS вам понадобится аналог iOS, RECOMMENDED_IOS_DEPLOYMENT_TARGET или вручную установите его эквивалентное значение. Проверьте файл модуля, а также конфигурацию проекта в Xcode.

Siyu 02.04.2023 18:51

@Siyu, не могли бы вы дать больше информации о том, что вы сделали, чтобы это заработало для macOS, в настоящее время я сталкиваюсь с этой проблемой, и это единственная ссылка на нее, которую я могу найти.

Jonas Smith 03.04.2023 20:49

@JonasSmith Измените цель развертывания на RECOMMENDED_MACOSX_DEPLOYMENT_TARGET в настройках проекта для всех ваших целей сборки. Если вы используете менеджер пакетов, вам также может понадобиться изменить соответствующие настройки.

Siyu 04.04.2023 21:49
Ответ принят как подходящий

Редактировать 4

если вы обновите свои флаттеры, какао-бобы и плагины флаттера, но проблема не исчезнет, Действительно простое и эффективное решение — отредактировать ваш подфайл.

 platform :ios, '14.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  target 'RunnerTests' do
    inherit! :search_paths
  end
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      if Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']) < Gem::Version.new('11.0')
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
      end
    end
    flutter_additional_ios_build_settings(target)
  end
end

Изменения, которые я сделал, заключаются в том, чтобы определить версию платформы ios как минимум 14 и убедиться, что все модули имеют минимальную версию 11, в противном случае проигнорируйте ее, изменения относятся ко второй строке и post_install

Редактировать 3:

Проблема возвращается снова во флаттере 3.10 с некоторыми пакетами, поэтому, пожалуйста, используйте способ, который я показываю ниже

Редактировать 2:

Попробуйте обновить флаттер, так как проблема должна быть исправлена ​​в 3.7.11.

flutter upgrade

Я исправил проблему, хотя я не уверен, что это хорошее решение, выполните следующее:

flutter clean
flutter pub get
cd ios/
pod deintegrate
pod install
pod repo update
pod install (again)

Просто откройте проект ios внутри проекта флаттера в Xcode, перейдите к модулям на вкладке папок (файлов), перейдите к целям, перейдите к целям (это модуль, я думаю, одна зависимость), который вызывает проблему, в моем случае FMDB и App auth, обновите минимальные развертывания для обоих с текущей версии (в моем случае 9.0) до 13.0 и попробуйте снова запустить приложение, создав его и запустив в Xcode или используя флаттер-запуск с выбранным устройством ios, и проблема должна уйти

однако иногда, когда вы очищаете проект во флаттере (используя flutter clean), он сбрасывает эти изменения, или когда вы удаляете модули и деинтегрируете Cocapods и переустанавливаете приложение, все изменения будут возвращены к значениям по умолчанию, это не совсем эффективное решение, но, по крайней мере, вы можете запустить приложение

и если проблема все еще существует, снова обновите минимальное развертывание для цели pods и запустите приложение с помощью Xcode, если у вас все еще есть проблема, попробуйте другие ответы или вы можете попробовать обновить cocapods с помощью

sudo gem install cocoapods

если ваш Mac-машина Apple Silicon (m1, m2), вам также нужно запустить

sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc

В официальной документации сказано, что

Обновлено: эта идея решения пришла ко мне, и все благодаря @Siyu

Если вы из будущего, вы можете попробовать обновить пакеты и кокаподы, флаттер и т. д.

Это изменение поведения Xcode 14.3 было устранено во Flutter 3.7.11, а не 3.7.10 github.com/flutter/flutter/issues/124340.

Jenn 12.04.2023 23:59

Спасибо за это - я просто хочу добавить, что я сделал обновление флаттера, затем установил модуль arch -x86_64 (на M1), и это все, что было необходимо по состоянию на 17 апреля 2023 г.

jwehrle 18.04.2023 05:07

Я исправил это, добавив следующее в раздел post_install моего файла модуля (замените цель развертывания на требуемую):

installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0'
      end
    end
  end
  # Check out: https://github.com/flutter/flutter/issues/123852
  # Workaround for Xcode 14.3:
  system('sed -i \'\' \'44s/readlink/readlink -f/\' \'Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\'')
...

Спасибо, но можете ли вы объяснить, что вы сделали с этим изменением?

Ahmed Hnewa 03.04.2023 17:59

Нет проблем, ищите эту строку в своем подфайле post_install do |installer| . Под этим добавить то, что я поставил выше. И замените IPHONEOS_DEPLOYMENT_TARGET на нужную версию. например 13,0

Chris 04.04.2023 18:19

Вы убедитесь, что все ваши модули настроены на 14.0, а затем добавляете рекомендуемый обходной путь, поскольку на данный момент в CocoaPods есть ошибка.

Chris 04.04.2023 18:21

Если вы обновились до xcode 14.3 и выше. Сделайте следующее:

Откройте файл project.pbxproj (ios/Pods/Pods.xcodeproj/project.pbxproj) и убедитесь, что для параметра «IPHONEOS_DEPLOYMENT_TARGET» установлено значение 11.0 или выше.

Чтобы сделать изменения постоянными, добавьте целевое развертывание в подфайл следующим образом:

platform :ios, '12.0' # set IPHONEOS_DEPLOYMENT_TARGET for the pods project
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
    end
  end
end

Затем запустите "flutter pub get".

Тебе должно быть хорошо идти.

Вдохновлено @dawnsong

Привет, не могли бы вы объяснить, что это изменение делает в терминах, понятных любому разработчику флаттера? почему проблема все равно возникает, мы здесь, чтобы понять, что мы делаем, а не просто решить проблемы и заставить их работать, спасибо за ваше время.

Ahmed Hnewa 04.04.2023 02:54

Проверьте цель развертывания iOS для установленного модуля, это должна быть как минимум iOS 11.0.

Модуль (выберите модуль) -> Настройка сборки -> Развертывание -> Цель развертывания iOS (минимум 11.0)

У меня была такая же проблема, когда я обновил свой Xcode до 14.3.

Я нашел быстрый обходной путь, обновив iOS Deployment Target моих установленных модулей. Я установил цель развертывания iOS на 11 для модулей, которые нацелены ниже 11. Это работает как шарм, но если вы переустановите свои модули, вам нужно будет снова сделать это изменение, поскольку модули будут установлены с их целями развертывания по умолчанию.

Затем я поместил скрипт установки в свой подфайл, как показано ниже. Затем я запускаю команду установки модуля в командной строке, чтобы отразить изменения. Примечание. Сначала я установил цель развертывания 11, но получил ошибку, потому что некоторым из моих модулей требуется как минимум 13, поэтому я изменил его на 13, потому что это повлияет на все ваши модули.

target 'YourApp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for YourApp
  pod ...
  pod ...
  
  post_install do |installer|
    installer.generated_projects.each do |project|
      project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
        end
      end
    end
  end
  
end

Я могу встроить свой проект в эмулятор, а также в свое собственное устройство, но не могу заархивировать его для отправки в AppStore. Зная, что это ошибка в Xcode 14.3, и ни одно из минимальных требований к изменению или другой метод модификации Podfile, я решил ее, используя 14.2, и пока игнорирую 14.3.

Установив свой Xcode из AppStore, самый медленный метод из всех, я использовал менеджер версий Xcode, который я нашел здесь https://betterprogramming.pub/easyly-swith-between-xcode-versions-b36f9f685979

Короче говоря, вот некоторые фрагменты шагов, которые я предпринял

Шаг 1: Установите диспетчер Xcode и установите Xcode 14.2 (он запросит ваши учетные данные AppleID)

gem install xcode-install
xcversion install 14.2
xcversion select 14.2

Шаг 2: Откройте Xcode-14.2.app из папки приложений MacOS.

Шаг 3: Если ваш проект работал в Xcode 14.2 раньше, надеюсь, это исправит его.

Обновление: проблема решена в более поздних версиях Flutter. бегать

flutter upgrade и повторная инициализация зависимостей

flutter clean
flutter pub get
cd ios/
pod deintegrate
pod install
pod repo update
pod install

если это не устранит ошибку, выполните шаги, указанные ниже.

Убедитесь, что вы обновили файлы модуля, после чего выполните шаги, указанные ниже:

Шаг 1

Отследить проблему, связанную с библиотекой здесь, в моем случае я получил ошибку для файла FMDB

Шаг 2

Измените версию iOS в соответствующем модуле с помощью раскрывающегося меню (маленькая синяя стрелка).

Шаг 3

Изменить настройку распространения в целевом модуле

Снова перестройте свое приложение в Xcode. и повторяйте процесс, пока не решить все проблемы с библиотекой

Это изменение будет работать временно, но будет перезаписано при следующем вызове pod install инструментом Flutter (если вы запустите flutter clean, добавьте новый плагин в свою спецификацию и т. д.). Вместо обновления вручную запустите flutter upgrade, чтобы получить обходной путь изменения поведения Xcode 14.3 во Flutter 3.7.11 github.com/flutter/flutter/issues/124340.

Jenn 13.04.2023 00:04

У меня проблема в 3.10.0 и это работает

ishak 16.05.2023 15:21

У меня не работало во Flutter 3.10.0, но кажется, что проблема была исправлена ​​​​во Flutter 3.10.1, по крайней мере, для меня! github.com/flutter/flutter/issues/124529

pbertsch 18.05.2023 04:28

да, я упомянул, что в верхней части ответа это разрешено в более новых версиях

Mashood .H 19.05.2023 01:29

Это работает: https://dev.to/curtlycritchlow/how-to-fix-missing-file-libarcliteiphonesosaxcode-143-4hki

что нужно будет делать каждый раз после запуска pod install

или вы можете просто добавить это в конец Podfile

post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
        config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
        config.build_settings['ENABLE_BITCODE'] = 'NO'
      end
    end
  end

Как я видел, проблема исходила из цели развертывания плагинов Flutter, которая все еще находится на уровне 8.0, что решается путем ручного обновления ее до более высокой версии с помощью Xcode, если вы хотите сделать это автоматически, вы можете поместить эти коды в ios /Подфайл в post_install

  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] == '8.0'
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
        end
      end
    end
  end

так это будет выглядеть так

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end

  # Here is the code I provide above ==================
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] == '8.0'
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
        end
      end
    end
  end
  #Here is the end ===================================
end

после этого запустите pod install в папке ios...

Что он делает? Код переопределит цель развертывания каждого модуля, которая все еще находится на уровне 8.0, на 11.0, по этой логике вы не будете беспокоить какие-либо плагины, которым может потребоваться конкретная цель развертывания (которая наверняка выше 8.0).

Я сопровождающий Flutter, который исправил эту проблему. Пожалуйста, не редактируйте свой подфайл, как описано в этом ответе. Вместо этого запустите flutter upgrade, чтобы получить обходной путь к изменению поведения Xcode 14.3 во Flutter 3.7.11 github.com/flutter/flutter/issues/124340.

Jenn 13.04.2023 00:07

Эй, я согласен, НО я обновился до флаттера 3.7.12, и проблема не решается для меня.

Robert Apikyan 30.04.2023 18:47

У меня была эта проблема со многими моими библиотеками, и я нашел решение, изменив минимальное развертывание библиотек. Я избавился от ошибки сборки, обновив минимальные развертывания с 8.0 до 11.0.

Для проектов Cordova добавьте следующую строку в config.xml под платформой ios.

<platform name = "ios">
<preference name = "deployment-target" value = "11.0" />
</platform>

Первоначально сообщаемая отсутствующая ошибка компиляции libarclite_iphoneos.a вызвана тем, что плагины Flutter имеют зависимость (модуль CocoaPods) с минимальной версией iOS <9.0.0. Кажется, Xcode 14.3 удалил библиотеку из своей цепочки инструментов, необходимой для создания этих более низких версий. Flutter 3.7.11 имеет обходной путь как для iOS, так и для macOS. Подробнее в https://github.com/flutter/flutter/issues/124340.

Другая (не связанная с этим) проблема, обсуждаемая в этих ответах, — это невозможность заархивировать приложение iOS или macOS. Это произошло из-за другого изменения поведения Xcode 14.3, которое сломало скрипт CocoaPods https://github.com/CocoaPods/CocoaPods/issues/11808 . Во Flutter есть обходной путь, отслеживаемый в https://github.com/flutter/flutter/issues/123890 и доступный в Flutter 3.7.10.

Если вы видите какую-либо проблему, запустите flutter upgrade, чтобы получить последнюю версию Flutter с этими исправлениями. Если вы все еще видите проблемы, отправьте новую проблему на GitHub, и я или другой сопровождающий Flutter посмотрю.

Вы можете выполнить следующие шаги, чтобы исправить это:

  1. Убедитесь, что на вашем компьютере установлена ​​версия флаттера 3.7.10 или выше.
  2. Для большинства людей только выполнение вышеуказанного шага, а затем восстановление после удаления каталога podfile, podfile.lock, pods и файла pubspec.lock должно исправить это.
  3. Если это все еще не исправлено для вас, это может быть причиной того, что у вас могут быть некоторые пакеты с целью развертывания iOS, установленной на 10 или ниже. Чтобы это исправить, перейдите в конец podfile и замените приведенный ниже код.
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

с кодом

post_install do |installer|
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
      end
    end
  end
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

и восстановить. Это должно исправить это наверняка.

Или вы можете обновить флаттер до последней версии, и он должен работать в большинстве случаев.

Ahmed Hnewa 14.04.2023 05:25

Да, это то, что я сказал в пункте № 2

Milan Agarwal 14.04.2023 06:53

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

(в моем случае APPNAME — RUNNER)

Найдите файл Pods-APPNAME-frameworks.sh в ios/Pods/Target Support Files/Pods-APPNAME/Pods-APPNAME-frameworks.sh:

Заменять:

if [ -L "${source}" ]; then
  echo "Symlinked..."
  source = "$(readlink "${source}")"
fi

с:

  if [ -L "${source}" ]; then
    echo "Symlinked..."
    source = "$(readlink -f "${source}")"
  fi

Обратите внимание, что был добавлен -f.

cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/

sudo mkdir arc
cd  arc
sudo git clone https://github.com/kamyarelyasi/Libarclite-Files.git .

sudo chmod +x *

Это сработало для меня.

Другие вопросы по теме