Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Introducing Unibill - the cross platform In App purchase plugin!

Discussion in 'Assets and Asset Store' started by Banderous, Jan 16, 2013.

  1. pretender

    pretender

    Joined:
    Mar 6, 2010
    Posts:
    862
    Hi! I updated to latest Unibill from the store using Unity4.3 then copied over to my Unity3.5.7 project and erase win8 dll. It reports the following error:
    Code (csharp):
    1. Internal compiler error. See the console log for more information. output was:
    2. Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
    3. File name: 'System.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
    4.   at (wrapper managed-to-native) System.Reflection.Assembly:InternalGetType (System.Reflection.Module,string,bool,bool)
    5.   at System.Reflection.Assembly.GetType (System.String name, Boolean throwOnError, Boolean ignoreCase) [0x00000] in <filename unknown>:0
    6.   at System.Reflection.Assembly.GetType (System.String name) [0x00000] in <filename unknown>:0
    7.   at Mono.CSharp.RootNamespace.GetTypeInAssembly (System.Reflection.Assembly assembly, System.String name) [0x00000] in <filename unknown>:0
    8.   at Mono.CSharp.RootNamespace.LookupTypeReflection (Mono.CSharp.CompilerContext ctx, System.String name, Location loc, Boolean must_be_unique) [0x00000] in <filename unknown>:0
    9.   at Mono.CSharp.GlobalRootNamespace.LookupTypeReflection (Mono.CSharp.CompilerContext ctx, System.String name, Location loc, Boolean must_be_unique) [0x00000] in <filename unknown>:0
    10.   at Mono.CSharp.Namespace.LookupType (Mono.CSharp.CompilerContext ctx, System.String name, Location loc) [0x00000] in <filename unknown>:0
    11.   at Mono.CSharp.Namespace.Lookup (Mono.CSharp.CompilerContext ctx, System.String name, Location loc) [0x00000] in <filename unknown>:0
    12.   at Mono.CSharp.TypeManager.CoreLookupType (Mono.CSharp.CompilerContext ctx, System.String ns_name, System.String name, Kind type_kind, Boolean required) [0x00000] in <filename unknown>:0
    13.   at Mono.CSharp.TypeManager.InitCoreTypes (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0
    14.   at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
    15.   at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
    Any chance in making this to work with Unity3.5.7. Please let me know what to do to make it work on 3.5.7
    Thank you!
     
  2. pretender

    pretender

    Joined:
    Mar 6, 2010
    Posts:
    862
    I definitely shouldn't have updated! :-(
     
  3. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Dreamwriter are you formatting the price on Amazon yourself?

    The Amazon SDK tester does not format prices including currency symbols, though they include symbols when running against the live amazon service.

    @pretender you need to delete both Win8 and Windows phone 8 dlls for 3.x
     
  4. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    I'm having some weird behaviour...

    unibill 1.4.0
    unity 4.3.4f1 free version

    building an apk and uploading to nexus 4:

    unibill example scene OK
    my project OK
    my project + unibill crash after splash screen

    Build + debug (pushing to nexus 4):

    unibill example scene OK
    my project OK
    my project + unibill OK

    and this apk if I upload it manually fails too
     
  5. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Take a look at the device output using adb.
     
  6. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    Code (csharp):
    1. I/Unity   ( 1789):
    2. F/libc    ( 1789): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 1815 (UnityMain)
    3. I/DEBUG   (  171): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    4. I/DEBUG   (  171): Build fingerprint: 'google/occam/mako:4.4.2/KOT49H/937116:user/release-keys'
    5. I/DEBUG   (  171): Revision: '11'
    6. I/DEBUG   (  171): pid: 1789, tid: 1815, name: UnityMain  >>> com.hxxxxxxy.xxxxxxa <<<
    7. I/DEBUG   (  171): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000004
    8. I/DEBUG   (  171):     r0 7912df80  r1 76324dd0  r2 00000000  r3 760b4610
    9. I/DEBUG   (  171):     r4 00000000  r5 791301a0  r6 75fa79e4  r7 791302f0
    10. I/DEBUG   (  171):     r8 79007a58  r9 864b5050  sl 00000004  fp 00000001
    11. I/DEBUG   (  171):     ip 75fa7c88  sp 76324510  lr 759475c4  pc 759475c4  cpsr 60010010
    12. I/DEBUG   (  171):     d0  6335666139386134  d1  3337353630633761
    13. I/DEBUG   (  171):     d2  6c6f682e79746973  d3  2f6b70612e312d61
    14. I/DEBUG   (  171):     d4  622f737465737361  d5  2f617461442f6e69
    15. I/DEBUG   (  171):     d6  6239313865366134  d7  3466633032306463
    16. I/DEBUG   (  171):     d8  0000000000000000  d9  0000000000000000
    17. I/DEBUG   (  171):     d10 0000000000000000  d11 0000000000000000
    18. I/DEBUG   (  171):     d12 0000000000000000  d13 0000000000000000
    19. I/DEBUG   (  171):     d14 0000000000000000  d15 0000000000000000
    20. I/DEBUG   (  171):     d16 0000000000000000  d17 0000000000000000
    21. I/DEBUG   (  171):     d18 40f86a0000000000  d19 0000000000000000
    22. I/DEBUG   (  171):     d20 0000000000000000  d21 3ff0000000000000
    23. I/DEBUG   (  171):     d22 c2231a44c39659e0  d23 3f800000c28d341b
    24. I/DEBUG   (  171):     d24 000000003f800000  d25 0000000000000000
    25. I/DEBUG   (  171):     d26 3f80000000000000  d27 0000000000000000
    26. I/DEBUG   (  171):     d28 0000000000000000  d29 000000003f800000
    27. I/DEBUG   (  171):     d30 bf8f84a0bfa10a00  d31 4000000000000000
    28. I/DEBUG   (  171):     scr 80000012
    29. I/DEBUG   (  171):
    30. I/DEBUG   (  171): backtrace:
    31. I/DEBUG   (  171):     #00  pc 0062e5c4  /data/app-lib/com.xxxxxx.xxxxxxx-1/libunity.so (Resources_CUSTOM_Load(ICallString, MonoObject*)+488)
    32. I/DEBUG   (  171):     #01  pc 0002e16c  <unknown>
    33. I/DEBUG   (  171):
    34. I/DEBUG   (  171): stack:
    35. I/DEBUG   (  171):          763244d0  00000000  
    36. I/DEBUG   (  171):          763244d4  00000000  
    37. I/DEBUG   (  171):          763244d8  8676839c  [anon:libc_malloc]
    38. I/DEBUG   (  171):          763244dc  00000000  
    39. I/DEBUG   (  171):          763244e0  86745d4c  [anon:libc_malloc]
    40. I/DEBUG   (  171):          763244e4  00000018  
    41. I/DEBUG   (  171):          763244e8  00000001  
    42. I/DEBUG   (  171):          763244ec  7632454c  [stack:1815]
    43. I/DEBUG   (  171):          763244f0  00000000  
    maybe loading UnityEngine.Resources.Load ("unibillInventory.json") ???
     
    Last edited: Mar 9, 2014
  7. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Camtrack A segmentation fault would indicate a Unity bug. This only occurs when debugging?
     
  8. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    it no occurs when debugging :-(

    only occurs if i upload the apk install an then play

    if the process is done via pushing the content on the mobile by pushing play on the editor the game works as normal
     
  9. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    I have found the fix , I had to add . txt after json in this line

    Code (csharp):
    1.      
    2.  
    3.         if (UnityEngine.Resources.Load ("unibillInventory.json.txt") == null) {
    4.             Debug.LogError("You must define your purchasable inventory within the inventory editor!");
    5.             this.gameObject.SetActive(false);
    6.             return;
    7.         }
    8.  
    9.  
    10.  
     
  10. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    im afraid that solution dont work .. it dont crash but unibill dont work snif snif
     
  11. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Camtrack again take a look at the logcat output.
     
  12. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    with txt log output :

    E/Unity ( 3073): You must define your purchasable inventory within the inventory editor!

    so really it is loading nothing thats the reason it does not crash

    and without txt. resource load crash....


    it seems to be a unity problem :-(
     
  13. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    You can remove that resource load from your code anyway, it is only there in the demo in case someone runs it without inventory defined.
     
  14. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    it seems to crash on another Resources.Load ...

    and it works perfect if debug via unity editor pushing to the nexus 4....



    Code (csharp):
    1. I/Unibill ( 6258): initialise: {"publicKey":"MIIBIjANBgksdfgdsfgdfsgdfsgfdsgdfsgfdsgsdfgrpVVcamsnRGCdsfgdsfgfdsgfdsgfdsgdl8TO01HYtDZHQ/P2i9MlTBkKk6p4SfdsgfdsgfdsgdfsgdfsgsdfgdfsgdfsgQVOTv/sdfgdfsg9kteLlWQ6MiTZwZtOFs2xBEndxdfsgdsfgfdsgFPyDyae5fHUHrqXLIA/AOIumI5r59DVYwIDAQAB", "products":[{"productId":"com.tyrretrtytry.hola.camisetaprueba1", "consumable":false}]}
    2.  
    3. I/Unibill ( 6258): IAB helper created.
    4.  
    5. I/Unibill ( 6258): Starting in-app billing setup.
    6.  
    7. W/ContextImpl( 6258): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:517 com.outlinegames.unibill.IabHelper.startSetup:291 com.outlinegames.unibill.UniBill.initialise:99
    8.  
    9. I/Unibill ( 6258): Billing service connected.
    10.  
    11. I/Unibill ( 6258): Checking for in-app billing 3 support.
    12.  
    13. D/Finsky  ( 5654): [6414] InAppBillingUtils.pickAccount: com.erterterwterwt.hola: Account determined from installer data - [a3aZvrtyreyryrtySuNjFF1U]
    14.  
    15. I/Unibill ( 6258): In-app billing version 3 supported for com.dfyrtyrtytry.hola
    16.  
    17. D/Finsky  ( 5654): [6438] InAppBillingUtils.pickAccount: com.dfytrtret.hola: Account determined from installer data - [a3aZv1U9nrtyreyreyxjSuNjFF1U]
    18.  
    19. I/Unibill ( 6258): Subscriptions AVAILABLE.
    20.  
    21. I/Unibill ( 6258): onIabSetupFinished: 0
    22.  
    23. I/Unibill ( 6258): Requesting 1 products
    24.  
    25. I/Unibill ( 6258): QueryInventory: 1
    26.  
    27. I/Unibill ( 6258): Starting async operation: refresh inventory
    28.  
    29. I/Unibill ( 6258): Querying owned items, item type: inapp
     
  15. Camtrack

    Camtrack

    Joined:
    Jan 1, 2013
    Posts:
    27
    at the end I have found the reason !!!!!

    I dont know why but if the I have enabled "split application binary" it wont load resources...

    but my apk is less than 50mb any way so it havent been split but resources arent there ...

    omg.... I hope this helps the next one
     
  16. pretender

    pretender

    Joined:
    Mar 6, 2010
    Posts:
    862
    Hi! Here are my questions:

    1.) Sorry if I am missing the obvious but should script, where Unibill is initialized and where it subscribes to events,be marked with DontDestroyedOnLoad so it is available in other scenes?

    2.) When using Android SDK tester app on amazon clicking on every of those three buttons in the app tells me that there is network error (testing purchase from unity app works though)

    3.) I am using one more Android plugin and since I am still using Unity 3.5.7 I had to manually copy the contents of Unity assets (minus win dlls) to Plugins/Android. Unibill and other plugin I am using (FacebookSNS) share some folders (res folder and others) so it is a mess to copy all those things. Folders get overwritten and whole thing breaks. Is there any other efficient way to do this?

    This is for now, thanks for this great plugin!
     
  17. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @pretender

    1. Unibill is initialized with a static method call, you don't create any objects or prefabs, Unibill is responsible for managing all this behind the scenes.

    2. Have you got the SDK tester configured to report errors? You can make it simulate network errors.

    3. The pollution of the res/ folder is unfortunate, and was required by the Samsung Apps implementation. If you don't need samsung apps you can remove all the strings from here. This may be revisited longer term.
     
  18. pretender

    pretender

    Joined:
    Mar 6, 2010
    Posts:
    862
    I am confused now because I have main scene where Unibill is initialized and other scenes where there is option for purchase…do I need to init Unibill in every scene and to subscribe to onPurchaseComplete etc...?

    How to enable to report errors? In the test client there are three buttons not settings. In unity Amazon Sandbox is enabled.

    Also I noticed one more thing that I have never experienced before. Every script turns into to files, on is unknown type and the second one is cs script. I attached the screenshot, take a look.

    $Screen-Shot-2014-03-13-at-18.41.45.png
     
  19. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @pretender no, you only initialise unibill once. It's best to do so as early as possible in your first scene.

    If possible avoid subscribing to unibills events at all and just rely on its inventory database.

    You have installed the amazon sdk tester, right? There's lots of settings in there.

    I don't know what is going on in your screenshot, I suggest you check your file system.
     
  20. Dreamwriter

    Dreamwriter

    Joined:
    Jul 22, 2011
    Posts:
    472
    Hey, just to let you know we got a crash report from one of our Android users through Google Play:

    java.lang.Error: FATAL EXCEPTION [pool-2-thread-1]
    Unity version : 4.3.3f1
    Device model : HUAWEI HUAWEI Y210-0100
    Device fingerprint: Huawei/Y210/hwy210-0100:2.3.6/HuaweiY210-0100/C183B858:user/ota-rel-keys,release-keys

    Caused by: java.lang.NullPointerException
    at com.outlinegames.unibill.IabHelper.queryPurchases(IabHelper.java:897)
    at com.outlinegames.unibill.IabHelper.queryInventory(IabHelper.java:582)
    at com.outlinegames.unibill.IabHelper.queryInventory(IabHelper.java:561)
    at com.outlinegames.unibill.IabHelper$2.run(IabHelper.java:659)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
    at java.lang.Thread.run(Thread.java:1019)

    Since it was through Google Play I don't have any more information that may help you, unfortunately.
     
  21. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Last edited: Sep 4, 2014
  22. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    @Banderous,

    That issue still seems to stand (v1.4.4), Install Amazon Test Client menu item did nothing. Spartan's suggestion fixed the issue for me. I'm on Mac OSX with ADB enabled Kindle Fire 7", not sure how that fix behaves for Windows tough...

    Code (csharp):
    1.  
    2. Original
    3. p.StartInfo.Arguments = string.Format("install {0}", apkPath);
    4.  
    5. Fix
    6. p.StartInfo.Arguments = string.Format("install \"{0}\"", apkPath);
    7.  
     
  23. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @PixelEnvision now fixed
     
  24. MagicFrame

    MagicFrame

    Joined:
    Jul 18, 2013
    Posts:
    42
    any news for automatic expiry/cancellation detection?
     
  25. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @MagicFrame subscriptions expire automatically on Google Play. On iOS the subscription cancellation would need to be handled by your own app's code.
     
  26. MagicFrame

    MagicFrame

    Joined:
    Jul 18, 2013
    Posts:
    42
    @Banderous

    and expiration? In the ios auto-renewable subscription, are marked from itunes connect, for example 1 year, 1 month, etc., are you saying that I have to know when a user canceled the auto renewable everyone who subscribes? that's impossible ... auto renewable subscriptions are canceled from the control panel user account on itunes, I can not detect when a user has decided to cancel your subscription, the plugin can not detect if the subscription has been canceled or expired ?
     
  27. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @MagicFrame yes, you would need to tweak UnibillStorekit.mm to accomplish this. The unibill interface was only originally designed to tell you when things have been purchased (that's why it's called purchase count).
     
  28. cullab

    cullab

    Joined:
    Mar 25, 2014
    Posts:
    9
    I have two questions related to testing on an iOS device. Everything seems to work ok on the Unity Player (4.3.4f free version).

    1. When running on my iPhone (iOS 7.1) , I get the following error:

    UnibillBiller: Storekit reported In App purchasing as unavailable..
    See http://www.outlinegames.com/unibillerrors#STOREKIT_BILLING_UNAVAILABLE

    I do not have any restrictions turned on in my General settings so why is this error happening? I have all the IAP uploaded to iTunes connect. I also logged out of my personal iTunes account and restarted the app but got the same error.

    2. I noticed that the Unibiller.CreditBalance did not work on my iPhone. If there is some error and Storekit isn't available, would that cause the CreditBalance functionality to also not work?
     
  29. KamiKaze425

    KamiKaze425

    Joined:
    Nov 20, 2012
    Posts:
    207
    Sorry if this has come up before, but there were a lot of pages to read through and google search didn't come up with anything.

    So I have my app set-up to test purchases for Google on Android. The first time, the game launches fine and I can start the purchase. Once I login and confirm the purchase, the game crashes. Then any time I relaunch the app and call "Unibiller.Initialise()", the game crashes. If I remove that call from my game, it starts working again.
    "onInitialised(UnibillState result)" doesn't even get called before the game crashes.

    Not sure if it has anything to do with conflicts with other plugins? Using the official Facebook SDK, BFS Google Play games, Prime31 Google Cloud Messaging, and Easy Local Android Notifications. (The other plugins all worked together until I started using Unibill)

    Here's the logcat

    Code (csharp):
    1. I/Unibill (11830): Owned items response: 0
    2. E/IABUtil/Security(11830): Invalid key specification.
    3. W/dalvikvm(11830): threadid=14: thread exiting with uncaught exception (group=0x41f36ba8)
    4. E/AndroidRuntime(11830): FATAL EXCEPTION: pool-1-thread-1
    5. E/AndroidRuntime(11830): Process: com.stuckpixelgames.fingerfrenzy, PID: 11830
    6. E/AndroidRuntime(11830): java.lang.Error: FATAL EXCEPTION [pool-1-thread-1]
    7. E/AndroidRuntime(11830): Unity version     : 4.2.2f1
    8. E/AndroidRuntime(11830): Device model      : LGE Nexus 5
    9. E/AndroidRuntime(11830): Device fingerprint: google/hammerhead/hammerhead:4.4.2/KOT49H/937116:user/release-keys
    10. E/AndroidRuntime(11830):
    11. E/AndroidRuntime(11830): Caused by: java.lang.IllegalArgumentException: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
    12. E/AndroidRuntime(11830):    at com.outlinegames.unibill.Security.generatePublicKey(Security.java:83)
    13. E/AndroidRuntime(11830):    at com.outlinegames.unibill.Security.verifyPurchase(Security.java:63)
    14. E/AndroidRuntime(11830):    at com.outlinegames.unibill.IabHelper.queryPurchases(IabHelper.java:874)
    15. E/AndroidRuntime(11830):    at com.outlinegames.unibill.IabHelper.queryInventory(IabHelper.java:543)
    16. E/AndroidRuntime(11830):    at com.outlinegames.unibill.IabHelper.queryInventory(IabHelper.java:522)
    17. E/AndroidRuntime(11830):    at com.outlinegames.unibill.IabHelper$3.workWith(IabHelper.java:621)
    18. E/AndroidRuntime(11830):    at com.outlinegames.unibill.BillingServiceManager$2.run(BillingServiceManager.java:103)
    19. E/AndroidRuntime(11830):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    20. E/AndroidRuntime(11830):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    21. E/AndroidRuntime(11830):    at java.lang.Thread.run(Thread.java:841)
    22. E/AndroidRuntime(11830): Caused by: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
    23. E/AndroidRuntime(11830):    at com.android.org.conscrypt.OpenSSLKey.getPublicKey(OpenSSLKey.java:101)
    24. E/AndroidRuntime(11830):    at com.android.org.conscrypt.OpenSSLRSAKeyFactory.engineGeneratePublic(OpenSSLRSAKeyFactory.java:47)
    25. E/AndroidRuntime(11830):    at java.security.KeyFactory.generatePublic(KeyFactory.java:171)
    26. E/AndroidRuntime(11830):    at com.outlinegames.unibill.Security.generatePublicKey(Security.java:78)
    27. E/AndroidRuntime(11830):    ... 9 more
    28. E/AndroidRuntime(11830): Caused by: java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
    29. E/AndroidRuntime(11830):    at com.android.org.conscrypt.NativeCrypto.d2i_PUBKEY(Native Method)
    30. E/AndroidRuntime(11830):    at com.android.org.conscrypt.OpenSSLKey.getPublicKey(OpenSSLKey.java:99)
    31. E/AndroidRuntime(11830):    ... 12 more
    32. W/ActivityManager(  757):   Force finishing activity com.stuckpixelgames.fingerfrenzy/com.stuckpixelgames.gpgfb.MyMainUnityPlayerActivity
    33. D/dalvikvm(  757): GC_FOR_ALLOC freed 2553K, 25% free 47772K/63536K, paused 77ms, total 77ms
    34. D/dalvikvm(11830): GC_CONCURRENT freed 448K, 3% free 17093K/17576K, paused 2ms+3ms, total 23ms
    35. D/dalvikvm(11830): WAIT_FOR_CONCURRENT_GC blocked 2ms
    36. I/Process (11830): Sending signal. PID: 11830 SIG: 9
    37. I/WindowState(  757): WIN DEATH: Window{43ea3a28 u0 com.stuckpixelgames.fingerfrenzy/com.stuckpixelgames.gpgfb.MyMainUnityPlayerActivity}
    38. I/ActivityManager(  757): Process com.stuckpixelgames.fingerfrenzy (pid 11830) has died.
    39. W/Binder  (14156): Caught a RuntimeException from the binder stub implementation.
    40. W/Binder  (14156): java.lang.NullPointerException
    41. W/Binder  (14156):  at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
    42. W/Binder  (14156):  at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
    43. W/Binder  (14156):  at android.os.Binder.execTransact(Binder.java:404)
    44. W/Binder  (14156):  at dalvik.system.NativeStart.run(Native Method)
    45. W/InputMethodManagerService(  757): Got RemoteException sending setActive(false) notification to pid 11830 uid 10143
     
    Last edited: Apr 9, 2014
  30. cullab

    cullab

    Joined:
    Mar 25, 2014
    Posts:
    9
    I kept looking around and it seems like even though my phone said my restrictions were off, it still had the IAP permission disabled. I enabled restrictions and then made sure the IAP permission was turned on and Unibiller is now initializing correctly.

    But this still brings up my question #2. I wanted to use the Credit/Debit Balance to keep track of how many "coins" a user earns in the game. The user also has the option to buy more coins as an IAP.

    If the user has IAP turned off, then Unibiller doesn't initialize and my game will not be able to use the Credit/Debit balance functionality. Which means that the game will not be able to keep track of how many coins a user earns by playing the game.

    Is there anyway to have the Storekit unavailable error not by a fatal error and still be able to use the Unibiller functionality offline until the user allows the IAP permission at a later time?
     
  31. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Kamikaze425 your google play public key is invalid. Make sure you have pasted it into the inventory editor correctly.

    @cullab currently Unibill will not function at all if IAP is disabled, no.
     
  32. KamiKaze425

    KamiKaze425

    Joined:
    Nov 20, 2012
    Posts:
    207
    Huh. I guess that was it. I could've sworn I copied and pasted and saved. It was displaying my old public key from when I was on the test build. Thanks
     
  33. pedro_boombit

    pedro_boombit

    Joined:
    Dec 30, 2013
    Posts:
    6
    Hi! I've been looking into securing my game settings and unlockables from pref hackers.

    I'm assuming Unibiller uses Playerprefs to store total available currency. Is this correct? Is there any way to encrypt or protect this information?
     
  34. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @artbitStudios you can modify the UnityPlayerPrefsStorage class to add any obfuscation you like.
     
  35. jhample

    jhample

    Joined:
    Jul 7, 2012
    Posts:
    47
    I am trying to get Unibill to work with Amazon Fire TV. The test client shows up ok, but since it is set up for touch and Fire TV has a controller, theres nothing you can do. Is there any way to make it controller compatible?
     
  36. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @jhample this sounds more like a UI issue than a Unibill issue. You'd need to design your UI around the controller rather than the buttons of the demo scene.
     
  37. jhample

    jhample

    Joined:
    Jul 7, 2012
    Posts:
    47
    Solution found. Amazon released a newer SDKTester apk. The new version has controller support. You may want to include the new version in your next update. Carry on with your awesome plugin

    Edit: There are still some issues with the new version (works with remote not controller). Apparently Amazon is releasing another one shortly. Posted yesterday "We will release new version of SDK tester soon in the SDK ZIP. Please stay tuned. "
     
    Last edited: Apr 16, 2014
  38. rajbhaak

    rajbhaak

    Joined:
    Apr 16, 2014
    Posts:
    3
    I am using Unibill for Google Play and I am having trouble getting signature and json back in PurchaseEvent.Receipt if a non-consumable has already been purchased. Unibill prevents this scenario by not allowing multiple purchase of non-consumable. However, if you uninstall and reinstall the app, you can re-purchase the item. I believe Google Play returns "already owned" status and unibill completes the purchase successfully but without signature. What would be the best approach to retrieve the signature in this case?
     
  39. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @rajbhaak currently the receipt isn't available in this scenario, it's only surfaced on first purchase. I'll raise an issue to see if it can be surfaced in all cases.
     
  40. plokkum

    plokkum

    Joined:
    May 28, 2013
    Posts:
    90
    Is there a way to find user's currency and amount they paid in their currency? I'd like to be able to register this to my analytics.
    Right now all I can find is the localizedPriceString.
     
  41. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @plokkum currently this isn't available.

    I'm currently working on a fully integrated analytics system for Unibill, which should go live within the next couple of weeks.

    I will also be exposing currencies and prices on the public Unibill API as part of this work.

    What are you looking for in your analytics? Is it your own analytics solution or an existing one?
     
  42. plokkum

    plokkum

    Joined:
    May 28, 2013
    Posts:
    90
    Thanks, Banderous. That sounds really exciting!

    I'm currently using GameAnalytics for my upcoming game. It's the first time I'm using their tool, so I'm not really familiar with its capabilities yet. I would also like to track purchases myself, and store it in my own database, but currently I can't get the information I want.

    I would especially like to retrieve the following:

    1) How much money was spent on an item in purchaser's local currency
    2) The local currency in which the item was purchased (USD, EUR, etc)
    3) The price tier of the purchased item

    I can't wait to have my hands on the Unibill update!
     
  43. WonkyWooGames

    WonkyWooGames

    Joined:
    Dec 31, 2010
    Posts:
    63
    Hello,

    Great product and it's working fine for iOS and Android but I'm having difficulties with windows phone. When testing in beta and purchasing the beta IAP the app crashes, but upon restarting the IAP has been successful. Any ideas why this might be happening ? The mock IAP works fine. Just to clear things up, what is the best practice testing IAP using Unibill and beta Windows Phones apps ? Do I create a beta version of the IAP ? I did this and then set the override flag and IAP id in the inventory, but the app crashed.

    Cheers...
     
  44. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Subscribing for updates. Bought this plugin a long time ago and haven't used it. But we're about to start using several other platforms, all of which you support.
     
  45. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @WonkyWooGames responding via email
     
  46. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I read on a comment a couple months ago that the next platform you will add is probably Facebook. Do have have an ETA? We will probably have a Facebook version of our game in 2 or 3 months and we're hoping to use Unibill to handle the money part.
     
    Last edited: May 7, 2014
  47. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @jerotas there's no timeline for facebook support at the moment, it'll likely be longer than 3 months.
     
  48. vlaad_ex

    vlaad_ex

    Joined:
    Apr 11, 2014
    Posts:
    1
    Hello! Currently i'm using Unibill for my game on google play store.

    But i have a crucial problem. When i buy a product, it redirected to google wallet. I complete the step to add credit card bla bla bla and they said that i have successfully purchased the product. But my game redirect me to the Error event handler, not the Success one. When i check my google merchant account, my payment has been made and I've charged the exact amount as my product's price.

    Can you tell me where i set it wrong? Note that i made it through google wallet pop up that means that (supposedly) i've set the Inventory Editor right
     
  49. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @vlaad_ex check the trace from the device.

    It's hard to say without knowing more detail but you may have put in the wrong public key which causes Unibill to fail the purchase's signature validation.
     
  50. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    @Banderous,

    Just noticed 1.5.0 is out downloaded, thanks for the great update!

    I just need to confirm one thing: If I don't configure the Unibill Analytics (leaving Id Secret fields empty) there won't be any outgoing network connections or data collection, right?