2012-06-17 117 views
206

當我嘗試使用應用程序內結算運行我的應用程序時,我收到錯誤消息:「此版本的應用程序未配置爲通過Google Play進行結算。幫助中心獲取更多信息「。此版本的應用程序未配置爲通過Google Play進行結算

我已經在Manifest文件中擁有帳單權限,並且我已經將簽名的.apk作爲草稿上傳到Google Play上,並且我還在手機上安裝了相同的已簽名apk。

有關如何解決此問題的任何幫助?

回答

179

Ahh在嘗試了幾個小時後找到了解決方案。

  1. 谷歌需要一段時間來處理應用程序並將其更新到他們的服務器,對我來說大概需要半天的時間。因此,在將APK保存爲Google Play草稿後,您必須等待幾個小時後,應用內商品才能正常響應,並允許定期購買。
  2. 導出並簽名APK。嘗試進行購買的未簽名APK會出錯。
+61

哇,這是嚴重嗎?剛剛遇到同樣的問題。爲了測試應用內結算,谷歌是否要求我做所有事情,但仍然得到相同的迴避錯誤信息。我想我必須等着瞧。但Google是否真的希望我們的開發人員每次需要更新我們的應用程序以便實施應用內結算時都要等上幾個小時?至少可以說,對我來說這似乎不太合適。 – Simon

+5

連接到Android Studio /連接到調試器時可以測試嗎?或者你需要通過USB安裝發行版apk? –

+3

有沒有更簡單的方法來測試購買過程,除了Android工具>導出簽名項目...等,然後手動將APK複製到設備,測試,....重複?我肯定錯過了什麼? – wired00

129

如果您發佈的版本與您在手機上測試的版本不一樣,將會發生同樣的情況。

例如,上傳的版本是android:versionCode="1",而你在手機上測試的版本是android:versionCode="2"

+2

你可以告訴我,如果上傳的版本是'android: versionCode =「1」'and phone is'android:versionCode =「2」'dose it ok or we have to change my apk google play? – Youddh

+1

你需要做的是將本地版本降爲「1」,以便它與當前的實時版本相匹配,至少暫時用於測試。 – Gromix

+2

看起來像這個錯誤有2個常見的修復,取決於你的情況。在我的情況下,這是一個。 – Matt

43

你需要與你的生活憑證簽署APK。然後將其安裝到您的測試設備上。然後您可以測試InAppBilling。如果你是通過eclipse直接運行到設備來測試你的應用程序(在調試模式下),那麼你會得到這個錯誤。

如果您使用android.test.purchased作爲SKU,它將一路工作,但在最終響應中不會有developerPayload。

如果您在應用程序中使用自己的草稿,則可以一路測試,但是您將收取費用,因此必須自行退款。

您不能購買與您用於Google Play開發控制檯的gmail帳戶相同的項目。

+1

+1運行從調試器使用調試證書。導出應用程序並創建新公鑰(並將其安裝在開發人員控制檯中)後,只需將自己的apk發送給自己並從Gmail收件箱安裝即可。 – cdavidyoung

+0

如果我想嘗試「android.test.purchased」,那麼我是否會在代碼和開發者控制檯中更改SKU? – Rocologo

+0

你是一個*****天才男人! s2 –

1

在我的情況下,我看到了相同的消息,由於安裝的apk的不同簽名和上傳到市場的apk。

2

如果您使用的apk版本不同於Google Play中的版本,則會發生這種情況。

249

此錯誤可能是由幾個原因造成的。

以下是Google IAB測試的要求列表。

先決條件:

  1. AndroidManifest必須包括「com.android.vending.BILLING」 權限
  2. APK內置於發佈模式
  3. APK is signed發行證書
  4. APK上載到α/β分佈信道(先前 - 草案)到顯影劑控制檯至少一次。 (需要一些時間〜2H-24小時)。
  5. IAB 產品發佈及其狀態設置爲活動
  6. 測試帳戶的開發者控制檯添加

