問題タブ [sparkle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1284 参照

objective-c - Sparkle.Framework がダウンロード後に新しい更新プログラムをインストールしない。エラー: ファイルの抽出中にエラーが発生しました。後でもう一度やり直してください

Sparkle フレームワークを使用してアプリケーションを更新しています。

アップデートをチェックしてダウンロードしていますが、インストール時にエラーが発生しています。

ここに画像の説明を入力

このエラーが発生する理由を理解できません。

.app ファイルを .zip に圧縮した後、サーバーにアップロードしました。なぜそれを抽出できないのかわかりません。

助けてください。私は大迷惑です。

015-09-08 11:43:30.075 Update[927:19428] Sparkle: ===== Update ===== 2015-09-08 11:43:30.076 Update[927:19428] Sparkle: ' を使用して抽出/usr/bin/ditto' '-x' '-k' '-' < '/Users/Paxcel/Library/Caches/com.TechHeal.Update/Sparkle/Update 1.2/Update.zip' '/Users/Paxcel/ Library/Caches/com.TechHeal.Update/Sparkle/Update 1.2' 2015-09-08 11:45:06.270 Update[927:19037] Sparkle: 新しいバージョンのコード署名が古いバージョンと一致しません: cdhash H" def198d02dbf94943fc22c626bbb4b36d2248e5a". 古いアプリと新しいアプリがまったく同じ証明書を使用して署名されていることを確認してください。2015-09-08 11:45:06.305 更新 [927:19037] スパークル: ホスト情報: { ビルド = 1; format = "Mach-O Thin (x86_64) にバンドル"; 識別子 = "com.TechHeal.Update"; 要件 = ""; "署名時間" = ""; teamid = ""; バージョン = "1.0"; } 2015-09-08 11:45:06.306 Update[927:19037] Sparkle: 新しい情報: { build = 2; format = "Mach-O Thin (x86_64) にバンドル"; 識別子 = "com.TechHeal.Update"; 要件 = ""; "署名時間" = ""; teamid = ""; バージョン = "1.2"; } 2015-09-08 11:45:06.308 Update[927:19037] Sparkle: 更新アーカイブは DSA キーで署名されておらず、アプリは新しいコード署名 ID で署名されていますが、これはコード署名と一致しません。元のアプリ: エラー Domain=NSOSStatusErrorDomain Code=-67050 "The operation could not be completed. (OSStatus error -67050.)" UserInfo=0x60000027e880 {SecCSArchitecture=x86_64}. 少なくとも 1 つの署名検証方法が有効である必要があります。更新は拒否されます。

0 投票する
1 に答える
44 参照

objective-c - Sparkle フレームワークをプロジェクトに追加すると、エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを表示するには -v を使用します)

Sparkle フレームワークをプロジェクトに追加すると、リンク エラーが発生します。

リンカ コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)

ライブ プロジェクトでこれを実装する前にダミーを作成しましたが、ダミーは正常に動作していますが、ライブ プロジェクトで同じことを行っているとエラーが発生します。 ここに画像の説明を入力 ここに画像の説明を入力

さらにいくつかの場所に輝きを追加しようとしましたが、エラーは解決しません。 ここに画像の説明を入力

0 投票する
0 に答える
425 参照

macos - Qt on Mac 10.11: コードにはリソースがありませんが、署名はそれらが存在する必要があることを示しています

Sparkle フレームワークを使用した Qt 5.4 アプリケーションがあります。Mac OS X 10.11 の Gatekeeper は、サーバーからのダウンロード後に「開発者が不明です」というエラーが表示されます。いくつかの調査の後 (codesign --strict は sparkle にファイルが見つからないことを示します)、Sparkle フレームワークの壊れたシンボリック リンクを削除しました。次に、アプリを再構築し、codesign と spctl の両方でチェックします

codesign --verbose --deep --strict myapp.app

結果は次のとおりです。 myapp.app: 指定された要件を満たします

spctl --assess --type exec --verbose myapp.app の表示: 承認済み

次に、dmg イメージをビルドし、イメージからインストールすると、アプリは問題なく実行されます。次に、dmg をサーバーにアップロードし、サーバーからダウンロードしました。MD5 チェックサムが一致します。

ただし、アプリを /Applications フォルダーにドラッグ アンド ドロップして実行すると、OS はアプリケーションが破損しているため、ゴミ箱に移動する必要があることを示しています。

コードにはリソースがありませんが、署名はそれらが存在する必要があることを示しています

サーバーからアプリをダウンロードするだけで、spctl の出力が変わりました。同じビルドスクリプトがこのエラーなしでいくつかのリリースを作成したため、リソースとは何の関係もないと思います (アプリにはリソースがあります)。スクリプトは qt フレームワーク構造を変更しますが、それは 10.10 で動作します。

新しい Mac OS 10.11 をビルドし、xcode 7.0.1、Qt 5.5 をインストールし、アプリを再ビルドしました (App バンドルの Qt フレームワーク構造を変更するスクリプトは使用しません)。まったく同じ結果: アプリはアップロード前に codesign と spctl の両方を渡し、ダウンロード後に同じエラーで失敗しました。

