ページへ戻る

− Links

 印刷 

cocos2d-x​/ver2系libpng問題の対応方法 のソース :: NJF Wiki

xpwiki:cocos2d-x/ver2系libpng問題の対応方法のソース

« Prev[3]  
*始めに [#raaa8e69]
libpngの脆弱性の問題で、ライブラリ入れ替えなどの対応しなければgoogle playからアプリを削除されるという事が2016年頃にありました。

その時にすぐに対応したのですが、最近、coocs2d-xのver2.1を2.6に上げたとき、公開されているcocos2d-xに入っているlibpngが古くて再びgoogle play登録時にリジェクトされたので、その対応を2018年5月に行いました。

二度目の作業にもかかわらず、もう対応することはないだろうと、作業方法などメモしておらず、一から調べ直してちょっと手間がかかりました。今後似たようなことがあったときのためにこちらにやり方を記しておきます。

*ライブラリの入れ替え [#t9bb26af]

まず、以下のサイトでcocos2d-xのサードパーティーのライブラリをダウンロードして解凍します。
[[https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/pull/233]]

次に、自分のプロジェクト内の以下のディレクトリをダウンロードしたディレクトリで上書きします。
-cocos2dx/platform/third_party/android/prebuilt/libpng

また、ダウンロードした以下のディレクトリを自分のプロジェクトに追加します。
-cocos2dx/platform/third_party/android/prebuilt/zlib

*Android.mkの書きかえ [#pd1aeb66]
「cocos2dx/Android.mk」を以下のリンクのように変更します。

[[https://github.com/cocos2d/cocos2d-x/pull/15938/commits/d5c0b596a5f816274aecd3484abad60eb784d4a5]]

つまり、フラグから「-lz」を取り除き、ライブラリとしてzlibを追加します。

あとは「build_native.sh」などでビルドして完了です。

*確認 [#k864337b]

実際にリンクされたlibpngのバージョンを確認するには、作成されたlibgame.soに対して、以下のようにstringsを実行します。

 strings libgame.so |grep 'png version'

結果が以下のようにv1.0.66, v.1.2.56, v.1.4.19,またはv1.5.26より後ならOKです。
 libpng version 1.6.16 - December 22, 2014
  libpng version 1.6.16 - December 22, 2014

« Prev[3]