Помилка: "Пісочниця не синхронізується з Podfile.lock ..." після встановлення RestKit з cocoapods


232

Я стикався з дивною проблемою після встановлення RestKit з cocoapods. після вирішення залежності RestKit для мого проекту з cocoapods та спроби його створити, я стикаюся з цією помилкою:

Пісочниця не синхронізується з Podfile.lock. Запустіть "pod install" або оновіть установку CocoaPods.

Я спробував бігти pod install , але ніяких змін.

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

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

  PODS:
  - AFNetworking (1.3.3)
  - RestKit (0.20.3):
    - RestKit/Core
  - RestKit/Core (0.20.3):
    - RestKit/CoreData
    - RestKit/Network
    - RestKit/ObjectMapping
  - RestKit/CoreData (0.20.3)
  - RestKit/Network (0.20.3):
    - AFNetworking (~> 1.3.0)
    - RestKit/ObjectMapping
    - RestKit/Support
    - SOCKit
  - RestKit/ObjectMapping (0.20.3)
  - RestKit/Search (0.20.3):
    - RestKit/CoreData
  - RestKit/Support (0.20.3):
    - TransitionKit (= 1.1.1)
  - RestKit/Testing (0.20.3)
  - SOCKit (1.1)
  - TransitionKit (1.1.1)

DEPENDENCIES:
  - RestKit (~> 0.20.0)
  - RestKit/Search (~> 0.20.0)
  - RestKit/Testing (~> 0.20.0)

SPEC CHECKSUMS:
  AFNetworking: 61fdd49e2ffe6380378df37b3b6e70630bb9dd66
  RestKit: 1f181c180105a92f11ec4f6cd7de37625e516d83
  SOCKit: 2f3bc4d07910de12dcc202815e07db68a3802581
  TransitionKit: d0e3344aac92991395d4c2e72d9c5a8ceeb12910

COCOAPODS: 0.29.0

2
Ви спробували, Run 'pod install' or update your CocoaPods installation.як запропоновано помилкою?
Почерк

3
абсолютно я це зробив, але успіху не було
Hashem Aboonajmi

1
Чи можете ви розмістити версію Restkit в Podfile.lockі в Pods/Manifest.lock? Ця помилка виникає, коли вони не однакові.
MishieMoo

так, я порівняв їх, вони абсолютно однакові.
Хашем Абоонамі

Помилка над помилкою "пісочниці" - "diff: команда не знайдена", я не знаю, чи могла б повторна установка diff виправити проблему, але це може бути підказкою щодо того, що відбувається.
Грозовий кролик

Відповіді:


318

Я зміг це виправити, оновивши CocoaPods.

I. Очищення проекту

  1. У навігаторі проектів виберіть проект
  2. Виберіть ціль
  3. Видаліть всі libPods * .a у фазах збірки> Посилання бінарних із бібліотеками

II. Оновіть CocoaPods

  1. Запустіть термінал і перейдіть до каталогу проектів.
  2. Оновіть CocoaPods за допомогою команди pod install

3
працював як шарм, ви можете хотіти оновити свою відповідь, скажімо, запустіть команду pod install
ManicMonkOnMac

18
Щодо I.3 - ви мали на увазі розділ "Фази збірки> Посилання бінарних із бібліотеками"?
kraftydevil

1
Коли я запускаю команду встановлення pod в каталозі проектів, я отримав нижче попередження: Використання неявних джерел застаріло. Щоб продовжувати використовувати всі джерела, які зараз є на вашій машині, додайте наступне у верхній частині вашого Podfile: source ' github.com/CocoaPods/Specs.git ' Я також додав це посилання у файл pod, але сталося те саме. будь ласка, підкажіть.
Мітеш Хатрі

На додаток до цього мені довелося видалити всі пов'язані з CocoaPod фази збірки, такі як "Перевірити Pods Manifest.lock" та "Копіювати ресурси ресурсів".
JVillella

17
@ Валерій Павлов Ці кроки спрацювали, але після успішного очищення проекту збірка не вдається негайно з тими ж трьома помилками, яких я не можу позбутися нижче. Я спробував повністю видалити всі cocoapods, перевстановити, оновити, все це виконати за допомогою перезавантаження xcode тощо. Все це в терміналі працює успішно, але збірка продовжує виходити з ладу. Будь-які подальші думки? Помилки: diff: /../Podfile.lock: Немає такого файлу чи каталогу diff: /Manifest.lock: Немає такого помилки у файлі чи каталозі: пісочниця не синхронізується з Podfile.lock. Запустіть "pod install" або оновіть установку CocoaPods.
natur3

