18901


iosアプリで書き換え不要な起動時とかの初期データを持つファイルを格納したいと思っているのですが下記をみていてよくわからなくなってしましました。  
なんとなく「/Library/Preferences」かなぁと思ったのですが、  
「iTunesでバックアップされる」とあり、書き換えたりしないファイルをバックアップされるようなディレクトリにいれるものなのだろうか…と悩んでいます。  
有識者の方々は通常コンフィグファイル等はどこに保存しているのでしょうか。  
ご意見をうかがえると助かります。

<http://d.hatena.ne.jp/glass-_-onion/20110904/1315142404>  
<https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html>


CC BY-SA 3.0
2015-11-16T10:48:46.407
18894
2015-11-16T12:03:17.440
12842
question
ios
iosでアプリのコンフィグファイルなどを格納するディレクトリはどこがベストですか


データの保存方法は幾つかあると思いますが、  
データの更新や追加がないのであれば、セキュリティ面を気にされてはいかがでしょうか？

ユーザの個人情報が保存されているのであれば、`NSUserDefaults`は使わない方が良いと思います。自身で暗号化しなければ平文で保存されてしまうためです。

セキュリティ面を担保するのであれば、`KeychainAccess`を利用する方が良いと思います。  
こちらは暗号化された状態で保存されます。  
私はObjective-
Cであれば、[LUKeychainAccess](https://github.com/TheLevelUp/LUKeychainAccess)ライブラリを使っていました。  
最近、Swiftではこちらの[KeychainAccess](https://github.com/kishikawakatsumi/KeychainAccess)ライブラリを使っています。

下記サイトも参考になるかと思います。  
・[iPhoneアプリの初歩的なデータ書き換え・チート方法と、それを防ぐ方法](http://www.lancork.net/2013/10/cheat-
tamper-iphone-app-and-prevent/)  
・[Keychain Servicesとは](http://cocoadays.blogspot.jp/2011/02/ios-keychain-
services.html)

少しでもお役に立てますと幸いです。


CC BY-SA 3.0
2015-11-16T11:21:10.833
18896
2015-11-16T11:21:10.833
8968
18894
answer


リソースに保存してください。「リソースって、なに？」は、 **リソース** 、 **Resource** 、 **Bundle** 、
**NSBundle** をキーワードにして調べてください。  
すこしお付き合いください。Macの上で、Finderの「アプリケーしょん」フォルダを開いてください。どのアプリケーションアイコンでもかまいません。右クリックないしControlキー＋クリックして、プルダウンメニューを出し、
**パッケージの内容を表示** を選びます。

[![画像の説明をここに入力](https://i.stack.imgur.com/42b3h.png)](https://i.stack.imgur.com/42b3h.png)

すると、「Contents」フォルダがひとつだけある新しくウインドウが開きます。ファイルだと思っていたアプリケーションが、じつはフォルダだったことがわかります。この特殊なフォルダを、OS
Xではパッケージ（Package）と呼びます。  
iOSのアプリケーションも、このパッケージの形態を踏襲しています。  
「Contents」フォルダを開くと、いくつかあるアイコンの中に、「Resources」フォルダがあります。最初にいったリソースの実体は、このフォルダです。Resourcesフォルダを開くと、アプリケーションアイコンの画像ファイルや、ボタンなどのアイコンの画像ファイル、ローカライズするための、各言語ごとのデータなどがあります。  
「書き換え不要な起動時とかの初期データ」まさしくそういうファイルが、このResourcesフォルダに保存されていることがわかります。  
このResourcesフォルダにファイルを保存する方法は、簡単です。

[![画像の説明をここに入力](https://i.stack.imgur.com/4m9Xl.png)](https://i.stack.imgur.com/4m9Xl.png)

Xcodeの **Project Navigator**
。ここにドロップしたファイルは、すべてResourcesフォルダに、ビルド時コピーされ、保存されます。  
そして、Resourcesフォルダの各ファイル（フォルダ）にアクセスするには、 **NSBundle**
クラスを使います。NSBundleクラスのリファレンスをお読みください。

※iOSのアプリケーションのパッケージは、暗号化されているので、リソースファイルも、一般的なレベルのセキュリティは保証されていると判断していいかと思います。（OS
Xの方は、ご覧のとおり、バレバレですが……）


CC BY-SA 3.0
2015-11-16T12:03:17.440
18901
2015-11-16T12:03:17.440
7362
18894
answer