Flutter: репозиторий спецификаций CocoaPods слишком устарел, чтобы удовлетворить зависимости
Текущий, я пытался добавить
firebase_core: ^0.5.0+1
и
firebase_crashlytics: ^0.2.1+1
пакеты в моем проекте flutter с последними версиями. Он работает без проблем в Android, но в iOS он не работает и выдает ошибку. Итак, как теперь запустить мой проект с последним пакетом в проекте iOS Flutter?
Я тоже пытался
pod repo update
но он все еще не работает
Я получаю эту ошибку
flutter run
CocoaPods' output:
↳
Preparing
Analyzing dependencies
Inspecting targets to integrate
Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)
Finding Podfile changes
A firebase_crashlytics
- Flutter
- contact_picker
- device_info
- file_picker
- firebase_auth
- firebase_core
- firebase_messaging
- flutter_keyboard_visibility
- flutter_local_notifications
- flutter_webview_plugin
- image_picker
- path_provider
- phone_number
- share
- shared_preferences
- sqflite
- url_launcher
Fetching external sources
-> Fetching podspec for `Flutter` from `Flutter`
-> Fetching podspec for `contact_picker` from `.symlinks/plugins/contact_picker/ios`
-> Fetching podspec for `device_info` from `.symlinks/plugins/device_info/ios`
-> Fetching podspec for `file_picker` from `.symlinks/plugins/file_picker/ios`
-> Fetching podspec for `firebase_auth` from `.symlinks/plugins/firebase_auth/ios`
firebase_auth: Using Firebase SDK version '6.26.0' defined in 'firebase_core'
-> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
firebase_core: Using Firebase SDK version '6.26.0' defined in 'firebase_core'
-> Fetching podspec for `firebase_crashlytics` from `.symlinks/plugins/firebase_crashlytics/ios`
firebase_crashlytics: Using Firebase SDK version '6.26.0' defined in 'firebase_core'
-> Fetching podspec for `firebase_messaging` from `.symlinks/plugins/firebase_messaging/ios`
firebase_messaging: Using Firebase SDK version '6.26.0' defined in 'firebase_core'
-> Fetching podspec for `flutter_keyboard_visibility` from `.symlinks/plugins/flutter_keyboard_visibility/ios`
-> Fetching podspec for `flutter_local_notifications` from `.symlinks/plugins/flutter_local_notifications/ios`
-> Fetching podspec for `flutter_webview_plugin` from `.symlinks/plugins/flutter_webview_plugin/ios`
-> Fetching podspec for `image_picker` from `.symlinks/plugins/image_picker/ios`
-> Fetching podspec for `path_provider` from `.symlinks/plugins/path_provider/ios`
-> Fetching podspec for `phone_number` from `.symlinks/plugins/phone_number/ios`
-> Fetching podspec for `share` from `.symlinks/plugins/share/ios`
-> Fetching podspec for `shared_preferences` from `.symlinks/plugins/shared_preferences/ios`
-> Fetching podspec for `sqflite` from `.symlinks/plugins/sqflite/ios`
-> Fetching podspec for `url_launcher` from `.symlinks/plugins/url_launcher/ios`
Resolving dependencies of `Podfile`
CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_1_6_1.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/1/6/1/DKImagePickerController/4.3.2/DKImagePickerController.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/1/6/1/DKImagePickerController/4.3.2/DKImagePickerController.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_0_3_5.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/3/5/Firebase/6.34.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_2_4_b.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/2/4/b/PhoneNumberKit/3.3.1/PhoneNumberKit.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/2/4/b/PhoneNumberKit/3.2.0/PhoneNumberKit.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_f_4_e.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/f/4/e/FMDB/2.7.5/FMDB.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_2_d_6.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/2/d/6/FirebaseMessaging/4.7.1/FirebaseMessaging.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/2/d/6/FirebaseMessaging/4.4.1/FirebaseMessaging.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_6_f_9.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/6/f/9/FirebaseAnalyticsInterop/1.5.0/FirebaseAnalyticsInterop.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_8_b_d.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/8/b/d/FirebaseCore/6.10.4/FirebaseCore.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_3_6_0.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/3/6/0/FirebaseInstanceID/4.8.0/FirebaseInstanceID.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_0_8_4.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/6.7.2/GoogleUtilities.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/6.7.2/GoogleUtilities.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/6.7.2/GoogleUtilities.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/6.7.2/GoogleUtilities.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/8/4/GoogleUtilities/6.7.2/GoogleUtilities.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_e_c_d.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/e/c/d/Protobuf/4.0.0-rc1/Protobuf.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/e/c/d/Protobuf/3.13.0/Protobuf.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_6_3_6.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/6/3/6/FirebaseAuth/6.9.2/FirebaseAuth.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/6/3/6/FirebaseAuth/6.5.3/FirebaseAuth.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_4_2_7.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/4/2/7/FirebaseAuthInterop/1.1.0/FirebaseAuthInterop.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_c_e_3.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/c/e/3/GTMSessionFetcher/1.4.0/GTMSessionFetcher.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/c/e/3/GTMSessionFetcher/1.4.0/GTMSessionFetcher.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_e_7_d.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/e/7/d/FirebaseCrashlytics/4.6.2/FirebaseCrashlytics.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/e/7/d/FirebaseCrashlytics/4.1.1/FirebaseCrashlytics.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_2_f_7.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/2/f/7/FirebaseInstallations/1.7.0/FirebaseInstallations.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_0_b_5.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/b/5/PromisesObjC/1.2.11/PromisesObjC.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_0_6_a.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/0/6/a/GoogleDataTransport/7.5.1/GoogleDataTransport.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_b_c_f.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/b/c/f/GoogleDataTransportCCTSupport/3.2.0/GoogleDataTransportCCTSupport.podspec.json exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: all_pods_versions_6_1_e.txt exists! Returning local because checking is only perfomed in repo update
CDN: trunk Relative path: Specs/6/1/e/nanopb/2.30906.0/nanopb.podspec.json exists! Returning local because checking is only perfomed in repo update
[!] CocoaPods could not find compatible versions for pod "GoogleDataTransport":
In snapshot (Podfile.lock):
GoogleDataTransport (= 7.4.0, ~> 7.4)
In Podfile:
firebase_crashlytics (from `.symlinks/plugins/firebase_crashlytics/ios`) was resolved to 0.2.1-1, which depends on
Firebase/Crashlytics (~> 6.26.0) was resolved to 6.26.0, which depends on
FirebaseCrashlytics (~> 4.1.1) was resolved to 4.1.1, which depends on
GoogleDataTransport (~> 6.1)
You have either:
* out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
* changed the constraints of dependency `GoogleDataTransport` inside your development pod `firebase_crashlytics`.
You should run `pod update GoogleDataTransport` to apply changes you've made.
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:328:in `raise_error_unless_state'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:310:in `block in unwind_for_conflict'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `tap'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `unwind_for_conflict'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:257:in `process_topmost_state'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/resolver.rb:94:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer/analyzer.rb:1074:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer/analyzer.rb:1072:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer.rb:414:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer.rb:239:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer.rb:238:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/installer.rb:160:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0.rc.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
Error output from CocoaPods:
↳
[!] Automatically assigning platform `iOS` with version `10.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
Error: CocoaPods's specs repository is too out-of-date to satisfy dependencies.
To update the CocoaPods specs, run:
pod repo update
Error running pod install
Error launching application on iPhone 11 Pro.
16 ответов
Что это значит для тебя?
Что ж, в основном ваша настройка CocoaPods сломается. Вам придется вручную удалить все локальные копии репозитория Specs и повторно клонировать новую версию репозитория Specs. Вы можете сделать это с помощью следующих команд:
После большого количества применений я нашел способ, который успешно решил эту ошибку, он выглядит примерно так
Это можно решить, выполнив следующие команды в терминале.
- Перейдите в папку / ios внутри вашего проекта.
- удалять
Podfile.lock
- Бежать
pod install --repo-update
- Бежать
flutter clean
- После завершения перестройте приложение Flutter:
flutter run
Это сработало для меня:
- порхать чисто
- удалить / ios / Pods
- удалить /ios/Podfile.lock
- флаттер паб получить
- из папки ios: pod install Выполнить
как я решаю это.
Перейдите в папку /ios внутри вашего проекта.
Удалить Podfile.lock (YourPoject/ios/Podfile.lock)
запустить cmd
pod repo remove trunk
Теперь вы полностью удалили стручок. Теперь беги
Здесь вы должны сделать это в соответствии с чипом вашего Mac, здесь я дал для обоих. спасибо, @Kamal Panara за определение этого
Для пользователей чипов Intel
Run pod install --repo-update
(Убедитесь, что ваш компакт-диск находится в каталоге iOS приложения флаттера) Для пользователей чипа M1
сначала установите ffi (если нет) В обычном терминале с помощью команды:
sudo arch -x86_64 gem install ffi
затем беги
Обратите внимание, если вы получаете сообщение об ошибке
[!] CocoaPods could not find compatible versions for pod "cloud_firestore":
In Podfile:
cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
Specs satisfying the `cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)` dependency were found, but they required a higher minimum deployment target.
[!] Automatically assigning platform `iOS` with version `9.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
теперь перейдите к подфайлу в строке, просто раскомментируйте строку и сделайте ее похожей на приведенную ниже.
platform :ios, '12.0'
Теперь повторно запустите этот cmd.
arch -x86_64 pod install --repo-update
Теперь на этот раз он будет работать нормально.
теперь беги
flutter clean
тогда
flutter run.
наслаждаться.
Это сработало для меня, НЕ нужно запускать флаттер в чистоте
- папка goto ios внутри вашего проекта
- удалить Podfile.lock
- запустить
flutter pub get
если твойPodfile
устарел или не существует. - запустить
pod install
Для меня просто удалить
podfile.lock
и повторный запуск с
flutter run
сделал трюк.
У меня была аналогичная проблема с тем же сообщением об ошибке при попытке добавить новые функции в мое приложение Flutter. Я использовал Flutter 3.0.5 и не хотел его обновлять, но постоянно сталкивался с этой ошибкой.
После недели попыток исправить проблему с небольшими изменениями здесь и там я наконец нашел решение, которое сработало для меня. Я выполнил следующую команду в своем проекте Flutter:
flutter upgrade && flutter clean && rm -rf ios/Pods && rm ios/Podfile.lock && flutter packages get && flutter pub get && cd ios && pod install && cd .. && flutter run
Эта команда обновляет Flutter, очищает проект, удаляет каталог Pods и файл Podfile.lock, а также переустанавливает пакеты и зависимости. Он также запускает команду «pod install» в каталоге ios для установки зависимостей iOS, а затем запускает команду запуска flutter для запуска приложения.
Это сработало для меня, и я смог добавить новые функции, не сталкиваясь с той же ошибкой снова. Я надеюсь, что это поможет другим, кто сталкивается с этой проблемой.
Если в вашей папке «Выполнить» нет /ios/Podfile.lock, вам просто нужно открыть папку IOS в терминале и запустить: $ pod repo update
Попробуйте выполнить следующие действия. Это сработало для меня:
порхать чисто
удалить /ios/стручки
удалить /ios/Podfile.lock
В папке ios выполните следующую команду:
pod install --repo-update
Наконец, выполните следующее:
flutter run
в моем случае это было исправлено:
прежде всего: удаление podfile.lock
затем работает:flutter clean
после этого:
flutter pub get
наконец: перейдите в папку iOS cd iospod install
и проект будет запущен сейчас
если вы открываете проект впервые: прежде всего: удалите podfile.lock
1=> удалить pub spec.lock, потому что иногда он проецирует кэшированные старые версии флаттера
2=> порхать чисто
3=> флаттер паб получить
4=> если у вас возникла какая-либо ошибка, связанная с этим:
Error: Field 'wLanguage' cannot be nullable or have type 'Null', it must be `int`, `double`, `Pointer`, or a subtype of `Struct` or `Union`
поэтому, пожалуйста, запустите:flutter pub upgrade
также обновить пакеты
и, наконец, это сработает
Эта проблема возникает, когда в файлах pod есть несоответствие.
Решение указывает сам Flutter в консоли отладки.
Распространенная ошибка, которую совершают люди, — запускать команду прямо в проекте. Вы должны запустить его в папке ios проекта.
- Укажите путь вашего терминала к папке ios. Просто добавь
/ios
после вашего пути к проекту. Например -cd /Users/workfolder/flutter_project/ios
- Запустите команду
pod repo update
или простоpod update
.
Он загрузит все зависимости и устранит все проблемы с модулем. Затем вы можете запустить свое приложение в обычном режиме.
В моем случае:
- Откройте студию Android для Mac.
- Перейдите в папку ios.
- Удалить podfile и podfile.lock
- Беги флаттер-паб.
- Перейдите в папку ios через терминал и запустите «pod install».
Удали эти 2 файла
- ios/pods
- ios/podfile.lock
- флаттер паб получить
затем перейдите в папку ios
- компакт-диск iOS
- установка модуля
подождите, пока модули установятся и запустят ваш проект
Это сработало для меня,
- Удалите файл Podfile.lock
- Выполнить -> флаттер паб войти в терминал
- Выполнить -> arch -x86_64 pod install в терминале. После этого все готово.
В моем случае эта проблема возникла из-за firebase_analytics.
Моя цель для iOS - 14.5, firebase_core - 1.6.0, а версия Flutter - 2.5.1.
Это мое решение.
- cd ios /
- пакет обновления репо
Удачного кодирования!
Вы должны добавить GoogleService-Info.plist в проект с помощью Xcode (добавление вручную через файловую систему не будет связывать файл с проектом).
Используя Xcode, откройте файл проекта ios/{projectName}.xcworkspace. Щелкните правой кнопкой мыши имя проекта в Xcode и выберите "Добавить файлы", затем выберите файл GoogleService-Info.plist, который вы загрузили из Firebase.
Убедитесь, что установлен флажок "Копировать элементы при необходимости".
Попробуйте выполнить следующие действия:
pod ios
pod cache clean --all
Pod clean
pod deintegrate
sudo gem install cocoapods-deintegrate cocoapods-clean
sudo arch -x86_64 gem install ffi
arch -x86_64 pod repo update
arch -x86_64 pod install