macOS Sierra(10.12.5) + xcode8.3.3 で sqlcipherをコンパイル
xcode5.xの頃から使っていたsqlcipher(sqliteの暗号化組み込み実装)を 最新の環境でも仕込んでみます。
officialには情報が乏しいですが、swift3にも組み込めます。
まずは macOSにsqlcipher(コマンドライン)をコンパイルしてみます。
ここの手順でほぼ問題ないですが少しだけ手を入れないとコケます。 tomolog.net
■ 手順
1. sqlcipherをclone(git) 2. コンパイル
■ 詳細
1. sqlcipherをclone(git)
ここはさくっと
mkdir work_cipher cd work_cipher git clone https://github.com/sqlcipher/sqlcipher.git
2. コンパイル
ここが結構キモで、従来はopensslを落としてきてコンパイルして cryptライブラリを 用意して・・・等々割りと手間でしたが今は一切不要です。
cd sqlcipher ./configure --enable-load-extension --enable-tempstore=yes --with-crypto-lib=commoncrypto CFLAGS="-DSQLITE_HAS_CODEC " LDFLAGS="-framework CoreFoundation -framework security" make
これで、多少のwarningはでるもののコンパイルされてsqlcipher(コマンド)が生成されます。 ./sqlcipher [db filename] して PRAGMA Key=“暗号化キー"として作業すれば、 暗号化された sqlite の databaseができます。
次回はこれをアプリに組み込んでみたいとおもいます。