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