2013-09-06 2 views
4

Я тестирую приложение в Unity с помощью плагина [31], в котором пользователь может приобрести звуки. Если щелкнуть звуковую кнопку, вызывается файл .cs PurchasableSound, который определяет, был ли звук приобретен или нет. (FYI пытается это сделать, используя PlayerPrefs.GetInt, однако мне не удалось заставить его работать). Если звук еще не был приобретен, я вызываю другой файл .cs, PurchaseSounds, который активирует панель в единстве, в которой пользователь может выбрать покупку 4 или 10 всех приобретаемых звуков. В этом фрагменте кода выполняются GoogleIAB.init(key) и GoogleIAB.queryInventory(skus), и один из двух продуктов, упомянутых выше, можно приобрести.Unity 4.2 Android In-App Billing: проверка подписи не выполнена

Однако, во время выполнения всей сцены на моем Android устройства, то Signature verification терпит неудачу:

09-06 18:10:08.998: I/Unity(10536): 
09-06 18:10:08.998: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:09.008: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:09.008: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:09.008: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:09.028: I/Unity(10536): PurchasableSound has been called. 
09-06 18:10:09.028: I/Unity(10536): 
09-06 18:10:09.028: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:09.028: I/Unity(10536): PurchasableSound has been called. 
09-06 18:10:09.028: I/Unity(10536): 
09-06 18:10:09.028: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:09.028: I/Unity(10536): PurchasableSound has been called. 
09-06 18:10:09.028: I/Unity(10536): 
09-06 18:10:09.028: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:09.339: I/Unity(10536): billingSupportedEvent 
09-06 18:10:09.339: I/Unity(10536): 
09-06 18:10:09.339: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:09.359: I/Unity(10536): queryInventoryFailedEvent: Error refreshing inventory (querying owned items). (response: -1003:Purchase signature verification failed) 
09-06 18:10:09.359: I/Unity(10536): 
09-06 18:10:09.359: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:11.181: D/dalvikvm(6337): GC_EXPLICIT freed 25K, 46% free 3096K/5639K, external 0K/0K, paused 54ms 
09-06 18:10:11.881: E/NativeActivity(10536): channel '4068a288 com.gumasd.beta/com.unity3d.player.UnityPlayerNativeActivity (client)' ~ Failed to receive dispatch signal. status=-11 
09-06 18:10:12.212: E/NativeActivity(10536): channel '4068a288 com.gumasd.beta/com.unity3d.player.UnityPlayerNativeActivity (client)' ~ Failed to receive dispatch signal. status=-11 
09-06 18:10:12.222: E/NativeActivity(10536): channel '4068a288 com.gumasd.beta/com.unity3d.player.UnityPlayerNativeActivity (client)' ~ Failed to receive dispatch signal. status=-11 
09-06 18:10:12.232: I/Unity(10536): PurchasableSound: Click 
09-06 18:10:12.232: I/Unity(10536): 
09-06 18:10:12.232: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:12.232: I/Unity(10536): PurchasableSound: Sound has not yet been purchased. 
09-06 18:10:12.232: I/Unity(10536): 
09-06 18:10:12.232: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:12.282: I/Unity(10536): PurchaseSounds has been called. 
09-06 18:10:12.282: I/Unity(10536): 
09-06 18:10:12.282: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:12.282: I/keystore(1255): uid: 1000 action: e -> 7 state: 3 -> 3 retry: 4 
09-06 18:10:12.292: D/Finsky(3418): [32] InAppBillingUtils.getPreferredAccount: com.gumasd.beta: Account from first account - [1sBSp5jt9jfvUfoG2wXSTiotEok] 
09-06 18:10:12.292: I/Unity(10536): GoogleIAB: init was called. 
09-06 18:10:12.292: I/Unity(10536): 
09-06 18:10:12.292: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:12.292: I/Unity(10536): GoogleIAB: queryInventory was called. 
09-06 18:10:12.292: I/Unity(10536): 
09-06 18:10:12.292: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:12.302: D/Finsky(3418): [36] InAppBillingUtils.getPreferredAccount: com.gumasd.beta: Account from first account - [1sBSp5jt9jfvUfoG2wXSTiotEok] 
09-06 18:10:12.312: D/Finsky(3418): [37] InAppBillingUtils.getPreferredAccount: com.gumasd.beta: Account from first account - [1sBSp5jt9jfvUfoG2wXSTiotEok] 
09-06 18:10:12.322: D/Finsky(3418): [37] InAppBillingUtils.getPreferredAccount: com.gumasd.beta: Account from first account - [1sBSp5jt9jfvUfoG2wXSTiotEok] 
09-06 18:10:12.332: I/Unity(10536): billingSupportedEvent 
09-06 18:10:12.332: I/Unity(10536): 
09-06 18:10:12.332: I/Unity(10536): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54) 
09-06 18:10:12.352: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.352: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.352: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.372: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.372: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.372: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.382: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.382: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.382: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.412: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.412: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.412: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.432: D/dalvikvm(10536): GC_CONCURRENT freed 262K, 46% free 3072K/5639K, external 2K/514K, paused 3ms+4ms 
09-06 18:10:12.432: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.432: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.432: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.442: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.442: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.442: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.452: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.452: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.452: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.452: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:12.452: W/Prime31-SEC(10536): signature does not match data. 
09-06 18:10:12.452: W/Prime31-IABH(10536): In-app billing warning: Purchase signature verification **FAILED**. Not adding item. 
09-06 18:10:12.462: I/Unity(10536): queryInventoryFailedEvent: Error refreshing inventory (querying owned items). (response: -1003:Purchase signature verification failed) 

Я не понимаю, почему это происходит. Я уверен, что нет ничего плохого в лицензионном ключе Base64, который я добавил. Основанный на 09-06 18:10:12.332: I/Unity(10536): billingSupportedEvent, GoogleIAB инициализирует, но от queryInventoryFailedEvent: Error refreshing inventory (querying owned items). (response: -1003:Purchase signature verification failed) ясно, что мой skus не может быть извлечен. Что происходит не так и почему? Это связано с настройками хранилища ключей или ключами в Unity, которые были заполнены ошибочно?

+0

Мы были бета-тестированием MobiShop (https://www.assetstore.unity3d.com/ru/#!/content/63636) в нашем проекте и имели аналогичную проблему, однако это было разрешено, когда мы загрузили альфа-сборку в Google Консоль разработчика. Вы не можете проверить покупки до этого, и вы должны назначить тестового пользователя для его проверки. – Chris

ответ

0

1. Я заметил

09-06 18:10:09.008: E/Prime31-SEC(10536): Signature verification failed. 
09-06 18:10:09.008: W/Prime31-SEC(10536): signature does not match data. 

Итак, я предполагаю, что ваш открытый ключ неверен, попробуйте проверить свой открытый ключ. Вы можете добавить код входа в систему Android. Я не использовал премьер [31] раньше, но я думаю, есть

mHelper = new IabHelper(this, GoogleBase64PublicKey); 

код, который предлагает Google должен быть вызван. Вы можете выйти из него до этого.

2. убедитесь, что ваши sku заклинания правы. Кроме того, вы должны сделать публикацию статей

3. Вы можете найти проект с открытым исходным кодом here, который я написал за несколько дней до этого, может быть, это может помочь.