考試要求:

  1. 測試APK擁有相同的的versionCode作爲一個上傳到開發者控制檯。
  2. 測試APK是簽署相同的證書作爲一個上傳到dev.console。
  3. 測試帳戶(不是開發人員) - 是設備上的主帳戶
  4. 測試帳戶選擇作爲測試人員,它的鏈接到有效的付款方式。 (@Kyone

P.S:調試與釋放證明https://stackoverflow.com/a/15754187/1321401(日Thnx @dipp的鏈接)

P.P.S:想使這個名單很長一段時間了。

日Thnx @zlgdev@Kyone更新

+1

這是IAP所需的許多條件的一個很好的一點。 +1 – georgiecasey

+2

這應該是這個問題的接受答案! – SARose

+6

這裏最好的答案是,Google自己的文檔沒有這樣的總結,這真是一個恥辱。由於文檔分散且分散,因此與Google Play商店合作令人沮喪。 – enobayram

1

出乎很多答案和SO和其他網站的評論,你不必與您的產品的alpha/beta版本已經從谷歌Play下載進行初步測試到您的測試設備上(alpha/beta發佈過程經常吃半天)。您也無需從開發者工作室加載並重新加載已簽名的發行版apk到您的測試設備。

可以調試初步谷歌使用調試應用程序中的計費服務扮演的開發者工作室直接加載到通過ADB您的測試設備。如果您遇到阻止此問題的錯誤,那麼您的代碼中可能會出現錯誤。要特別密切關注您的SKU(產品ID)的情況和他們的格式(例如,如果您加載您的APK作爲com.mydomain.my_product_id,確保您儘量購買這樣說 - 提供相同的情況下,和域) 。另外,要特別注意你的itemType - 這應該分別爲應用程序購買或訂閱中的託管/非託管應用程序的「inapp」或「subs」。

至於建議的奇拉格帕特爾,只要你有你的帳單代碼正確建立,完成所有測試期間的初步測試使用android.test.purchased SKU(產品ID)。在整個結算操作中檢查此ID是否通過簽名,令牌和有效負載檢查,因爲這些數據不是由Google測試系統提供的。另外,給你的一個測試產品這個ID來測試它的購買,解鎖/加載和演示一直通過你的模式。要清除購買,只需使用它,通過相同的SKU和格式化,這樣一個令牌字符串 - 沒有其他領域是相關的:

"inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased"; 

一旦你完成了測試的這個階段,移動與半帶電測試您的alpha/beta產品。創建一個Google小組(本質上是一個郵件列表),添加測試用戶的電子郵件,添加/邀請這個小組在本階段測試您的設備(在您的應用的Google開發人員列表的「APK」部分執行)。購買將被模擬,但並未實際收取 - 但要清除並重新測試購買,Google表示您必須從Google錢包中退款。這是測試的唯一階段,需要使用alpha/beta加載和測試用戶的耗時過程。

0

我的問題是,我試圖與debug.keystore檢查它,我的意思運行它通過eclipse.I與我發佈到Alpha模式(必須在發佈之前可以測試它)密鑰庫導出它將它安裝在我的手機中,比我可以正常測試它。

3

讓我只是添加發生在我身上的事情,可能有助於某人。

這主要是由於簽字。

既然我已經在項目結構中增加了簽約的細節,我的想法是,希望簽署的apk問題是安裝每次當我運行時間。但選擇了構建類型「調試」。

下面的解決方案爲我解決了這個問題。

  • 建立類型'發佈'的生成簽名apk。
  • 手動安裝apk。
0

當您在上傳apk文件後添加了應用程序內購買,但尚未在Play商店(Alpha,Beta和Production)中發佈應用程序時,也會出現此問題。

這基本上意味着,你必須添加應用程序內購買後,您已經發表在Play商店(α,β和生產)的APK。否則,您將無法購買或查詢應用內購買。

1

有同樣的問題,在此之前,我讀了DZDomi後也沒有解決。突然間,Google Developer Console中有一項設置需要啓用。在「應用程序內購買」部分,您的產品有一條線,最右邊有一條線。它應該是ACTIVE!

0

此處未提及的另一個原因是您需要在真實設備上進行測試。 隨着模擬器變得非常好,這是一個容易犯的錯誤。

相關問題