はい、できます。アプリの Info.plist ファイルを変更するだけです (場合によっては再起動することもできます)。
ジェイルブレイクされたデバイスでは、App Store アプリの Info.plist ファイルを変更しても、アプリの署名に問題は発生しません。
プログラムでそれを行う方法を見つけることができると思いますが、正直なところ、スクリプト以上のものが必要かどうかはわかりません。一度だけ変更を加えているだけですよね?したがって、私には、この変更を単純にスクリプト化して、「微調整」パッケージDEBIAN/preinst
またはDEBIAN/postinst
ファイルに入れるだけで十分なように思えます。
私はいくつかの考えを持っています:
1.デフォルトでは、Info.plist ファイルはバイナリになるため、(スクリプトによる) 編集が難しくなります。これは、plist ファイルを変更する前に次のコマンドを発行することで、非常に簡単に回避できます。
plutil -convert xml1 Info.plist
アプリの.app
ディレクトリ内から。これにより、Info.plist がテキスト ファイルとして残ります。をお持ちでない場合はお知らせくださいplutil
。どの Cydia パッケージに含まれているかを突き止めます。
注: 編集後に plist をバイナリに変換する必要はありません。テキスト plist も有効です。
2.変更した Info.plist を Debian パッケージにバンドルし、App Store のバージョンを微調整したバージョンに単純に置き換えることを選択する場合があります。ただし、バージョン番号、および新しいバージョンで更新するファイル内のその他のプロパティについて心配する必要があります。その場合、Info.plist の1 つ.app
のバージョンをディレクトリにコピーするだけでは、すべてのバージョンで機能しない可能性があります。そのため、使用しているバージョンを検出するか、plist ファイルを検索する必要がある場合があります。
<key>UIBackgroundModes</key>
そこにVOIPモードを挿入します。私はsed
やawk
のようなツールが苦手です。その部分について助けが必要な場合は、おそらくここで簡単なスクリプトの質問をすることができます... iOS は知っています ... スクリプト ... それほどではありません :)
3.何らかの理由でスクリプトが Info.plist でアプリのバージョンを検出する必要がある場合は、次のコマンド ラインでそれを行います。
plutil -key CFBundleVersion Info.plist
注: これを行うためのプライベート API が存在する可能性はありますが、存在しなくても驚かないでしょう。Apple がこれを行う理由を想像するのに苦労しています。Apple がそうする理由がわからない場合は、API (パブリックまたはプライベート) がない可能性があります。通常、コンパイルUIBackgroundModes
時に決定します。