2017-01-11 10 views
3

私は新しいMacBook Proを13インチ持っています。私はすべてのファイルを転送して、開発者のプロフィールをXcodeに読み込んでいます。 AppSubboxをオンにすると、作成したすべてのMacOSアプリケーションがクラッシュすることに気付きました。 (3)CapabilitiesにアクセスしてApp Sandboxをオンにして、ビルドして実行し、クラッシュする - 下記を参照してください。App Sandboxのクラッシュアプ​​リを起動する

http://www.grandinetti.org/resources/appcrash.png

2011年のMac Mini(同じMacOS 10.12.2(16C67)とXcode 8.2.1(8C1002)を実行中)に戻って、App Sandboxをオンにしてプロジェクトをビルドして実行すると奇妙なことが起こります。だから、私のMacBook Proの13" に関連すると思わが、私は私が間違ってやっているものを見つけるように見えることはできません。

任意の提案ですか?

おかげで、

フィリップ

のPS Iコード私が行っている可能性のある他の調査を十分に認識されていないために謝罪ので、趣味として

あなたが読んでいるはず

答えて

1

Apple document:。

現代のXcodeは、あなたのアプリケーションにコード署名を採用しやすくします。デベロッパープログラムの資格情報を提供し、Xcodeが残りのほとんどを自動的に処理します。コード署名の詳細と使用方法の説明を含め、コード署名ガイドを参照してください。

OS Xでは、アプリケーションのコンテナとアプリケーションのコード署名が紐付いています。この重要なセキュリティ機能は、他のサンドボックスアプリケーションがコンテナにアクセスできないようにします。メカニズムは次のように機能します。

システムがアプリケーション用のコンテナを作成すると、そのコンテナにアクセス制御リスト(ACL)が設定されます。このリストの最初のアクセス制御エントリには、アプリの将来のバージョンがどのように認識されるかを示すアプリの署名の一部である、アプリの指定要件(DR)が含まれています。 DRの説明については、コード署名ガイドのコード要件を参照してください。 同じバンドルIDを持つアプリが起動するたびに、アプリのコード署名がコンテナのACL内のエントリの1つで指定された指定要件と一致するかどうかがチェックされます。一致するものが見つからない場合は、アプリの起動を妨げます。 OS Xのコンテナの完全性の実装は、開発と配布のサイクルに影響します。これは、アプリケーションの作成と配布の過程で、さまざまな署名を使用してコードが署名されているためです。

プロジェクトを作成する前に、Appleから開発証明書、配布証明書、および(オプションで)開発者ID証明書の3つのコード署名証明書を取得します。これらのコード署名証明書を取得する方法については、App Distribution Guideを参照してください。 これらの証明書は、キーチェーンの対応する秘密鍵と組み合わせて使用​​すると、3つの個別のデジタルIDを形成します。開発とテストのために、開発アイデンティティーを使ってアプリケーションに署名します。アプリストアにバージョンを送信するときは、あなたの配布IDを使用します。アプリストア以外のバージョンを配布する場合は、開発者IDのIDを使用します。

Mac App Storeは、あなたのアプリを配布するときに、Appleのコード署名で署名されています。 テストとデバッグのために、アプリケーションの両方のバージョン、つまりあなたが署名したバージョンとAppleが署名したバージョンを実行することができます。しかし、OS Xは侵入者としてあなたのアプリケーションのアップル署名されたバージョンを見て、それを起動することはできません:そのコードの署名はあなたのアプリの既存のコンテナで予想されるものと一致しません。

アプリのアップル署名付きバージョンを実行しようとすると、このようなステートメントを含むクラッシュレポートを取得する:

例外タイプ:EXC_BAD_INSTRUCTION(SIGILL) ソリューションは、アクセス制御を調整することですアプリケーションのコンテナにAppleの署名付きバージョンを認識させるためのリスト(ACL)具体的には、Appleの署名付きバージョンのアプリケーションの指定されたコード要件を、アプリケーションコンテナのACLに追加します。

また、同じ問題があります。 Here

+0

私はこれを読んでなかったが、開放ターミナルウィンドウをして asctlコンテナACL入力は は私にメッセージを与える-file追加のアプリケーションサンドボックスは、中で確認されていても「test.appは、アプリケーションサンドボックスが有効ではありません」 Xcode。 とにかくこれを行うには端末を使用しなければならないと思われません。 Xcodeがこれを自動的に処理しないのはなぜですか? Xcodeでプロジェクトを設定する場所がありますか? また、古いMac miniではこれがうまく動作するのは奇妙に思えますが、新しいMacBook Pro 13で動作させることはできませんでした。 – pjg

関連する問題