0

xcode が行う iOS png 最適化の複製に問題があるようです。私たちのアプリでは、バンドルに保存されているファイルのチェックサムとサーバー上のファイルのチェックサムを比較することにより、ユーザーはアセット サーバー経由でコンテンツを更新できます。png がサーバーにアップロードされる前に、xcode 開発者ディレクトリ内の iphoneos-optimize スクリプトが実行されます ( Stack Overflow の投稿)。問題は、png に対して (サーバーとデバイスの両方によって) 実行されるチェックサムが異なる結果を生成することです。

これは、シミュレーターではなくデバイスでテストされていることに注意してください (png を破壊しません)。また、表示される結果は同じですが、チェックサムが異なるだけです。

4

2 に答える 2

1

重複がないことを確認するためにチェックサムを使用していると思います。

のオプションを見るとpngcrush、手順の実際の結果は予測できないようです。Xcodeによって呼び出されるためpngcrush、どのオプションを使用するかはわかりません。

私のアドバイスは、アセットを一意に識別するための別のスキームを見つけることです。これは、命名スキーム、サーバーURLの操作、またはそれらの組み合わせである可能性があります。

于 2011-08-05T17:56:56.233 に答える
1

バンドル .png をデバイスからサーバーにアップロードするテストを作成して、画像をより徹底的に分析できるようにしました。.png ファイルを開くと、実際に画像を見ることができました。これは、XCode ビルド プロセスによって (バイトなどを交換するため) 壊れていないことを示しています。次に、XCode 内のビルド設定から png 圧縮を無効にして、再試行しました。今回サーバーに送られてきた画像はpngcrushedで、ファイルのチェックサムは手動でつぶした画像と一致していました。XCode 3.2.6 のビルド設定が逆になっている可能性があります。次に、XCode 3.2.5 を実行している同僚のマシンでテストしたところ、設定は期待どおりに機能しました。圧縮フラグが設定されていると、画像がつぶれてしまいます。

この問題についてグーグルで検索してみましたが、この件に関するバグや問題のレポートは見つかりませんでした。ただし、証拠は、それが XCode の問題であることを示唆しています。これについて別の当事者から確認を受けるとよいでしょう。

于 2011-08-08T14:59:57.790 に答える