アプリケーションの実行中にInfo.plistの値をプログラムで反転できますか?
-
07-07-2019 - |
質問
アプリケーションで SBUsesNetwork
および UIRequiresPersistentWiFi
キーを使用することに興味があります。ただし、特定のView Controllerセットを使用する場合にのみ有効にしたいと思います。アプリケーションの実行中にこれらのキー値をプログラムで切り替える方法はありますか?
解決
実行中にバンドルの内容を変更することはできません。そのディレクトリへの書き込みアクセス権はありません。あなたが望むことを正確に行う方法があるかどうかはわかりません。
他のヒント
NSBundle に次を追加:
NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
そこから、 NSDictionary
の mutableCopy
を作成し、その中に値を設定できます。キーへのクエリを作成するときは、info.plistファイルではなく NSDictionary
をクエリする必要がありますが、これらすべてを両方を処理するクラスにカプセル化するのは難しくありませんあなたのための問題。
アプリのinfo.plistファイルを直接変更する場合、問題が発生する可能性があります(たとえば、ファイルを変更すると、コード署名が失敗し、アプリが破損していると見なされます)。 / p>
Info.plistは変更できません。 Appleが認可した、あなたが望んでいることをする方法はないようです。
これでうまくいくとは思わない。 [NSBundle mainBundle]には、特定のinfoDictionaryへのポインターがあります。可変コピーを取得しても、NSBundleは新しいplistについて何も知りません。誰もまだ試しましたか?
Info.plistは辞書に過ぎません。したがって、編集できます。