111

Після багатьох спроб мені вдалося виправити цю проблему. Змінна $ {PODS_ROOT} не була встановлена, і я виконую нижню хитрість. Перейдіть до фаз збірки -> Перевірте Pods Manifest.lock та замініть

diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

до

diff "${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock" > /dev/null

Це мені допомагає.


Чому $ PODS_ROOT не встановлено? Чи потрібно перевстановити стручки для мого проекту?
Петро Сиров

2
Причина, чому $ PODS_ROOT не була встановлена, головним чином, тому, що файл .xcconfig, згенерований cocoapods, не застосовується до цілі збірки.
Фуджія

@Fujia як застосувати файл .xcconfig?
Дарко Романов

У моєму випадку я встановив PODS_ROOT = ${SRC_ROOT}/Podsу своєму xcconfig такий же ефект.
grego

44

Якщо ви видалите всі стручки зі своєї цілі в підфілі, напр

target 'myTarget' do
pod 'great-stuff', '~> 4.0'  // you deleted this last pod
end

вам потрібно буде вручну видалити ці кроки збирання зі своєї цілі Xcode фаз збирання :

  • Перевірте Pods Manifest.lock
  • Скопіюйте ресурси Pod

Cocoapods (поточна стабільна версія 0.37.2) не виконує цю очистку під час запуску pod install.


Це працювало для мене. Я мігрував на швидкий 2 і прокоментував усі стручки - я просто повернув один із стручків, а не возився зі видаленням фаз збірки.
brian.clear

бінго! Я витратив години на видалення робочої області, перевстановлення стручків тощо, і нічого іншого не працювало.
Орен

35

Я шукав години і знайшов такі рішення:

У моєму випадку працює метод 1.

Спосіб 1:

  1. виберіть ціль> перейдіть до Створення фраз > натисніть Посилання бінарних із бібліотеками > видаліть усі файли libPods.a
  2. відкрити Термінал> безпосередньо до вашого проекту> запустити:

     pod install
    
  3. очистити і скласти проект

відкр.1

Спосіб 2:

  1. відкрити Термінал> безпосередньо до вашого проекту> запустити:

    pod deintegrate --verbose    
    pod install --verbose
    

відк.2

Спосіб 3:

  1. виберіть ціль> перейдіть до Налаштування збірки > натисніть знак "+"
  2. додати 2 налаштування, визначені користувачем: [ліворуч = праворуч]

    PODS_ROOT = ${SRCROOT}/Pods
    

    і

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/
    

реф.3


Я спробував усі інші рішення, але нічого не вийшло. Метод 3 працював на мене.
Віннер

25

Видалення стручків з проекту та повторна інсталяція працювали для мене.

Є гарне сховище GitHub, яке може повністю видалити стручки з проекту.

Просто збережіть резервну копію свого PodFile та запустіть нижче команди.

  • дорогоцінний камінь встановити cocoapods-deintegrate
  • дорогоцінний камінь встановити cocoapods-clean
  • Перейдіть до каталогу проектів та запустіть дезінтеграцію
  • Знову біжи стручок чисто
  • Запустіть установку pod

Очистіть і запустіть.


1
Ти чудовий, тільки твій працював на мене, велике спасибі
albert sh

Після запуску цих команд я отримую успішне повідомлення про збірку, але тепер, схоже, нічого не працює на тренажері, ні на консолі. Чи знаєте ви, чому це сталося?
Хорхе Барріос

БУДЕТЕ ЗАБЕЗПЕЧЕННЯ: Будівництво працює, але чистота стручка не виконала цілі проекту. Жодних архівів не створено, а також не створено програми.
Рубен

@Ruben зниклий вміст знову відновиться на "pod install"
Paul

Незважаючи на це, виконуючи вказані вами дії, піктограма мого додатка більше не відображається як основний проект ... З'являється лише логотип cordova, і не створюється жодна збірка чи архів.
Рубен

12

Після зміни назви цілі

Моєю проблемою була xcconfig зі старими іменами цілі.

  • Перейшов до файлу проекту -> інформація -> конфігурація
  • Видалено старий xcconfig (і налагодження, і випуск)
  • встановити стручок

Він буде оновлений до нових.

Крім того, якщо у вас були відсутні файли .h, це причина (шлях пошуку заголовків струків знаходиться в цих xcconfig)


Вибір Noneпрацював і для мене. Я цілий день боровся з цим, намагаючись інтегрувати SDK Gimbal2 в проект Ionic4.
Russ

9

Якщо ви бачите помилку, наприклад:

