1

Cydiaで配布されているアプリに取り組んでいます。そのため、通常のAppStoreアプリのように/ var / mobile / Applications /ではなく、/Applicationsフォルダーにインストールされます。そして、私はインストールが私にいくつかの大きな問題を与えると思います。最初は、有名なAppleのKeychainItemWrapperを使用したキーチェーンの読み取りと書き込みはまったく機能しません。また、settings.bundleも機能しません。アプリの設定はSettings.appに表示されません。

シミュレーターでアプリケーションをテストしたり、Xcodeからデバイスに直接デプロイしたりすると(/ var / mobile / Applications /にデプロイされます)、すべてが魅力のように機能します。

インストール済みの.appをvar/mobile / Applications / XXXXXX / myapp.appに移動し、mobile:mobileを所有者にしてみました。それは役に立たなかった。

これを機能させるための解決策はありますか?

4

1 に答える 1

1

設定バンドル

ジェイルブレイクアプリの設定は少し異なります。通常のSettings.bundleと同様のことを行う必要がありますが、違いがあります。

その詳細については、ここを参照してください。

そしてここ

そしてここ

アプリをパッケージに依存させる必要がありますpreferenceloader。これは、ジェイルブレイクアプリが設定を管理するのに役立ちます。したがって、DEBIAN/制御ファイルには次のようなものがあります。

package: com.mycompany.MyApp
Name: MyApp
Version: 2.2-2
Architecture: iphoneos-arm
Depends: preferenceloader
Description: Do something for jailbreak iPhones
...

キーホルダー

アプリでキーチェーンを機能させるには、バイナリに資格を追加する必要がありました。どのエンタイトルメントが必要かを知る方法は、最初に通常の方法でアプリをビルドすることでした(ジェイルブレイクアプリではなく、Xcodeを使用する通常のサードパーティアプリストアアプリです)。次に、Xcodeによって構築されたバイナリのエンタイトルメントを調べました。

ldid -e MyApp.app/MyApp

次に、それらの資格を新しいentitlements.xmlファイルに接続します。資格を適用する例については、こちらをご覧ください。アプリのエンタイトルメントは次のようになります。

  <key>application-identifier</key>
  <string>L44W4W8ABC.com.mycompany.MyApp</string>
  <key>aps-environment</key>
  <string>development</string>
  <key>com.apple.developer.team-identifier</key>
  <string>L44W4W8ABC</string>

資格を追加するこの方法は必要ない可能性があります。他のオプションについては、質問の下のコメントを参照してください。ただし、他の理由で他の資格を追加していたため、Xcodeでは追加できませんでした。

于 2012-08-10T04:40:11.940 に答える