1. ホーム
  2. iphone

[解決済み] iOSの場合。コード内でapp-info.plist変数にアクセスする

2022-09-23 11:29:55

質問

ユニバーサルアプリを開発中です。自分のコードで app-info.plist ファイルに保存されている値にアクセスしたいのですが、どうすればよいでしょうか。

理由: ストーリーボードからUIViewControllerを動的にインスタンス化するためです。

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
self = [storyboard instantiateViewControllerWithIdentifier:@"ExampleViewController"];

さて、上記のストーリーボード名 @"MainStoryboard_iPhone" を持つことは醜いことです。

というようなことをしたいのですが。

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:appInfo.mainStoryboardBaseNamePhone bundle:nil];
self = [storyboard instantiateViewControllerWithIdentifier:@"ExampleViewController"];

appInfo は app-info.plist にあるすべての値の NSDictionary である可能性があります。

どのように解決するのですか?

プロジェクトのinfo.plistから属性に直接アクセスするには、以下のように...

[[NSBundle mainBundle] objectForInfoDictionaryKey:key_name];

例えば、バージョン番号を取得するには、次のようにします。

NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

バージョン番号がinfo.plistの中で2つの属性を持っているという問題がありますが、お分かりいただけたでしょうか?info.plist をソース コードとして表示する場合 (info.plist を右クリックして [Open As] を選択)、使用できるすべてのさまざまなキー名を見ることができます。