Помилки CocoaPods при створенні проекту


178

Я не в змозі створити проект, який використовує CocoaPods. Я отримую такі помилки:

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error: 
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod installздається, працює добре і додає Podsпроект до моєї робочої області. Я намагався, $ pod updateале це не допомагає.

Здається, PODS_ROOTце не встановлюється.

Podfile:

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj' 

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'

3
Просте виправлення "pod встановити" :)
onmyway133

Важливо! [!] From now on use MyProject.xcworkspace.not te old `.xcodeproj '
Давід Дрозд

Під час тестування в емуляторі є лише білий екран
desigNerd

Відповіді:


171

У мене була подібна проблема, коли я робив значні зміни в своєму Podfile. Моє рішення було видалити файл робочої області та запустити pod installзнову:

rm -rf MyProject.xcworkspace
pod install

17
Значить какаопід встановлений неправильно. пробігsudo gem install cocoapods
asgoth

4
gem install cocoapodsще краще. Більшість часу sudoне повинно бути необхідним із дорогоцінними каменями.
PatrickNLT

5
Ваша відповідь зробила мій день. Я застряг у ньому годинами. капелюхи off
shaikh

Дякую за це, виправлено помилку. FWIW, я отримав помилку після виконанняgem update cocoapods
rounak

Виправлена ​​проблема. Отримала помилку під час виконання "оновлення pod"
swebal

68

TLDR: Це, швидше за все, помилка з Xcode і закриття та повторне відкриття проекту, як правило, є найпростішим виправленням. Якщо все інше налаштовано належним чином .


Я час від часу отримую ту саму помилку при видаленні Podsкаталогу та запуску pod install.

У інформації про проект все виглядає правильно:

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

Однак, коли я переходжу до визначених користувачем налаштувань збірки, запис PODS_ROOT або повністю відсутній, або порожній для однієї або декількох конфігурацій. Що викликає таку помилку при складанні:

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

Найпростіший виправлення - закрити проект у Xcode та знову відкрити його .

Якщо ви перейдете до налаштувань збірки цілі та відфільтруєте " Усі" , ви побачите PODS_ROOTзапис без помилок:

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

Тепер він повинен будуватися без помилок.


Примітка. У офіційного прикладу iOS AFNetworking для iOS навіть у Cocoa Pods є ця проблема, через що я вважаю, що це помилка з Xcode.

Альтернативним виправленням є вручну змінити конфігурацію на None, а потім повернутись до початкового значення:

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


1
Це виявилося для мене! Мій $ PODS_ROOT був встановлений неправильно
Alex Ryan

Після довгого пошуку виправлення я зміг без проблем помилитися завдяки вашому рішенню. Мені просто довелося змінити Конфігурації на None і повернутися до Pods
Glogo,

Це добре, що НІКОЛИ не допомогло.

32

Перейдіть до цілі Build Settingsта переконайтесь, що значення в розділі "Визначено користувачем" PODS_ROOTдорівнює ${SRCROOT}/Pods.

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


Чудово працює. Це те, що було потрібно.
pr4n

Мені довелося додати PODS_ROOTдо своєї цілі цей шлях та віолу (я також додав її до рекурсивноїheader search paths "$ (PODS_ROOT)"
Джексонкр

Не працював для мене.

30

оновлення: a podfile.lockє необхідним, і його не слід ігнорувати за допомогою контролю версій, воно відслідковує версії бібліотек, встановлених у певній установці Pod. (Це схоже на gemfile.lock та composer.lock для рейлів та управління залежностями php відповідно). Щоб дізнатися більше, прочитайте документи . Кредит йде на клоуни .


У моєму випадку я зробив те, що я робив чистку будинку для свого проекту (тобто розгалужував тести інтеграції як підмодуль git .. видаляв дублікати файлів тощо) .. і підсунув кінцевий результат на віддалений репост git .. всі клієнти, які клонували мою репо, зазнали вищезгаданої помилки. Надихнувшись коментарем Глунга вище, я зрозумів, що існують деякі звисаючі сценарії струків, які намагаються зіткнутися з деякими неіснуючими файлами. Тож я перейшов до моєї цільової фази збірки та видалив усі решта фаз, які мали відношення до стручків какао (і коментар Глунга він пропонує видалити, Copy Pods Manifest.lockі copy pod resources.. мій був названий іншим, можливо, б / с я використовую Xcode 5 .. суть полягає в тому, щоб видалити ці звисаючі фази збірки) ..


1
Це не для чого Podfile.lock: прочитайте документацію Cocoapods на тему "Робота з командами", щоб отримати докладнішу інформацію про неї.
cbowns

@cbowns ви абсолютно праві, дякую за коментар. Я оновив свою відповідь.
абат

12
Я видалив свій файл xcworkspace і встановив pod, але я все одно отримую те саме повідомлення про помилку.
jowie

@jowie ж тут ... чи можете ви, будь ласка, керувати мене, якщо ви вирішили це.
Bandish Dave

28

Отже, схоже, що CocoaPods не встановив Конфігурації для мого проекту. Вони повинні базуватися на тому, Pods.xcconfigщо знаходиться в Pods/Target Support Files/Pods. Щоб змусити це працювати, мені довелося зробити наступне:

  1. Перетягніть цей файл у мій проект Xcode у Xcode, вибравши не копіювати.
  2. Тепер у нашому проекті є посилання, ми можемо встановити конфігурації: введіть тут опис зображення

Потім у мене була ще одна помилка побудови, яка може бути, а може і не бути пов'язаною. Шлях до сценарію оболонки, визначений у Copy Pods Resourcesфайлі, був неправильним.

"${SRCROOT}/Pods/Pods-resources.sh"

Вирішено неправильно. Здавалося, SRCROOT додає додатковий dir, який не існував на шляху. Тому я важко кодував шлях до папки Project.

Це дозволило мені будувати.

Чому так багато речей, які, як правило, заощадять час, зрештою з'їли його?

Примітка. Будь ласка, дивіться відповідь @ abood для пояснення.


27
Якщо ви побачите цю помилку, оскільки ви видалили всі стручки з цілі, у вас більше не буде сценаріїв стручка, але вона все одно буде намагатися запустити її. Вам доведеться перейти до цільової фази збірки та видалити Copy Pods Manifest.lockта Copy Pods Resourcesфази. А також видалити libPods.aу Посилання Бінарне з Бібліотеками.
Hlung

@Hlung чудовий коментар .. він насправді вирішує першопричину проблеми, я спробував рішення вище, і я все-таки опинився з Podfile.lock (який більшість .gitignoreфайлів налаштовано ігнорувати .. і це правильно) .. цей файл не повинен Я не затримаюся довкола. Якби ти написав це як відповідь, я би дав тобі +1!
абат

@abbood Напиши це, і я дам тобі виграш.
Нерозлучення

Просто хотів би додати, що ця проблема на сторінці Github CocoaPods згадує про перевірку фаз збірки, ймовірно, для цієї точної проблеми (навіть більш подібної, оскільки у мене є кілька цілей). Проблема змусила мене прокрутитись сюди ....
DanBlakemore

22

У мене є аналогічне питання, ось що спрацювало:

  1. У Xcode:
    • Чисто
    • Видалити отримані дані в Xcode / Window / Органайзер / Проект / Ваш проект
    • Каталог Pod (містить конфігураційні файли, видаляйте файли не лише посилання!)
    • Видалено всі посилання на файли конфігурації pod для кожної цілі в Project / Configurations (налагодження / випуск)
    • З усіх цілей вилучено "Цілі / Створення фаз / Копіювання ресурсів Pods"
    • З усіх цілей вилучено "Цілі / налаштування збірки / визначені користувачем / PODS_ROOT"
  2. Закрити Xcode
  3. У каталозі вашого проекту:
    • rm -rf Pods
    • (Необов’язково) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. встановити стручок
  5. Відкрийте простір YourProject.xcworks у Xcode

4
Не просто довільно видаляйте робочу область - Навіть якщо вашу робочу область створили Cocoapods, вона підтримується вами.
Джозеф Декарло

Це працювало для мене, видаляючи кожен файл, пов’язаний із стручками та перевстановленими стручками.
Ліна

15

Я позбувся цієї ж проблеми, виконавши наступні дії:

  • Xcode->Product->Clean Build Folder(утримуйте клавішу Alt на Product, щоб побачити її)
  • Відкрийте Xcode->Window->Organizerта виберіть Projectsвкладку. Потім знайдіть свій проект та видаліть derived data його.

1
Працювали для мене. Був роздратований. Тепер щасливий.
fresidue

У моєму випадку у мене виникли проблеми з проектом github. Тому мені довелося повністю видалити каталог Project (rm -rf), зробив вищесказане, потім розпакуйте проект, встановіть pod і відкрийте простір xcworks і жодних помилок!
rharvey

Працювали для мене. Дякую.
xevser

10

Просто вирішується таким чином:

  • (Судо) дорогоцінний камінь встановити какаоподи

  • встановити стручок

  • чистити і будувати

Схоже, проблему викликав один з членів нашої команди, який встановив нещодавню установку дорогоцінного каменю cocoapods.


1
Мені довелося перевстановити cocoapods І перезапустити XCode, щоб вирішити цю проблему.
The Camster

Довелося бігти gem install cocoapodsі тоді, pod installі майже про все інше, що згадується в цій темі ...
Ешелон

9

  1. відкрити .xcodeproj файл у піднесеному тексті
  2. видаліть ці два рядки, якщо у вас є чисті папки з стручками, я маю на увазі, якщо ви отримали помилки вище після видалення папки струків

дає мені ld: бібліотеку не знайдено для -lPods - / * Назва мого проекту * / Тести
SleepsOnNewspapers

це також дасть мені помилки при майбутніх встановленнях стручків?
SleepsOnNewspapers

6

Якщо в тій же проблемі сказано /Pods/Pods-resources.sh: Немає такого файлу чи каталогу навіть після того, як файли тощо, пов’язані з стручками, не були видалені.

Позбулися від нього, перейшовши на цільову-> Фази збірки, а потім видаливши фазу збірки "Копіювати ресурси ресурсів".


класне виправлення, але я боюся, після очищення проекту та отриманих даних ви можете помітити, для чого це потрібно :)
Julian Król

Тоді я отримую ".h" файл не знайдено помилку з fileName, який використовує Pod
coolcool1994

4

У мене була така ж проблема нещодавно. Я спробував усі можливі поради, нічого, крім цього плагіна, не працював на мене:

https://github.com/kylef/cocoapods-deintegrate

Після очищення поточної інтеграції cocoapods залишилося видалити Podfile, Podfile.lock та .xcworkspace. Потім просто встановіть все заново.

Сподіваюся, я комусь допоможу в цьому.


Це було єдине, що мене виправило.
Чарлі

Я радий, що міг допомогти Чарлі
Кьяра

4

Це питання вирішило його.

  1. Виберіть ціль свого проекту
  2. Виберіть Налаштування збірки
  3. Відкрийте визначені користувачем випадає
  4. Змініть значення ключа PODS_ROOT на $ {SRCROOT} / Pods

Знімок екрана для наведених вище кроків


1
Я РОЗПОВІЛИ, як ваш. Але я все одно отримую ту саму хиту помилку. Що це!!! ніхто не має на це правильної відповіді.

@YumYumYum: Потім спробуйте встановити свої стручки.
Джайпракаш Дюбі

Спробував перш за все рішення, але це спрацювало. У моєму випадку залишалося встановити шлях у випуску.
Ankit Kargathra

3

Я думаю, що тут є помилка.
Для мене я видаляю Podsпапку і знову Podfile.lockроблю рішення pod installдля вирішення проблеми.
Це повідомлення ігнорується .. :(


2

Це було не дуже інтуїтивно. Я перейшов до налаштувань базового проекту, а потім зашифрував контури до свого pod.lock та pod.manifest під Check Pods Manifest.lock, оскільки вони фактично залишилися в різних папках, тому мої шляхи виглядали так:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi

Схоже, сценарій генерується CocoaPod. Куди ви поставили цей сценарій?
Ніколас

2

Можна спробувати наступне. Це зафіксувалося для мене.

  1. встановити gem встановити cocoapods-deintegrate
  2. встановити gem встановити cocoapods-clean
  3. перейти на дезінтеграцію
  4. стручок чистий
  5. встановити стручок

Плагіни будуть вилучені з кокаподів для вашого проекту та будуть встановлені свіжо.


2

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

  1. Перейдіть на вкладку Фази збірки в налаштуваннях проекту для цілі, яка викликає проблеми.

  2. Видаліть розділ "Маніфест перевірки Pods" та "Копіювати ресурси Pods"

  3. Всередині "Посилання бінарних із бібліотеками" видаліть libPods-YourTarget.a

  4. У налаштуваннях проекту на вкладці Інформація розгорніть "Конфігурації" та встановіть для конфігурації цілі значення "Ні" як для налагодження, так і для випуску. (Це виправить пару відсутніх попереджень про файл)

  5. Видаліть отримані дані проекту (Вікно> Проекти> Видалити [поруч із проектом) та перезапустіть Xcode. Побудувати / запустити ціль.


2

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

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

1

У моєму випадку проблема полягала не в тому. рішення тут http://guides.cocoapods.org/using/troubleshooting.html

Якщо щось, здається, не працює, перш за все переконайтеся, що ви не повністю перекрили будь-які параметри, встановлені з файлу Pods.xcconfig в налаштуваннях проекту. Щоб додати значення до параметрів із налаштувань збірки вашого проекту, додайте до списку значень $ (успадковано) .


1

У мене було це питання.

Я виправив це шляхом повного видалення Pod та його реалізацією. Обов’язково видаліть "Копіювати ресурси Pods" та "Перевірити Pods Manifest.lock" з "Фази збірки" на всіх цілях, як зазначено тут: Як видалити CocoaPods з проекту?


1

Щоб позбутися цієї помилки, мені потрібно було видалити Podsкаталог і видалити Podfile.lockфайл.


Я погоджуюся з вами, я зробив все, що ви робили, включаючи видалення файлу робочої області, і це працювало для мене.
Алікс

1

У моєму випадку я поставив Podfile.lock & Manifest.lock у керування джерелами, але забув додати файли Pods-Project.debug (випуск) .xcconfig до керування джерелом (помилково додавши * .xcconfig до .gitignore), тоді я отримали однакові помилки компіляції з точно тією ж причиною, PODS_ROOT не встановлюється.

Отже, якщо мета полягає в тому, що після клонування репо, проект можна негайно створити та запустити, не встановлюючи CocoaPods на машині, ви або додасте весь каталог Pods у керування джерелом, або додайте Podfile.lock, Manifest.lock, файли xcconfig проекту та Pods xcconfig файли для управління джерелом.

Я не поставив приватний .xcconfig, який об'єднує параметри збірки з конфігурацією CocoaPods за замовчуванням для управління джерелом.


1

Витративши години, я знайшов рішення, перейдіть до "Фаз збірки", а потім "Перевірити Pods Manifest.lock" Поставте галочку "Запустити сценарій лише під час встановлення"

Дякую пізніше;)введіть тут опис зображення


1

У мене була така ж проблема з моїм проектом IONIC , я намагався перш за все рішення, але не удача.

Якщо у вас все-таки проблема, перевірте, чи немає нижче налаштувань погоди, Build Settings -> User-Defined settingsчи немає

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

Якщо немає, додайте його,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Це вирішить проблему, посилання на рішення


0

Я створив кілька цілей, перш ніж я коли-небудь використовував стручки. Пізніше, коли я почав складати інші цілі, мені довелося додати link_with зі списком цілей у моєму Podfile.


0

У мене було те саме питання. Після перегляду останніх кроків я виявив, що причиною проблеми є додавання цільової декларації для нової цілі з подальшим запуском pod install,:

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

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


0

Якщо у вас є ціль watchOS: я виявив, що раптом, маючи стручки в розширенні годинника, але не в цілі самої, зламав речі з цією ж помилкою. Рішення полягало в тому, щоб також додати стручки до вартової цілі.



0

якщо ви створили нову ціль після створення Podfile, просто видаліть Podfile, Podfile.lock, папку Pods і робочу область, а потім ініціруйте стручки -> і потім покладіть свої стручки


0

Спробувавши вище, я зрозумів, що отримую помилку pod install

[!] CocoaPods не встановила базову конфігурацію вашого проекту, оскільки у вашому проекті вже є встановлений набір конфігурацій.

Це спричинило помилку, оскільки cocoapods не додавав .xcconfig файл до мого проекту.

Щоб вирішити це, я перейшов до Infoвкладки свого проекту. Установіть для мого файлу на основі конфігурації значенняNone всі схеми та цілі. Потім перебігpod install

Для отримання додаткової інформації див. Це посилання. Попередження Cocoapods - CocoaPods не встановив базову конфігурацію вашого проекту, оскільки у вашому проекті вже є встановлений набір конфігурацій


0

У моєму випадку я випадково набрав зайву крапку в кінці файлу config, що спричинило цю дивну проблему. Переконайтесь, що ваш конфігураційний файл не містить помилок!

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