[Androidアプリ開発] Titanium Mobile のビルドエラー

システム部の中村です。

こんにちわ 来月友人の結婚式があるのに着ていくスーツが無く (太ってスーツが着れるか?)どうしたものかと・・・・

さて今日は titanium(タイタニウム)のお話です。

TITANIUM_logo1

Android開発・iOS開発を同時に行う際、TITANIUM(タイタニウム)を使う開発者の方が多いかと思われますが、

Titanium Studio のVer3.2系でANDROID用APKをビルドすると一旦は成功はするが、GooglePlayにアップロードすると、

GooglePlay経由でアプリをダウンロードすると、”パッケージファイルに正しく署名されていません”というエラーが発生する場合が多々あります。

原因はjavaSDK とTitanium Studio のビルド方法に問題があります。

ただTitanium Studioのビルド方法が変えられない為かなり強引なやり方で対応しないとなりません。

詳しく書くと、 Titanium Studio ではjdk1.6系を使うが、JDK1.6でビルドする場合は、公開鍵をSHA256withRSA でビルドすると、正しく署名されていないというエラーがでます。 

jdk 1.6.0 では SHA1withRSA でビルドする事が必要である。

MAC版では色々方法が書かれていますが、Windows版の資料がほとんど無く、色々試行錯誤してみました。

 

 

解決方法

普通にビルドします。そのうえでTSは鍵をつける前のパッケージを作り、自動的に鍵を埋め込むのですが(この段階でSHA256で鍵を作るので失敗する)、鍵を埋め込む前のパッケージを取り出し、かぎをつけるオプションを変え鍵をつけます。


"C:\Program Files (x86)\Java\jdk1.7.0_40\bin\jarsigner.exe" "-sigalg" "SHA1withRSA" "-digestalg" "SHA1" "-keystore" "C:\Users\Nakamura\Desktop\keys" "-storepass" "ここに鍵のパスワード" "-signedjar" "C:\Users\Nakamura\Desktop\AP\build\android\bin\yamatoap.apk" "C:\Users\Nakamura\Desktop\AP\build\android\bin\app-unsigned.apk" "ここに鍵のエイリアス"

 

こんな感じです。 ~SHA1withRSA にするのがミソです

これで生成したAPKをアップすれば、成功です。

コンソールをメモ帳などに、一回全部突っ込み、そこから必要な箇所(SHA1化)するところから自動実行されることを行えば綺麗なAPKの出来上がりです。