diff: /../Podfile.lock: Немає такого файлу чи каталогу diff: /Manifest.lock: Немає подібних файлів чи помилок каталогу: Пісочниця не синхронізується з Podfile.lock. Запустіть "pod install" або оновіть установку CocoaPods.

Тоді у вашому проекті є проблема з Cocoapods. Іноді какаоподи можуть вийти з синхронізації, і вам потрібно повторно ініціювати какаоподи. Ви маєте можливість вирішити цю помилку:

  1. Видалення файла Podfile.lock у папці проекту
  2. Видалення папки Pods у папці проекту
  3. Виконати "pod install" у папці проекту
  4. Зробіть "Очистити" в Xcode
  5. Побудуйте свій проект

2
Дуже дякую. Ти зробив мій день. Більше нічого не працювало в моєму проекті Flutter.
nbloqs

Це єдине рішення, яке працювало і для мене. Видалення Podfile.lock. Попереджуйте, що при цьому ви можете отримати кілька несподіваних оновлень версій.
santamanno

for pod installflutter : біжи у своєму flutter_project / ios
Кирило Кармазін

5

У моєму випадку я отримав таку ж помилку після інтеграції програми WatchKit. Щоб вирішити проблему, мені потрібно було додати обидві цілі WatchKit у Podfile:

target 'MyProject WatchKit App' do
    platform :watchos, '2.0'
    shared_pods
end

target 'MyProject WatchKit App Extension' do
    platform :watchos, '2.0'
    shared_pods
end

PS: Можливо, це сталося зі мною, бо я помилково MyProject WatchKit Appспочатку встановив стручки для цілі.


Я думаю, ти вдарив цвях по голові;)
Хакмофорд

4

Я знайшов своє рішення: Запуск: pod updateзамість pod install. Помилка була виправлена!


Ну. Це дозволить оновити застарілі стручки, тому будьте впевнені, що саме цього ви хочете.
ff10

4
  • Перейдіть до фаз збірки -> Перевірте Pods Manifest.lock
  • Замініть
${PODS_ROOT}/Manifest.lock

з:

