2017-02-09 16 views
0

現在、ロック画面にwatchOS風のウォッチフェイスを表示するはずの "LockWatch"というiOSの調整を行っています。この調整には、これまでに動作している特定のディレクトリからバンドル(name.watchface)をロードする基本的なプラグインシステムが含まれます。iOS:コード署名が無効/必須のコード署名がありません

ただし、これらのバンドルは、コード署名がないか無効であるためにデバイス上で実行できませんが、iOSシミュレータ内でバンドルがロードされ、正常に実行されます。

iOS 9では「com.apple.backboard.client」エンタイトルメントを追加していました(ログには、この特定のエンタイトルメントがないため、SpringBoardがクラッシュしていたためです)。

バンドルプロジェクト自体は、macOSタブの「Bundle」ターゲットで作成されたシンプルなXcodeプロジェクトで、Base SDKは「Latest iOS(10.2)」に設定されています。

  • がなくてldidで署名
  • (デバッグとリリースの両方のために)すべての
  • Xcodeの管理の署名
  • Xcodeのマニュアル署名で署名されない:

    私は次の署名方法を試してみましたエンタイトルメント

  • エンタイトルメント付きのldidでの署名
これら2つのテキストの間で変化

ログは:バイナリを実行することができないので

SpringBoard(CoreFoundation)[PID] <Notice>: Error loading /var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: dlopen(/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype, 265): no suitable image found. Did Find: 
/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: required code signature missing for '/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype' 

SpringBoard(CoreFoundation)[PID] <Notice>: Error loading /var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: dlopen(/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype, 265): no suitable image found. Did Find: 
/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: code signature invalid for '/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype' 

、その主要なクラスインスタンスは、アレイと踏み台クラッシュに追加することができません。

答えて

0

私は最終的にそれを自分で解決したようです。

結局のところ、ウォッチフェイスバンドルは全く署名されていません(したがって、required code signature missingメッセージ)。

私は以下のスクリプトを含むバンドルにRun Script相を追加しました:私は誰かが_CodeSignatureの内容を消去することが示唆コード署名に関するさまざまな問題を研究していたとき、私はアイデアを得た

/usr/bin/codesign --force --sign - --timestamp=none $CODESIGNING_FOLDER_PATH/$PRODUCT_NAME

をフォルダ。私のビルド出力には明らかに存在しませんでした。

関連する問題