2008-10-30 5 views
4

Я попытался интегрировать Picasa API на iphone, компилирует отлично, но я вижу следующую ошибку при запуске.Как интегрировать Picasa API в приложение для iPhone?

dyld: Библиотека не загружен: @loader_path /../ Каркасы/GData.framework/Версии/A/GData Реферировано от:/Users/jacksu/Library/Application Support/iPhone Simulator/User/Applications/9A7E3F54- 022F-4771-BD6A-E458F5545144/PicasaTest.app/PicasaTest Причина: изображение не найдено

Я не уверен, в чем проблема.

Я импортировал GDataFramework из Source/build/Debug/GData.framework. Я построил проект в папке «Источник».

ответ

3

Если вы держите GData.framework, то вам необходимо убедиться, что она не является обязательной основой, а слабая основа. слабые рамки, приложение не будет требовать его при первом запуске и попытаться загрузить его только при вызове функции в инфраструктуру, но в вашем случае, поскольку библиотека статически скомпилирована, функции, которые вызывают, будут разрешены без необходимости загрузки фреймворка. (Обратите внимание объективные сообщений C являются вызовами функций во время выполнения ...)

Для этого попробуй ниже:

  • Дважды щелкните целевое приложение (как и ранее)

  • Посмотрите на Генеральном Закладка на этот раз

  • Найти GData.framework и изменить его от "Required" к "слабой"

Вероятно, вы получаете ошибки компиляции, не добавляя фреймворк, потому что файлы заголовков GDATA не разрешаются. Вы также могли бы поместить ссылку на «файлы заголовков» в «Путь поиска заголовка». Вместо этого вам не нужно будет добавлять фреймворк.

Не связанный с вышеуказанным, я забыл еще одну вещь ранее. Добавьте -ObjC в свой «Другой флаг компоновщика».

+0

Привет, Когда я скомпилирую проект «GData», он показывает ошибку, и многие файлы отсутствуют. Пожалуйста, можете предложить? – 2015-10-23 08:01:49

2

Вы не можете использовать динамические библиотеки на iPhone (конечно, вне рамок Apple). Все библиотеки должны быть статически связаны.

3

IPhone не позволяет загружать динамические библиотеки. Внешняя библиотека/структура, которую вы используете, должна быть построена как статическая библиотека и скомпилирована в ваше приложение во время сборки.

Для того, чтобы это произошло сначала нужно создать статическую версию библиотеки из GData:

  • Добавить новую цель проекта GData (скажем GDataIPhoneLibrary)

    • Вы делаете это щелкнув правой кнопкой мыши Target и выбрав «Добавить новую цель». В диалоговом окне выберите шаблон статической библиотеки из раздела IPhoneOS - Cocoa Touch.
  • Затем вам нужно перетащить исходные файлы .m в раздел Источники компиляции цели. (Убедитесь, что вы не перетаскиваете файлы .h, иначе вы получите предупреждения.) Также, если вы просто создаете Picasa, тогда файла в группах Command и Photos должно быть достаточно. Также не добавляйте модульные тесты и группы тестовых инструментов.

  • Далее перейдите в группу «Рамки и библиотеки» в рамках проекта и добавьте фреймворк Foundation, который является необходимой основой для Cocoa Touch. Когда вы добавляете это, обязательно проверяйте только что созданную цель для этого. (Вы не хотите испортить версию Mac из GData)

  • Теперь под целевые задачи, выберите GDataIPhoneLibrary вы создали и нажмите на (I), кнопки (или просто дважды щелкните по нему)

  • При поиске вкладки Построить для «заголовка» и как только вы определить местонахождение «заголовок пути поиска» добавить следующее (для libxml2) в качестве пути заголовка

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ iPhoneOS2.1.sdk/usr/include/libxml2

  • Теперь вы закрываете диалог.

  • Выберите активную цель быть GDataIPhoneLibrary

  • Установите ActiveSDK в Проект-> SetActiveSDK -> Симулятор - IPhone OS 2.1

  • Теперь вы готовы к работе -> просто нажмите build, и у вас будет файл libGDataIPhoneLibrary.a по умолчанию.

Теперь вы можете добавить статическую библиотеку в приложение IPhone:

  • Перейти к вашему собственному проекту приложения и выбрать цель (вы, вероятно, есть) и дважды щелкните его, чтобы открыть диалоговое окно ,

  • На вкладке «Сборка» найдите «библиотеку», и как только вы найдете «Пути поиска библиотеки», добавьте путь к той библиотеке, которую вы только что создали на предыдущем шаге.

  • Затем добавить "-lGDataIPhoneLibrary" (опуская Lib префикс и .a расширение) к опции "Other Linker Flags" (который можно найти с помощью поиска линкера в поле поиска.

Теперь это следует надеяться построить. Надеюсь, что это работает для вас.

Приветствия, Керем