${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock

Зареєструвати зображення:

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


Це працювало для мене в Cordova iOS, але прийнята відповідь не працювала.
Бастіан Бланкенбург

3

З цією проблемою я зіткнувся з неправильно налаштованим файлом xcconfig.

Генерований Pods xcconfig був неправильно # включений у налаштування xcconfig, який я використовував. Це призвело до невстановлення $ PODS_ROOT, що призвело до відмови з diff "/../Podfile.lock" "/Manifest.lock"зрозумілих причин, які Pods неправильно трактує як проблему синхронізації.


3

Для мене проблема полягала в тому, що я зробив нову ціль у своєму додатку, копіюючи існуючу, але забув додати ціль до Podfile. Чомусь клонована мета працювала цілими днями без проблем, але через деякий час вона не змогла побудувати цю помилку. Мені довелося створити нову цільову запис для моєї цілі клонованого проекту в Podfile, а потім запустити pod install.


2

Якщо ви завантажите проект з github або скопіюєте з іншого місця, то бібліотека залежностей не існує, ця проблема виникне.

Вам просто потрібно cdдо project/project_name directoryв терміналі, використання , lsщоб перевірити , чи є Podfileфайл.

якщо існує Podfile, вам просто потрібно встановити залежності:

pod install

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

рада допомогти вам.
літак

2

Я все пробував, але проблема зберігалася. Після цього я зробив це, і це спрацювало як можна швидше (як гладше).

  1. Відкрийте файл .xcworkspace.
  2. Перейдіть до застарілої системи збирання, якщо використовуєте Кордову на Xcode 10.
  3. Перейдіть до цілі / проекту Podfile. Виберіть мітку розгортання як 11+
  4. Потім змініть налагодження та перейдіть на Pods-.build/release. Це був App.debug / release у моєму випадку.Pic додається. Сподіваюся, це допомагає. Змінити випуск налагодження у Pod

2

Моя робоча відповідь:

  1. Встановіть оновлення ваших кокапод за допомогою цієї команди: pod update
  2. Встановіть свої нові стручки за допомогою цієї команди. встановити стручок
  3. Остання команда: sudo gem встановити cocoapods.

2

З цих відповідей мені нічого не вийшло. Довелося створити проект знову, запустивши cordova platform add ios. Що я помітив, навіть свіжогенерований проект із (в моєму випадку) Firebase стручками викликав повідомлення про помилку знову і знову. На мою думку, схоже на помилку для деяких (Firebase, RestKit) струків у Xcodeабо CocoaPods. Щоб включити стручки, я міг би просто відредагувати config.xmlта запуститиcordova platform add iOS , який зробив для мене все автоматично. Не впевнений, чи буде він працювати у всіх сценаріях.

Редагувати: У мене був Podfileпопередній iOS/ Xcode, але найновіший на сьогоднішній день є # DO NOT MODIFY -- auto-generated by Apache Cordovaв Podfile. Це увімкнуло світло в моїй голові, щоб спробувати підхід. Виглядає трохи тривіально, але працює і мої Firebaseфункції спрацювали.


1
Це єдиний метод, який працював на мене. Спробували всі інші. Я видалив платформи і зробив перевстановлення "платформи cordova, додавши ios". Я теж думаю, що у мене були попередні платформи / ios, які я використовував у попередній версії xcode.
Хіт

1

Це зробив мій день!

  1. Видалення файла Podfile.lock у папці проекту
  2. Видалення папки Pods у папці проекту
  3. Виконати встановлення стручка у папці проекту
  4. Зробіть "Очистити" в Xcode
  5. Побудуйте свій проект

Я схвалюю це повідомлення! Крім того, якщо ви на Flutter, не забудьтеflutter pub get
Кирило Кармазін

1

Коли ви робите

pod install --verbose

переконайтесь:

1- ви в правильному каталозі. У більшості випадків, коли завантажується проект github, буде головна папка. Потрібно знаходитись у власній папці імені проекту (папка master / папка проекту) у терміналі перед тим, як викликати pod install --verbose

2- Видаліть стару папку блокування стручка, після чого очистіть проект, використовуючи xcode clean & do pod install.

3- Постійно оновлюйте rvm.


1

Моєю проблемою була версія какао-стручків, тому я встановив останню версію за допомогою: sudo gem install cocoapods --pre Потімpod update

Це працювало для мене


1

Кроки, які працювали для мене ( XCode 8.3.3/XCode 9 beta with a Swift 3.1 project)

 - Navigate to your project directory
 - pod install //which then asks you to do the next step
 - pod repo update //takes a while to update the repo
 - pod update
 - pod install
 - Close Xcode session
 - Open and Clean the project
 - Build/Run

Також make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods. Це повинно вирішити будь-які помилки при посиланнях, таких як "Команда Apple Mach -O Linker не вдалася"


1

Якщо ви звертаєтесь до способу очищення проекту та вашого проекту, все ще є помилка.

Ви можете перейти на вкладку Фази збірки, а потім Знайти Check Pods Manifest.lockта видалити сценарій.

Потім команда типу , щоб видалити папку Podsтакrm -rf Pods

а потім за командою потрібно видалити Podfile.lock rm Podfile.lock

Можливо, виходячи з ситуації, яку ви можете видалити файл your_project_name.xcworkspace

Нарешті, вам потрібна команда для встановлення Pod pod install --repo-update.

Будемо сподіватися, що таке рішення приходить до вас. Щасливе кодування :)


1

У мене була така ж помилка. Спочатку я оновлюю какаопи, використовуючи

sudo gem install cocoapods

потім встановіть стручки за допомогою команди Pod install.


1

Виконайте такі дії:

1: Видалення файла Podfile.lock у папці проекту

2: Видалення папки Pods у папці проекту

3: Виконати "pod install" у папці проекту

4: Зробіть "Очистити" в Xcode

5: Відновіть свій проект


1

Для мене, працюючи в мерехтінні, конфігурація не була додана автоматично через існуючу конфігурацію.

Додавання #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"до Flutter/Release.xcconfigтаFlutter/Debug.xcconfig

вирішив питання.



1

Я зіткнувся з цією проблемою в проекті Flutter. Щойно я відкрив iOS Модуль у xCode і «Зробити чисту папку» працював на мене.


1

Спробуйте встановити правильну ціль, Podfileа потім запустіть pod updateабоpod install

ціль платформи ios


1

У мене була така ж проблема з Ionic-3, я робив кілька вищезазначених кроків, але жоден з них не працював на мене.

Для Ionic Видаліть платформу ios

$ ionic cordova platform remove ios
$ ionic cordova platform add ios

Відкрийте xcode, а потім спробуйте створити. це працювало для мене :-)


1

Виправили свою проблему з іонним додатком, встановивши cordova версії 9, спробував все вищезазначене рішення, здебільшого пов'язане з xcode, і не працювало для мого іонного додатка

Якщо хтось зіткнувся з тією самою проблемою із програмою cordova, будь ласка, оновіть до cordova 9, щоб виправити це


0

якщо ваші стручки порожні

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