本質的に、Sparkle フレームワークの壊れたリンクを削除した後、アプリ バンドルは「不明な開発者」から「破損した画像」に変更されました。

誰かがどこが間違っていたのか教えてもらえますか?

0 投票する
1 に答える
118 参照

objective-c - 10.11 (App Transport Security) で失敗した Sparkle の更新、回避策はありますか?

10.11 ベース SDK 用のアプリ ビルドのアップデートをリリースした後で初めて、アプリの Info.plist で具体的にホワイトリストに登録されていない限り、アプリが非 HTTPS プロトコルで NSURLRequests を作成できないことがわかりました。これは事後的に変更できません。

最悪の事態は、アプリが更新を確認して更新する機能を失ったことです。したがって、ユーザーに修正を提供することはできません。

彼らは最後のバージョンで永遠に立ち往生しています:(彼らは新しい修正バージョンを手動でダウンロードすることしかできませんが、ダウンロードするように指示する方法さえありません.

おそらくサーバー側で修正を配布する方法、または少なくとも人々に手動でダウンロードするように指示する方法はありますか?

ありがとう。

0 投票する
0 に答える
161 参照

python - Python ctypes の実行中に呼び出された関数を維持する方法

ctypes を使用して winsparkle C ライブラリを呼び出す最小限の python スクリプトを作成しようとしています。コードは、行ごとに実行した場合にのみ機能win_sparkle_check_update_without_ui()し、ウィンドウがポップアップして、期待どおりに更新をダウンロードします。しかし、スクリプトを通常どおり実行すると、この関数は呼び出されてすぐにスキップされ、ハッキーな time.sleep オプションを追加しない限り、開いたままになりません。

この関数を実行し、ユーザーがポップアップを閉じるまで開いたままにする適切な pythonic の方法は何ですか?

0 投票する
1 に答える
260 参照

macos - Sparkle を新しいバージョンに置き換えても安全ですか

&tldr; 古い Sparkle.framework を新しい Sparkle.framework に置き換えることができない理由は何ですか?

Sparkleは、更新を管理するために Mac OS X アプリケーションで一般的に使用されるフレームワークです。最近、中間者攻撃に対する脆弱性が報告されました。また、Sparkle を使用する有名なアプリケーションが多数あるため、世界中の IT 管理者が眠れなくなり始めています。

VLC などの一部の影響を受けるアプリケーションは、すでに修正プログラムをリリースしていると報告されています。ただし、Sparkle は非常に長い間存在しているため、積極的に開発されていない他の多くのアプリケーションが存在する可能性がありますが、それらは依然として同じ問題に対して脆弱です。私たちはすでにそのようなアプリケーションに遭遇しました。

Sparkle.framework はランタイム フレームワークであるため、アプリケーション バンドル内で古い (多くの場合 1.5 または 1.6) コードを新しい (1.13.1) コードに置き換えると、アプリケーションを多くの環境で実行できるようになります。ケース。これまでのところ、私たちの簡単なテストは 2 対 2 で有望です (つまり、アプリケーションが起動し、更新のチェックが行われる可能性があります)。しかし、楽観主義者には勇気づけられますが、これは決して包括的な答えではありません。

それでは、専門家に連絡してください。アプリケーション バンドル内の古いバージョンの Sparkle.framework を最新バージョンに置き換えることの欠点 (または障害) は何ですか? これにより、影響を受けるすべてのアプリケーションが更新されるのを待っている間に、実際に脆弱性が緩和される可能性があります。

現在使用されている Sparkle のバージョン、およびどの関数呼び出しがどのバージョンでサポートされているかによって、答えが変わる可能性があります。また、Sparkle の新しいバージョンで廃止された機能があるかどうかにもよりますが、これは私にはわかりません。

0 投票する
0 に答える
72 参照

macos - Sparkle がサンドボックス化されたアプリの更新に失敗する

Sparkle を使用してサンドボックス化されたアプリを更新できますか? 更新は最初は機能しているように見え、更新を求める適切なユーザー ダイアログが表示され、コピーが実行されます。ただし、「アップデートをインストールしています...」の最後でハングします。コンソールログで次のことに気付きました。

他の投稿でこの問題について言及されていますが、それらは 2 年以上前のものであり、これを機能させる方法に関する現在のドキュメントを見つけることができませんでした。

0 投票する
1 に答える
139 参照

ruby - アプリケーションの外部から Sparkle アップデーターを呼び出す

Sparkle フレームワークを使用するすべてのアプリを自動更新する Ruby プログラムを作成しています。そのようなすべてのアプリのリストを作成するのは簡単です。次のステップは、Sparkle アップデーターをトリガーすることです。

別の方法として、アプリの Info.plist からバンドル バージョンと SUFeedURL を取得し、開発者の appcast XML ファイルをダウンロードして解析し、手動でバージョン比較を行い、必要に応じてアプリを開いて更新するようにユーザーに促すこともできます。優れたオープンソース フレームワークがすでにそれを実行していることを考えると、これは時間とクロック サイクルの膨大な無駄のように思えます。

Ruby または bash を使用して、アプリの外部からSparkle の checkForUpdates メソッド (またはさらに良いことに、checkForUpdatesInBackgroundメソッド) を呼び出すことは可能ですか?