Libsqlite в симуляторе и компиляции iOS

У меня возникают некоторые проблемы при компиляции моего приложения в iOS. Я использую sqlite3 и импортирован как

#import <sqlite3.h>

Ну, я только нашел файл с именем libsqlite3.0.dylib на своем Mac, и я скопировал его в свой проект. Когда я компилирую его для iOS Simulator, он работает нормально. Тем не менее, когда я пытаюсь скомпилировать приложение для устройства iOS, он выдает ошибку (Apple Link-O Linker Error) в каждом вызове, который я выполняю в своей реализации, для функции sqlite (например, _sqlite3_open и т.д.).

Как я могу скомпилировать его на iOS-устройстве?

Спасибо!

Ответы

Ответ 1

Вместо простого копирования библиотеки сделайте следующее:

  • в Xcode Navigator, нажмите на свою цель (самая верхняя запись)

  • перейдите к Build Phases, затем Link Binary With Libraries

  • добавьте libsqlite3.dylib из этого местоположения в /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxx.sdk/usr/lib/

Ответ 2

На всякий случай кто-то столкнулся с той же проблемой, что и я. Если вы тестируете свой код, добавьте файл lib также в тестовый объект.

Ответ 3

Вы пытались импортировать библиотеку sqlite3, например:

#import "sqlite3.h"

вместо:

#import <sqlite3.h>

Ответ 4

Лучший способ, которым я нашел использовать SQLite в приложении IOS, - создать собственную копию библиотеки SQLit и включить ее в свой проект. libsqlite3.0.dylib - очень старая копия SQLite.

Вы можете легко загрузить исходный код SQLite Amalgamation и создать его для IOS. это дает вам последний исходный код SQLite, который содержит все последние исправления и улучшения ошибок.

Если вы можете открыть Xcode и создать новый проект статической библиотеки, то вам будет 75% пути.

После того, как у вас есть проект статической библиотеки, включите источники SQLite, которые вы загрузили из объединения SQLite, и установите несколько опций препроцессора, и вы выключитесь и запустите с последним кодом.

Для получения полной информации и исходного кода примера вы можете посетить мой блог conedogers