私はこの奇妙なものと午後中ずっと戦ってきましたが、結果はありません. 以前は、Theos の Tweak テンプレートを使用して Tweak を作成し、ディレクトリ内のテンプレートを使用してサブプロジェクトを作成することで PreferenceBundle を追加することができました。微調整を実行し、Settings.app でそのページを開くと、指定子リスト (変更しない場合は「Awesome Switch 1」が含まれます) が大きくなります。
つまり、ほとんどまたはまったく変更を加えずにプロジェクトを作成するだけで、この画面が表示されます。
さて、今日、同じ方法で新しいプロジェクトを作成し (最初に Tweak を作成し、2 番目に PreferenceLoader プロジェクトを作成)、この結果に到達しようとしましたが、無駄でした。
私はこれと6時間以上戦っています。私は2つのジェイルブレイクされたデバイスで試しました。Theos をアンインストールして再インストールしました。コンピューターをリセットし、両方のデバイスを再起動しましたが、何をしても、その画面には設定が含まれていません。背景が含まれていますが、指定子はまったく含まれていません。
現在、plist は次のようになっています。-lint の実行時に plist ツールが構文エラーを返さないことを確認する必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>Five First Page</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>default</key>
<true/>
<key>defaults</key>
<string>s</string>
<key>key</key>
<string>AwesomeSwitch1</string>
<key>label</key>
<string>Awesome Switch 1</string>
</dict>
</array>
<key>title</key>
<string>SomeFive</string>
</dict>
</plist>
(Five.plist。PreferenceLoader サブプロジェクトは「Five」と呼ばれます)。
プリファレンス .mm は次のようになります。
@interface PSListController
-(id)loadSpecifiersFromPlistName:(id)name target:(id)tar;
@end
@interface FiveListController: PSListController
{
id _specifiers;
}
-(id)specifiers;
@end
@implementation FiveListController
- (id)specifiers {
if(_specifiers == nil) {
_specifiers = [[self loadSpecifiersFromPlistName:@"Five" target:self] retain];
}
return _specifiers;
}
@end
// vim:ft=objc
/Library/PreferenceBundles に手動で存在するかどうかを確認し、上記の plist でタイトル キーを変更でき、設定のページ ナビゲーション バーのタイトルに反映されるため、ファイルが存在し、適切に読み取られていることがわかりました。タイトルが読み取られる原因はわかりませんが、残りの指定子は読み取られません。
私はこれに完全に唖然としています。PreferenceLoader プロジェクトでこのような奇妙な動作を見たことはありません。Theos の設定などを変更していないため、完全にランダムに開始されたようです。
これに関する任意の助けをいただければ幸いです。