iOSアプリの設定で変数など管理

iOSアプリを作ったときに、
アプリを入れたあとで、コンテンツの中身を書き換えたい場合。

たとえば、
OSCを使うためIPアドレスをアプリに設定したい。
アプリの向きを変えたい。
デバッグモードのトグルで切り替えたい。
などなど。

上みたいな設定ができると、作ったアプリにちょっと愛着わいてモチベ上がる。

サイネージのお仕事でiPadなどの端末からコンテンツを操作するということが
最近ふえたので、そのときにしておくと親切なTipsです。

openFrameworksでiOSを開発する際にはofxSettingsが便利でした。
https://github.com/prossel/ofxSettings

 


詳細な設定は文末の参考リンクにまるなげ。

設定の大体の流れは、
1. srcなど右クリックでSettings.bundleファイルを追加する。
2. Root.plistに表示したい項目を追加。
3. Keyの値を利用して、端末の設定画面で入力した値をアプリ起動時などに変数へ格納する。(ofxSettingsではSettings::get~()で取得)
4. 取得はせず設定画面に表示したいだけの場合はKeyの値を利用してSettings::set~()で。
5. ビルド時の情報を表示させたい場合は、BuildPhases

 

APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $PRODUCT_SETTINGS_PATH)
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:9:DefaultValue ${APP_VERSION}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Settings.bundle/Root.plist"

date=$(date "+ @ %Y.%m.%d %H:%M")
BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $PRODUCT_SETTINGS_PATH)$date
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:10:DefaultValue ${BUILD_NUMBER}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Settings.bundle/Root.plist"

RunScriptで上のような記述をします。
1行目:APP_VERSIONという変数にxcodeで指定しているアプリのバージョンを代入
2行目:plistのitem9DefaultValueをAPP_VERSIONに書き換え
みたいな感じでしょうか。
何項目め、みたいな指定しかできないのかな。ちょっと調べてみたけどなさそう?

xcodeからAddRowとかして追加するとなんか表示変になっていたりすることがあるので、plistファイルを他のエディタで開いてxmlとして直接編集した方が無難かも。
xcodeで編集できる方がitemのナンバーとかわかりやすいけど。

'date=$(date "+ @ %Y.%m.%d %H:%M")' などを追加して
ビルド時の日時なども記載しておくとデバッグなどでは便利かも
http://goozenlab.com/blog/2015/02/06/versionning/


参考
https://dev.classmethod.jp/smartphone/iphone/settings-bundle-acknowledgements/
https://qiita.com/akatsuki174/items/392cb3be619fabfa4608

 

コメントを残す

メールアドレスが公開されることはありません。