OS X用のアプリを作成し、アプリをアーカイブしてアプリとしてエクスポートして開こうとすると、コード署名が無効なエラーでクラッシュします。
Macアプリ配布、Macインストーラ配布、開発者IDアプリケーション、開発者IDインストーラ証明書、および配布プロビジョニングプロファイルを作成しました。アプリはサンドボックス化されており、Mavericksでテストしました。
Exception Type: EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000
VM Regions Near 0x7fff71ce90a8 (cr2):
__LINKEDIT 00007fff67043000-00007fff67057000 [ 80K] r--/rwx SM=COW /usr/lib/dyld
--> Submap 00007fff70000000-00007fff80000000 [256.0M] r--/rwx SM=PRV process-only VM submap
unused shlib __DATA 00007fff708d3000-00007fff730dc000 [ 40.0M] rw-/rw- SM=COW system shared lib __DATA not used by this process
Thread 0 Crashed:
0 dyld 0x00007fff66fd1028 _dyld_start + 0
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x000000000000000d rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x0000000000000000 rsp: 0x00007fff5eda9d30
r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x0000000000000000
r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000
rip: 0x00007fff66fd1028 rfl: 0x0000000000000201 cr2: 0x00007fff71ce90a8
Logical CPU: 0
Error Code: 0x020000f4
Trap Number: 133
Binary Images:
0x7fff66fd0000 - 0x7fff67003817 dyld (???) <D1DFCF3F-0B0C-332A-BCC0-87A851B570FF> /usr/lib/dyld
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 47204
thread_create: 0
thread_set_state: 1299
配布プロビジョニングプロファイルに問題があります。なしまたはmacチームプロビジョニングプロファイルをリリース用に設定すると、機能します。私はiCloudとアプリ内購入を使用しています。
この問題は、iCloudまたはアプリ内購入を有効にしたときに始まりました。それらを無効にすると、すべてが機能します。それらの1つを有効にすると、プロビジョニングプロファイルはnoneに設定されて機能しますが、ディストリビューションプロファイルに変更すると機能しなくなります。
誰かが何が悪いのか教えてもらえますか?
全く問題ないかもしれません。読む:テクニカルQ&A QA1884 Macアプリの配布ビルドのテスト
これによると、自分でインストーラーパッケージを作成することはできません。あなたはパッケージを作成し、ターミナルを介してそれをチェックすることですが、それはうまくいきません。
ちなみに、この技術レポートには誤りがあります。アプリへのパスをSudoインストーラーに含める必要がある場合があります-store -pkg Sample.pkg -target /次のようにする必要があります:Sudo installer -store -pkg /user/yourname/desktop/Sample.pkg -target
この例では、installer.pkgがデスクトップ上にあると想定しています
すべてのパスを取得した場合、それで問題ありません。
6月にアップロードした最後のアプリであるpkgが問題なくインストールされ、インストールされたアプリが機能したため、私も夢中になりました。
私にはこの問題がありましたが、幸いにも2つのアプリがありました。1つは機能し、もう1つは機能しませんでした。最終的に、この1つの変更で修正されました。
悪い:
Provisioning Profile: MacTeam Provisioning Profile: <the app's bundle id>
良い:
Provisioning Profile: Automatic
アプリを直接ユーザーに送信する場合、プロファイルは無効だと思います。自動送信は、人への送信やアプリストアへの送信には問題なく機能します。
これを特定のデバイスでのみ実行できるベータバージョンとしてビルドしますか?新しいMacを入手して、ベータテスター証明書をインストールするのを忘れたときに、この正確なエラーが発生しました。
また、プロファイルの構成時に問題が発生しました。機能する構成を見つけたとき、忘れないようにこのスクリーンショットを作成しました。多分それは役立ちます:
編集:また、自分でコンパイルするすべてのフレームワークにコード署名するようにしてください。各フレームワークは個別に署名する必要があります。