CorePlot: как запустить на устройстве? (работает нормально на симуляторе)

Мое приложение использует CorePlot и отлично работает на симуляторе
(оно обращается к libCorePlot-CocoaTouch.a из:
/Users/myName/core-plot/build/Debug-iphonesimulator ).

Для запуска на устройстве xcode ожидает libCorePlot-CocoaTouch.a в:
/Users/myName/core-plot/build/Debug-iphoneos
, но этот файл отсутствует, поэтому xcode выдает ошибку:
'/ Users/Giovanni/core-plot/build/Debug-iphoneos/libCorePlot-CocoaTouch.a: Нет такого файла или каталога.

Я попытался сгенерировать его, выполнив: CorePlot-CocoaTouch.proj > установить Xcode для сборки на «устройстве» > «Сборка и запуск», но «Сборка и запуск» неактивна.
Копирование версии симулятора, очевидно, не работает.

Любые идеи?


person sambaMan    schedule 23.11.2010    source источник


Ответы (4)


Рассмотрите возможность добавления CorePlot-CocoaTouch.xcodeproj в качестве подпроекта, а затем добавьте libCorePlot-CocoaTouch в качестве зависимости.

person tc.    schedule 24.11.2010
comment
Спасибо, но CorePlot-CocoaTouch.xcodeproj уже является подпроектом приложения, а libCorePlot-CocoaTouch уже является зависимостью (в Targets›MyApp›getInfo›LinkedLibraries). Вот почему это работает в симуляторе. Сообщение об ошибке указывает на отсутствие файла в /Users/myName/core-plot/build/Debug-iphoneos. (но этот файл присутствует в /Debug-iphonesimulator, поэтому он работает в симуляторе). - person sambaMan; 24.11.2010
comment
Если вы уничтожите каталог сборки и перестроите его, какие файлы будут выведены? Я предполагаю, что он выводит что-то под названием libCorePlot-CocoaTouch.a, но вставляет его не в тот каталог. В общем, я считаю, что подпроекты обычно идут не так (не удается установить правильный SDK, если вы строите с помощью xcodebuild). - person tc.; 24.11.2010
comment
Нет, даже после уничтожения myApp/build и выполнения myApp›BuildAndRun этот файл не собирается (в myApp/build). Я предполагаю, что он не строится, потому что он связан как зависимость. Этот файл находится только в /Users/myName/core-plot/build/Debug-iphonesimulator (со старой датой 7 ноября, поэтому он также не строится при работе в симуляторе). - person sambaMan; 24.11.2010
comment
РЕШЕНИЕ: проблема заключалась в том, что CorePlot-CocoaTouch.xcodeproj также должен быть добавлен как зависимость Targets›MyApp›getInfo›DIRECT (в дополнение к подпроекту и добавлению libCorePlot-CocoaTouch в качестве Targets›MyApp›getInfo›LinkedLibraries). Спасибо. - person sambaMan; 24.11.2010

Попробуйте открыть сам проект Core Plot и сначала создать структуру. Вы должны построить (а не "собрать и запустить") цель CorePlot-CocoaTouch. Сделайте это для каждой комбинации SDK {симулятор, устройство} и конфигурации {отладка, выпуск} (всего четыре сборки). Это создаст нужные вам .a файлы.

После построения Core Plot вернитесь к своему проекту и постройте его. Теперь он должен связать и работать правильно.

person Eric Skroch    schedule 24.11.2010

Ознакомьтесь с моим ответом здесь, если вы не хотите использовать метод импорта CorePlot-CocoaTouch.xcodeproj (не нужно импортировать весь проект, только папку CorePlotHeader и файл библиотеки libCorePlot-CocoaTouch.a) Исправить ошибки компоновщика для Core Plot при использовании Xcode 5

В конечном итоге вам может потребоваться удалить старую библиотеку, щелкнув правой кнопкой мыши файл MyApp.app в папке «Продукты» и скопировав и вставив новый файл CorePlot_1.4 .a в папку Debug-iphoneos... очистите, соберите, и он должен запустить на устройстве iOS 7.

person whyoz    schedule 22.10.2013

РЕШЕНИЕ: проблема заключалась в том, что CorePlot-CocoaTouch.xcodeproj также должен быть добавлен как зависимость Targets>MyApp>getInfo>DIRECT (в дополнение к подпроекту и добавлению libCorePlot-CocoaTouch как Targets>MyApp>getInfo>LinkedLibraries). Спасибо

person sambaMan    schedule 24.11.2010