2012年10月1日月曜日

[安藤]上傳/更新App戰後檢討

[安藤]上傳/更新App戰後檢討

eclipse的習慣:
不要快速按多次run/debug,有時會導致xml壞掉
新增檔案,修改檔案要自己存檔。build的時候不會幫你把所有修改過的檔案存檔。然後build之前要refresh。
該死的eclipse有時候會吃舊參數...

上傳 App的重要rule:
APP一定要簽名
第一次上傳之後,更新版本所使用的簽名要跟之前用的一樣
不小心傳了debug 模式的系統自動產生簽名上去/簽名丟了/密碼忘記,就代表你永遠無法更新此App
然後App也無法刪除,所以package name永遠會被佔用。
也無法從之前的apk取得sign。
解決方法就是將它下架之後上傳一個新的。




第一次上傳app的時候需要做的事情:
1.若是你喜歡手動為apk簽名, 記得eclipse輸出的時候要使用project-->右鍵-->android tools-->export with unsigned package 的方法輸出未簽名過的。要不然手動簽名都會失敗。


2.使用java package裡面內建的
keytool -genkey -alias xxx.keystore -keyalg RSA -validity 36500 -keystore xxx.keystore
製作數位簽名。其它欄位重要度比較嘟可以隨便填,記得密碼別忘了。
validity的日數至少要設定25年以上(咕狗限制)。


3.用eclipse export with signed apk或是手動簽,下面是手動簽的指令(該程式也是java package內建):
jarsigner -keystore xxx.keystore -signedjar signed.apk notsigned.apk xxx.keystore


4.不要使用把APK解開之後,把裡面的rsa砍掉再簽名的方法。那會造成多重簽名(我被這問題整了一陣子)。 可用下面的指令檢查你的apk是不是有多重簽名: jarsigner -verify -certs -verbose xxx.apk


更新版的時候要注意的事項
1.package name要一致(通常不會有人改,因為你的code也會跟著大改)
2.androidmanifest.xml 的version number要+1,version name也要變化。
3.所使用在apk上的簽名要跟之前用的一樣


google map api相關:
1.project properties裡面的build target要換成google apis. 用android版本號的target會不帶google maps的jar模組。

2.把你的簽名使用
keytool -list -alias xxx.keystore -keystore xxx.keystore
跑過,就會出現一串像這樣的MD5:
12:34:56:78:90:21:43:65:78:09:13:24:35:46:57:68

3.到 https://developers.google.com/android/maps-api-signup?hl=es-ES
放進前面所得到的md5。

4.然後google網頁會給你一串密碼。把它放到 com.google.android.maps.MapView 元件的 android:apiKey 參數裡面吧。


不能reset自己的APP真的是不方便到了極點...(白化)
不過為了安全跟唯一性也沒辦法。

0 件のコメント:

コメントを投稿