アプリ内課金用の事前調査メモ
どうも
そのうちアプリ内課金の簡易ラッパー作らないと駄目らしいので
メモしておく
メモ途中)
ベータテスト環境の構築)
ネタ帳 A.B.C: Google Play アルファ/ベータ版テスト メモ
情報を安易に抜かれないための施策)
パズドラとかは以前は
だったらしいんですけど
やはり対策されたようで
あたりの感じみたい。
まあココらへんってお金に絡む話だから神経質にはなるかもな。。。
改竄防止施策)
なのが一般利用者レベルで 口コミではやってる みたいなので
あたりも必須かもしれない。。。
ちょっと前にTLに流れてた署名改竄は
で防げるかもしれないけど、照合キーどこで取得させるんだろう?
NW経由だと
あたりでスニッフアーされそうだしな。。頭痛い
だとするとアプリ埋め込み?
この手のチェッカーって
ゲームとかのCDチェックをバイナリエディタで潰すとか
同じ事遣られると難しい気がしますね。。結局。。
でGoogleみたいにfingerprint参照すればいいんじゃない?
という話がでて調べてた
http://twitter.com/kimukou2628/status/362499199100665856:twitter:detail:right
@kimukou2628 このあたりでどうでしょうか? URL
2013-08-01 04:38:00 via web to @kimukou2628
@kimukou2628 証明書を取ってそれをハッシュすれば良いのかなと考えています。
2013-08-01 04:38:44 via web to @kimukou2628
http://twitter.com/kimukou2628/status/362733275384524801:twitter:detail:right
http://twitter.com/kimukou2628/status/362734443900837889:twitter:detail:right
ココらへんは実は別件で調べてたんですけどね(汗
- 会社間のアプリでアプリ連携したい(ContentProviderを使うのがいいのかな?)
- でも他のアプリには使わせたくない
- でもそのアプリ既にmarketにアップしてるので署名差替して共通ユーザとしてのセキュリティはつかえないよね
- Android ContentProviderの制限 同じ証明書を持ったアプリのみアクセス可能にする。 | Taosoftware Developer Blog
- じゃあ他の方法で弾くしか無いんじゃない?
というお話。
キーが共通してればな−とか思いつつ
そこまで考えて作ってないんだろうなというのが正直な処。
- コードの綺麗さ汚さはどうでもいい
- 最小の期間で最大の効果(見た目や動きや音)が出ればいい
な感じだから仕方ないのかもね。
一応キーを共通化してると
な事も可能なのをメモ。
端末限定化)
google PlayのWalletだけでみると
アカウント単位での購入履歴はOKだけど、
端末区別をするにはやはり難しいかなと思う*1
LVL)
- 2012.07.10 - LVL 導入でつまずいたことメモ
- Y.A.M の 雑記帳: Android Application Licensing
- 2010-10-09 - @vvakame の日記
- Y.A.M の 雑記帳: Android LVL を使う - Securing Android LVL Applications -
- LVL(License Verification Library)の導入 - TOPGATE Google関連技術サイト
ただLVLはそのまま実装しただけだとセキュリティ的に甘いので
下記の対応が必要とのこと
課金自体のメモ)
- Android アプリ内課金でProguardを使用するとき - 自力でゲーム開発
- サンプル課金プログラムの強制終了(ServiceのonStart, onStartCommandでIntentがnullになる) - 自力でゲーム開発
- IabHelperのバグ - fkm 〜 Super Software Entertainerへの道 〜
読んでる。 Androidアプリ開発の紆余曲折: Google Play In-App Billing テスト方法 URL
和訳読んでる。 ymkwt Blog (Android,Google App Engine,恋話 etc.): アプリ内課金の準備 Preparing Your In-app Billing Applicatio... URL
デバック関連)
- http://nek-blog.blogspot.jp/2011/09/anr-dalvikvm-wrote-stack-traces-to.html
- bind されてても stopService で止まるサービスの作り方 - Qiita
これは別件*2でも調べてみたけど
このcoustom_keyってプロジェクトごとに設定できると理想かも。。
- create_custom_key.sh
key_store=key key_alias=irof_history key_store_password=hoge key_alias_password=driven #デバック用の出力キー(release keyを変換) key_store_custom=key_debug keytool -importkeystore -v \ -srckeystore $key_store \ -destkeystore $key_store_custom \ -srcstorepass $key_store_password \ -deststorepass android \ -srcalias $key_alias \ -destalias androiddebugkey \ -srckeypass $key_store_password \ -destkeypass android exit 0
TLメモ)
@zaki50 Activity再起動のシナリオは見落としがち><
2013-08-07 19:50:47 via Twitter for Mac to @zaki50
@fkm ADB を有効にする設定画面に「Activity を保持しない」みたいな項目があるので、これを有効にして開発すると結構バグ見つけられる。プロセスが殺されるのまで再現できないけどわりと似たような感じなのでお勧め
2013-08-07 19:57:19 via YoruFukurou to @fkm
@zaki50 プロセスはDDMS経由で殺すと再現できるっぽいですねー(今、手元で試して見事にFragmentのbackstackがぐちゃぐちゃに(´・_・`)
2013-08-07 20:06:44 via Twitter for Mac to @zaki50
@fkm それより JAG で PreferenceFragment の質問に答えてたけど support package に PreferenceFragment ないよ
2013-08-07 20:09:17 via YoruFukurou to @fkm
@zaki50 ぬ!
2013-08-07 20:10:28 via Twitter for Mac to @zaki50
僕もほんとはTwitPaneの広告消して使いたい
あと、月額課金って少なくともdocomoのキャリア決済は通らなかったから基本的にクレカ必須でハードル高いよ。
@takke 今はドコモの月額課金のキャリア決済対応してますよ。
@mbk_yap あれれ、こないだ決済できなかったんですけどねぇ。
2013-08-15 16:34:34 via Tween to @mbk_yap
Amazon AppStoreではバージョン番号に数字とドットしか使えないのか。微妙にAndroidと仕様が違うんだな・・・。面倒くさい。
2013-08-14 07:19:54 via web
@kimukou2628 最初同一バイナリでリリースしようとしたらAmazonだけリンクを消さないといけなくなってバイナリを分ける事になりました。それでバージョン名をGoogle PlayとAmazonで変えたかったんですが・・・。
2013-08-15 02:42:32 via web to @kimukou2628
@kimukou2628 どちらのストアからダウンロードされたか判別する手段はありますか?あと、AndroidかKindleかの判定も。
2013-08-15 02:53:12 via web to @kimukou2628
@kimukou2628 端末の種類をユーザーに入力させるんですか?それで通るならいいですね。
2013-08-15 02:56:20 via web to @kimukou2628
@kimukou2628 build.MODELにkindleって入ってるかどうかで判定ですか。年齢性別はGoogle+のアカウントから判定ですかね。やると問題になりそうですが。
2013-08-15 03:02:09 via web to @kimukou2628
@kimukou2628 うちの場合Google+のAPIとかIn-app billingとかあるので、かなり大変そうです・・・
2013-08-15 03:03:29 via web to @kimukou2628
@kimukou2628 AmazonのIn-app billingは手数料高いんで別の方法にしたいとか思ったり・・・たぶん登録拒否されるんでしょうけど^^;
2013-08-15 03:08:35 via web to @kimukou2628
@kimukou2628 キャリア決済は滅多に通らないんであっても無くても大して変わらない気が。
2013-08-15 03:09:35 via web to @kimukou2628
@kimukou2628 AmazonのIn-app billing(webappの方)は申し込んだんですが、向こうから電話すると返事があり2ヶ月待ってるんですが音沙汰無し。その間何度かメールしたんですが返事も無し。いったいどうなってるんだ〜という感じです。
2013-08-15 03:16:23 via web to @kimukou2628
@kimukou2628 Google Walletは実装しました。
2013-08-15 03:17:54 via web to @kimukou2628
@kimukou2628 決済失敗のメールが山のように来るので困ります。あと、ユーザーの苦情も。そういうのはキャリアに言って貰わないとこちらではどうしようも無いのですが・・・。
2013-08-15 03:21:14 via web to @kimukou2628
@kimukou2628 ドキュメントが間違いまくりで苦労しましたよ。サンプルすら動かなかったし。でも分かれば結構簡単でした。
2013-08-15 03:23:21 via web to @kimukou2628
@kimukou2628 うちのウェブサイトで実装してますよ。PCで押したらgoogle wallet決済になります。ajaxでびよーーんって決済画面が降りてきますwURL
2013-08-15 03:25:25 via web to @kimukou2628
in -app billing のサンプルコード新しくなったから、流用してるアプリはアップデートしろってメールきてるな
@yanzm 後でdiffとってみますー
2013-10-22 09:33:58 via Twitter for Mac to @yanzm
@fkm お、結果教えてー
2013-10-22 09:35:53 via twicca to @fkm
@yanzm ブログにちゃんとまとめますが、速報レベルだと、IabHelperの破棄チェック改善/非同期のフラグ処理のミス(以前fkmが指摘してたやつ)/Securityのverification改善(特定のパターンでチェックが抜ける)のようです。
2013-10-22 09:54:31 via Twitter for Mac to @yanzm
直近からのdiffだと、setPackage()の追加だけか。。。orz
2013-10-22 10:03:31 via web to @fkm
@yuichi_araki メールにdiff、ついてましたね。。。(´・_・`)
ということでブログ書いた. IabHelperを使っている人は急いで修正をURL