Unity 4.2 Android In-App Billing: проверка подписи не удалась
Я тестирую приложение в Unity, используя плагин [31], в котором пользователь может покупать звуки. Если нажата звуковая кнопка, файл.cs PurchasableSound
называется, который определяет, был ли звук куплен или нет. (К вашему сведению, он пытается сделать это, используя PlayerPrefs.GetInt
однако мне так и не удалось заставить его работать). Если звук еще не куплен, я вызываю другой файл.cs, PurchaseSounds
, которая активирует панель в единстве, в которой пользователь может выбрать, купить 4 или 10 из всех покупных звуков. В этом куске кода, GoogleIAB.init(key)
а также GoogleIAB.queryInventory(skus)
выполняются, и один из двух продуктов, упомянутых выше, можно приобрести.
Однако во время исполнения всей сцены на моем устройстве 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)
Понятно, что мой скус не может быть доставлен. Что не так и почему? Связано ли это с хранилищем ключей или настройками ключей в Unity, которые были заполнены по ошибке?
1 ответ
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. Я не использовал Prime[31] раньше, но я думаю, что есть
mHelper = new IabHelper(this, GoogleBase64PublicKey);
код, который предлагается Google должен быть вызван. Вы можете выйти из системы до этого.
2 убедитесь, что ваши sku заклинания правильно. Более того, вы должны сделать элементы опубликованы
3 Вы можете найти проект с открытым исходным кодом, который я написал несколько дней назад, может быть, он может помочь.