Xcodeでsub projectを追加するときの注意


SQLCipherというものを利用して、SQLiteを使ってデータを保存し、そのデータを暗号化しようとしている。

まず、こちらのサイトを参考にしながらサンプルアプリを作った。
chrooot: SQLCipherを使用してデータベースを暗号化する。(iOS)
乙寺備忘録 [iPhone]sqlcipherを利用する。(その2)

ここまでは上手くいっていたのだが、次に作成中のアプリにこの機能を組み込もうとしたときにトラブったのでメモ。

SQLCipherとopenSSLのライブラリを自分でbuildしなければならないので、自分のプロジェクトにSQLCipherとopenSSLのプロジェクトを組み込まなければならない。
そのために「Add Files to “自分のプロジェクト”」でサブプロジェクトとして登録するのだが、Addする際に「Destination: Copy items into destination group’s folder (if needed)」のチェックとしてもしなくても、コピーされなくて参照になるようだ。

私の場合、SQLCipherとopenSSLをサブプロジェクトに登録しても、なにやらプロジェクトとして認識されていないような状態になった。
サブプロジェクトのsqlcipher.xcodeprojをクリックしてもプロジェクトの情報が表示されないのだ。
それであれこれ操作を試していると、どうやらテスト用のサンプルアプリの方でSQLCipherのプロジェクトファイルを開いたままになっているので、他のアプリで開けない状態であることが分かった。両方から参照されている状態になっているらしい。
そこでサンプルアプリの方を閉じると正常に認識された。

結論
何かをサブプロジェクトとして登録するときには、そのプロジェクトファイルを他のアプリで開いていないことを確認しよう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です