2014-02-06 5 views
10

Я только что добавил cocoapods в свой проект, но не могу заставить скрипт сборки работать снова. Я использую эту команду, чтобы сделать сборку:Ошибка сборки командной строки cocoapods

xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme SYMROOT=./build 

Однако, когда я выполняю сборку, он терпит неудачу с сообщением об ошибке ld: library not found for -lPods.

Если я создаю без набора SYMROOT, он отлично работает. Но я бы предпочел сохранить аргумент SYMROOT таким образом, чтобы я мог хранить логику архивации так же, как и раньше.

До сих пор я пришел к выводу, что поскольку SYMROOT установлен, xcodebuild не может найти библиотеку Pods, которая была построена. Как я могу это исправить?

Edit:

Я исследовал структуру файла после сборки немного:

  1. Если я не установлю SYMROOT, существует libPods.a файл в папку с двоичными файлами (Library/Developer/Xcode/DerivedData/MyProject-eegsyonkmltdqhggwyqytoqbwath/Build/Products/).
  2. Если я устанавливаю SYMROOT, как описано выше, файл libPods.a нет в ./build

Таким образом, представляется, что выход сборки из стручка файлов не установлены должным образом. Это проблема в xcodebuild, или есть способ, которым я могу обеспечить, чтобы файлы pod были созданы для этой папки?

На следующем рисунке показано сравнение результатов сборки в двух каталогах, чтобы сделать его более ясным: Comparison of build output

+0

Вы строите с ONLY_ACTIVE_ARCHS = НЕТ? xcodebuild не устанавливает это по умолчанию – MishieMoo

+0

Да, ONLY_ACTIVE_ARCHS в файле проекта установлено значение NO. Также см. Мое редактирование на вопрос выше. – JRV

ответ

41

Вместо использования xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme SYMROOT=./build

Попробуйте с этой линии:

xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme SYMROOT=$(PWD)/build 

Надеюсь, что это поможет вам.

Пояснения here.

+2

Это действительно сработало. Единственная разница ./build заменяется на $ (PWD)/build. Поэтому он отправляет абсолютный путь к xcodebuild вместо относительного пути. Есть что-то гнилое .... :-) – JRV

+0

Я пришел сюда, ища совершенно другую проблему, а именно «ресурс окутывает устаревшую» проблему, и это, наконец, решило все ... Большое спасибо! – Evils

+0

Это мало, даже для Xcode (7.2). Нет сообщения об ошибке или что-либо еще, он просто не создает проекты pod, а затем с ошибкой связывания – Earlz

Смежные вопросы