PODS_ROOT и другие переменные окружения pods не устанавливаются при компиляции приложения Ionic

Я создал приложение Ionic 2, которое использует Intercom (стороннее расширение). Домофон устанавливается с помощью кокоаподов.

При компиляции моего приложения мне выдаются ошибки:

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.

Это создается на этапе сборки [CP] Check Pods Manifest.lock:

diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
if [ $? != 0 ] ; then
    # print error to STDERR
    echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
    exit 1
fi
# This output is used by Xcode 'outputs' to avoid re-running this script phase.
echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"

Я попытался вывести переменные среды PODS_PODFILE_DIR_PATH и PODS_ROOT в STDERROR echo из приведенного выше сценария, и обе они пусты. Я, вероятно, могу обойти эту конкретную ошибку, изменив эти пути самостоятельно, но очевидно, что что-то еще более фундаментальное сломано, поэтому мне нужно исправить саму фактическую проблему.

Почему эти переменные пусты?

У меня есть дополнительные этапы сборки для [CP] Copy Pods Resources и [CP] Embed Pods Frameworks, которые запускают некоторые сценарии оболочки. Я попытался изменить их порядок, но безуспешно.

Мой Podfile.lock и Podfile (который все равно был сгенерирован автоматически) кажутся хорошими:

Подфайл:

# DO NOT MODIFY -- auto-generated by Apache Cordova
platform :ios, '8.0'
target 'niix' do
    project 'niix.xcodeproj'
    pod 'Intercom', '~> 3.2.2'
end

Подфайл.lock:

PODS:
  - Intercom (3.2.12)

DEPENDENCIES:
  - Intercom (~> 3.2.2)

SPEC CHECKSUMS:
  Intercom: 3119e8ebf76d3da425bab717a08067398fcabfe6

PODFILE CHECKSUM: f99283bb8a4e56cb037a02390d2fbc4e76c97db9

COCOAPODS: 1.3.1

При запуске pod install ошибок нет, и все файлы, которые я ожидаю, присутствуют.

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

  • Бег pod install (конечно)
  • Запуск pod deintegrate, запуск Product > Clean в XCode, повторный запуск pod install
  • Удаление каталогов Podfile.lock и Pods вручную, запуск очистки в XCode и повторный запуск pod install
  • Спокойной ночи и еще одна попытка на следующее утро!

Что следует отметить:

  • Я бегу с project.xcworkspace, а не с project.xcodeproj
  • Я использую последнюю стабильную версию XCode 8.3.3.
  • Я использую последнюю версию Cocoapods 1.3.1.

person Mike    schedule 08.09.2017    source источник


Ответы (1)


Я потратил много времени, пытаясь решить это, и ничего не получил. Приложение было построено с использованием Ionic 2, поэтому фактический исходный код хранится в другом месте и встроен в собственное приложение XCode.

Из-за этого я решил удалить весь каталог XCode. .xcodeproj, .xcworkspace, все. Потом пересобрал с Ionic.

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

Я предполагаю, что первая сборка не удалась, потому что у меня не были установлены Cocoapods, поэтому Ionic молча не смог запустить команду pod install при настройке. Я предполагаю, что это немного отличается от традиционной установки, поэтому я не мог просто запустить pod install после этого.

Итак, вкратце, это было исправлено путем удаления проекта iOS:

ionic cordova platform rm ios

И повторно добавляем его:

ionic cordova platform add ios

А потом строят:

ionic cordova run ios --device

Но сначала убедитесь, что в вашей системе уже установлены Cocoapods.

person Mike    schedule 08.09.2017
comment
Большое спасибо, я исследовал это в течение 2 дней и никогда не думал об удалении платформы. Это единственное исправление, которое сработало для меня. - person kevLinK; 20.02.2018
comment
Легенда. Пробовал несколько исправлений в других местах, и это было единственным, которое сработало. Был тот же сценарий, когда у меня сначала не было установлено Cocopods. - person velval; 12.11.2018