[解決済み] アプリケーションの設定バンドルにアプリケーションのバージョン情報を表示するにはどうすればよいですか?
質問
アプリケーションのバージョンと内部リビジョン (1.0.1 (r1243) など) をアプリケーションの設定バンドルに含めたいのですが、どうすればいいですか。
Root.plist ファイルには、次のような断片が含まれています...
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
<key>Title</key>
<string>Version</string>
<key>Key</key>
<string>version_preference</string>
<key>DefaultValue</key>
<string>VersionValue</string>
<key>Values</key>
<array>
<string>VersionValue</string>
</array>
<key>Titles</key>
<array>
<string>VersionValue</string>
</array>
</dict>
で、ビルド時に "VersionValue"の文字列を置換したい。
私はリポジトリからバージョン番号を抽出するスクリプトを持っていますが、必要なのは、ビルド時に Root.plist ファイルを処理(前処理)し、ソース ファイルに影響を与えずにリビジョン番号を置換する方法です。
どのように解決するのですか。
pListcompilerを使うことで、なんとか思い通りになりました( http://sourceforge.net/projects/plistcompiler ) オープンソースプロジェクトを使用することによって、望むことができました。
-
このコンパイラを使用すると、以下のフォーマットでプロパティファイルを .plc ファイルに書き込むことができます。
plist { dictionary { key "StringsTable" value string "Root" key "PreferenceSpecifiers" value array [ dictionary { key "Type" value string "PSGroupSpecifier" key "Title" value string "AboutSection" } dictionary { key "Type" value string "PSTitleValueSpecifier" key "Title" value string "Version" key "Key" value string "version" key "DefaultValue" value string "VersionValue" key "Values" value array [ string "VersionValue" ] key "Titles" value array [ string "r" kRevisionNumber ] } ] } }
-
私はカスタム実行スクリプトの構築フェーズで、brad-larson が説明したように、リポジトリのリビジョンを .h ファイルに展開していました。 ここで .
-
plcファイルには、#define, #message, #if, #elif, #include, #warning, #ifdef, #else, #pragma, #error, #ifndef, #endif, xcode環境変数といったプリプロセッサーディレクティブを含めることが可能です。そこで、以下のディレクティブを追加することで、変数kRevisionNumberを参照できるようになりました。
#include "Revision.h"
-
私はまた、プロジェクトがビルドされるたびにplcompilerを実行するために、xcodeターゲットにカスタムスクリプトビルドフェーズを追加しました。
/usr/local/plistcompiler0.6/plcompile -dest Settings.bundle -o Root.plist Settings.plc
と、いうことでした!
関連
-
[解決済み] Windowsフォームアプリケーションで、アプリケーションの設定を保存するにはどうすればよいですか?
-
[解決済み] iphone Core Data 保存時に未解決のエラーが発生する。
-
[解決済み] モバイルSafari(iPhone)でテキストエリアのインナーシャドウを除去する
-
[解決済み] cocoaアプリケーションのinfo plistにある「bundle display name」と「bundle name」の違いは何ですか?
-
[解決済み] UIImageViewのコーナー半径の設定がうまくいかない
-
[解決済み] AppDelegate.mで画面上に現在表示されているUIViewControllerを取得する。
-
[解決済み] iPhoneのデータ使用量のトラッキング/モニタリング
-
[解決済み] UITextFieldの高さを設定するには?
-
[解決済み] iOS: HTTP POST リクエストを実行するには?
-
[解決済み] iPhoneシミュレーターの位置情報
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UIViewの下に影を描くには?
-
[解決済み】@try - Objective-Cのcatchブロック
-
[解決済み] iOSシミュレータでファイルシステムを確認する方法はありますか?
-
[解決済み] APNSの.pemファイルを作成する?
-
[解決済み] .xibファイルと.storyboardの違いは何ですか?
-
[解決済み] iPhone Safari ウェブアプリでリンクを新しいウィンドウで開く
-
[解決済み] ITunesのレビューURLとiOS 7(ユーザーにアプリを評価してもらう)AppStoreに空白のページが表示される。
-
[解決済み] iPhoneシミュレーターでカメラをテストするには?
-
[解決済み] iPhoneのデータ使用量のトラッキング/モニタリング
-
[解決済み] Xcodeバージョン(CFBundleShortVersionString)とビルド(CFBundleVersion)の違いについて