1

アプリで Sparkle を使用し、シェル スクリプトの実行ビルド フェーズを介してフレームワークに署名します。これは正常に動作し、ビルド エラーは発生しません。問題は、Sparkle による更新がないことです。アップデーターは次のように述べています。

アーカイブの抽出中にエラーが発生しました

間違ったコード署名がこのエラーを引き起こす可能性はありますか? これは Sparkle のエラーではなく、RSS xml ファイルは 100% 正しいと確信しています。古いバージョンの更新も機能します。

これは非 MAS アプリであり、開発者 ID アプリケーション証明書を使用してすべてに署名しています。ゲートキーパーを有効にしてアプリを実行できます (spctl -a -v と表示されます: 承認済み)。手動で解凍して起動すると、正しいメッセージが表示されるので問題ありません。

以前のバージョンとの違いは、これが新しい Mac でビルドした最初のアプリ バージョンであることです。Xcode に開発者 ID を追加し、必要なすべての証明書を受け取っています。Xcodeが新しいものを作成したと思いますが、これは問題ではなく、新しいものを使用するだけです。これもエラーの原因になるかどうかはわかりません。誰かそれについてもっと知っていますか?ありがとう。

ところで:コード署名に「Developer ID」を選択し、その後ビルド設定ビューでコード署名を開発者 ID に設定すると、一般ビューのラジオ ボタンが「なし」に戻ります。

編集:スクリプト

LOCATION="${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}"
IDENTITY="Developer ID Application: Name"
codesign --verbose --force --sign "$IDENTITY" "$LOCATION/Sparkle.framework/Versions/A"
codesign --verbose --force --sign "$IDENTITY" "$LOCATION/ShortcutRecorder.framework/Versions/A"

XPC サービスの回線がありませんが、必要ですか? アプリで xpc サービスを使用していないと思います。

4

2 に答える 2

0

同じ「新しい」証明書/コード署名設定で新しい更新を行った後、問題はなくなりました。新しい証明書を作成したときに何か問題が発生し、Sparkle がそれを気に入らなかった可能性があります。

XPC サービスは使用せず、上記のスクリプトのみを使用します。スクリプトやアプリのキャスト URL/フィードなどを変更していないので、何が問題だったのか正確にはわかりませんが、現在は問題ないようです。

于 2014-02-10T11:19:40.080 に答える
0

Mavericks でビルドするのは初めてのバージョンですか? はいの場合、Mavericks がアプリのすべての組み込みバンドルに署名する必要があるという事実に起因する可能性があります。私はこの問題を抱えていて、その解決策を見つけました:MavericksおよびXCode 5でのSparkleでのOS Xアプリの更新の問題

シェルスクリプトはどのように見えますか? Sparkle フレームワークに署名したとおっしゃいましたが、XPC サービスにも署名しましたか?

于 2013-11-29T14:05:39.997 に答える