1. ホーム
  2. iphone

[解決済み] アプリケーションの設定バンドルにアプリケーションのバージョン情報を表示するにはどうすればよいですか?

2023-03-02 10:33:49

質問

アプリケーションのバージョンと内部リビジョン (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 ) オープンソースプロジェクトを使用することによって、望むことができました。

  1. このコンパイラを使用すると、以下のフォーマットでプロパティファイルを .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
                    ]
                }
            ]
        }
    }
    
    
  2. 私はカスタム実行スクリプトの構築フェーズで、brad-larson が説明したように、リポジトリのリビジョンを .h ファイルに展開していました。 ここで .

  3. plcファイルには、#define, #message, #if, #elif, #include, #warning, #ifdef, #else, #pragma, #error, #ifndef, #endif, xcode環境変数といったプリプロセッサーディレクティブを含めることが可能です。そこで、以下のディレクティブを追加することで、変数kRevisionNumberを参照できるようになりました。

    #include "Revision.h"
    
    
  4. 私はまた、プロジェクトがビルドされるたびにplcompilerを実行するために、xcodeターゲットにカスタムスクリプトビルドフェーズを追加しました。

    /usr/local/plistcompiler0.6/plcompile -dest Settings.bundle -o Root.plist Settings.plc
    
    

と、いうことでした!