• WCDB iOS/macOS常见问题
    • 编译错误 'sqlcipher/sqlite3.h' file not found
    • 编译错误 Since WCDB is an Objective-C++ framework, for those files in your project that includes WCDB, you should rename their extension .m to .mm.
    • pod install、carthage update、git clone等命令卡住
    • Cocoapods无法搜到WCDB或搜到的版本不是最新的
    • 在offset函数报错:'Expected parameter declarator'
    • 编译错误 'type_traints' file not found
    • 枚举类型报错:Cannot initialize return object of type 'XXXX' with an rvalue of type 'XXX'
    • Xcode不出现代码提示
    • 命令行无法打开WCDB创建的加密数据库
    • Cocoapods定义Virtual Table后crash
  • WCDB Android常见问题

    WCDB iOS/macOS常见问题

    编译错误 'sqlcipher/sqlite3.h' file not found

    若是通过git clone安装的WCDB,由于WCDB中包含git submodule,需要对其进行初始化。执行脚本:

    1. cd sqlcipher;
    2. git submodule update --init;

    若是通过cocoapods安装的WCDB,可清理并更新缓存后重试。执行脚本:

    1. pod cache clean WCDB --all
    2. rm -rf ~/Library/Caches/CocoaPods
    3. pod repo update

    编译错误 Since WCDB is an Objective-C++ framework, for those files in your project that includes WCDB, you should rename their extension .m to .mm.

    WCDB需要使用Objective-C++进行编译。将引用WCDB的文件需要修改文件名后缀为.mm

    在Xcode的View->Navigators->Show Report Navigatorbuild中,可以找到编译出错的文件。将其后缀名改为.mm即可。

    pod install、carthage update、git clone等命令卡住

    网络问题。这些操作需要访问国外的服务器,耐心等待或网络状况较好时再试。也可以修改其他镜像源。

    Cocoapods无法搜到WCDB或搜到的版本不是最新的

    Cocoapods本地缓存问题。需执行pod repo update更新本地缓存。若仍无法解决,则清理缓存后重试,执行脚本

    1. pod cache clean WCDB --all
    2. rm -rf ~/Library/Caches/CocoaPods
    3. pod repo update

    在offset函数报错:'Expected parameter declarator'

    其他库的代码存在不规范的宏定义,将offset定义为别的字符串了。

    编译错误 'type_traints' file not found

    C++库使用不正确,应使用C++11。将工程的Build Settings->Language - C++->C++ Standard Library改为libc++即可。

    枚举类型报错:Cannot initialize return object of type 'XXXX' with an rvalue of type 'XXX'

    有两种方式可以解决:

    • 在枚举类型前加上类型转换,如(UITableViewCellEditingStyle)UITableViewCellEditingStyleDelete
    • 将工程配置的Build Settings->Language - C++->C++ Language Dialect改为GNU++98
      以上两种方法二选一即可。

    Xcode不出现代码提示

    修改文件名后缀为.mm后,Xcode需要重建索引。重启Xcode或等待一段时间后可解决。

    命令行无法打开WCDB创建的加密数据库

    除了password,还需要设置cipher的page size,默认为4096

    1. PRAGMA key="your_password";
    2. PRAGMA cipher_page_size=4096;

    Cocoapods定义Virtual Table后crash

    需在 podfile 中添加 use_framework! 的定义

    WCDB Android常见问题