3

私のアプリは2つの実行可能ファイルで構成されています

  • メインアプリの実行可能ファイル
  • 一部のファイルを処理するための小さなコンソール アプリ。この実行可能ファイルは Resources フォルダーにあります (root 権限は必要ありません)。

問題は、このアプリをアプリストアに送信する方法がわからないことです。アップルから次の応答が返されます

無効な署名 - パス appname.app のメイン アプリ バンドル appname は署名されていますが、署名が無効です。次のエラーが codesign から報告されました: 封印されたリソースが見つからないか無効です アーキテクチャ: i386

ヘルパー アプリを削除すると、このエラーは回避されますが、アプリはまったく機能しません。ヘルパーアプリを埋め込んでアプリストアに正しく署名する方法について、良い方法や例を知っている人はいますか??

アップルのドキュメントはこれについて明確ではありません。

4

1 に答える 1

8

メイン アプリとヘルパー コンソール ツールの両方に署名する必要があります

Signing .app は文書化されているので、ヘルパーにコード署名する方法を説明します。

  • 資格ファイルを手動で作成し、ヘルパー プロジェクトに追加します (メイン アプリからファイルをコピーして、不要な資格キーを削除できます)。
  • Info.plist を単一ファイル ツールに追加するに記載されているように、Info.plist を作成します(この手順は必須ではありませんが、ヘルパー クラッシュが見つかった場合は追加してみてください)。

メインアプリがヘルパーツールを起動する場合は、追加する必要があります

com.apple.security.inherit

これについては、アプリ サンドボックスの継承の有効化で説明されています

メインアプリが他の方法でヘルパーとやり取りする場合は、XPC 通信が必要になるか、運が良ければアプリ グループを使用するだけで十分です。

何かのようなもの

<key>com.apple.security.application-groups</key>
<array>
    <string>$(TeamIdentifierPrefix)my.package</string>
</array>

AppSandboxLoginItemXPCDemoを見てください。

私の経験から、開発環境では TeamIdentifierPrefix を空にし、MAS に送信するときにチーム IDを設定する必要があります。

于 2012-11-01T16:03:19.637 に答える