
[ad_1]
Hi there,
Yes, I do know that SDKBOX is useless. However, is there any likelihood that you’re going to replace it to assist Google Billing Library v4?
Ps. Google is forcing to make use of it ranging from 1.11.2022.
Best,
kds
I too have seen this major problem.
As everyone knows, SDKBOX is useless.
Probably no replace is anticipated.
Reminder: Starting on August 2, 2022, all new apps should use Billing Library model 4 or newer.
By November 1, 2022, all updates to current apps should use Billing Library model 4 or newer.
And the issue isn’t simple.
There are vital API modifications between model 4 and model 5, and the strategies out there in model 4 have been deprecated.
So, in follow, model 5 assist is a should.
Unfortunately, there isn’t a open supply library out there presently that I can hope to search out.
- Able to manage each iOS and Android with a standard interface.
- Support each cocos2d-x 3.x and 4.x
- Compatible with Billing Library model 5
From the place did you discover this? You have completely incorrect data.
I do have my very own framework written, beforehand it was on model 4 and not too long ago i upgraded to version-5 and that i dont need to do any apis modifications in any respect.
Previously i used to be additionally utilizing sdkbox, however attempt to create your individual wrapper class as soon as and also you dont need to face such points any extra.
I can’t share my code, o/w i would make it easier to.
In conclusion, I believe the one approach to do that is to create my very own implementation of in-app billing for Android.
I’ve some expertise with native integration for Android, so I’ve began engaged on it.
If it really works, I wish to share the code.
As for iOS, I’ve no expertise with Objective-C, so it’s an unknown.
1 Like
Thanks in your replies. Yeah, that is the very best time to spend few days on the wrapper. It can be additionally time to combine different shops (Amazon, Huawei, Samsung and so forth.).
@bluewind00 iOS integration needs to be simpler since you don’t have to make use of any “ndk”. I’ll share the code after I handle to do it (I hate Obj-C too :P). The precedence is Android, sdkbox nonetheless works on iOS.
Hello, I’m going through the identical downside google billing 4 with use sdkbox. Please share supply code to interchange sdkbox for android
I’m nonetheless a piece in progress.
I’ll share it when it’s completed, however I can’t promise a deadline.
If you’re in a rush you possibly can work on it your self and share it.
Also, I can’t make it totally suitable with sdkbox::IAP.
I’ll solely implement the options that I exploit.
Thanks in your share.
did you take a look at in googleplay? and its work?
Of course, I really made a take a look at buy on Google Play.
It works effective.
1 Like
Hello, it ‘s works for android. Please replace for IOS. i would love change sdkbox is it not handy now
I’m not accustomed to iOS.
Can somebody please share the code for the iOS buy course of.
I used sdkbox for ios, and used your venture for Android.
Works properly.
1 Like
Hello, i examined profitable on take a look at gadget. But after launch to manufacturing on google play retailer. Game crash
v4dUdD0okk04lr2Qt0FyTw==/split_config.arm64_v8a.apk!libMyGame.so (_JNIEnv::CallStaticObjectMethod(_jclass*, _jmethodID*, …)+108)
v4dUdD0okk04lr2Qt0FyTw==/split_config.arm64_v8a.apk!libMyGame.so (mingos::IAP::setListener(mingos::IAPEventListener*)+76)
Please verify proj.android/app/proguard-rules.professional.
The following description is required.
-keep class iap.** { *; }
-dontwarn iap.**
If an error happens within the launch construct even when these are described, I can’t consider the trigger.
Hello, It’s fastened bug thank in your assist.
Hi @bluewind00
After i improve observe your instance then i get crash price very excessive!
Any one get this downside?
pid: 0, tid: 0 >>> com.myapp.android <<<
backtrace:
Unknown
#01 computer 0x000000000070dab9 /information/app/~~koGRJuiDmh7LiS3Lzk2FzA==/com.myapp.android-TILglnNWY2pMK75YXUy_0A==/split_config.armeabi_v7a.apk!libMyAppGame.so (cocos2d::Scheduler::replace(float)+592)
#02 computer 0x00000000006fd297 /information/app/~~koGRJuiDmh7LiS3Lzk2FzA==/com.myapp.android-TILglnNWY2pMK75YXUy_0A==/split_config.armeabi_v7a.apk!libMyAppGame.so (cocos2d::Director::drawScene()+178)
#03 computer 0x00000000006fede1 /information/app/~~koGRJuiDmh7LiS3Lzk2FzA==/com.myapp.android-TILglnNWY2pMK75YXUy_0A==/split_config.armeabi_v7a.apk!libMyAppGame.so (cocos2d::Director::mainLoop()+76)
#04 computer 0x00000000000357bf /information/app/~~koGRJuiDmh7LiS3Lzk2FzA==/com.myapp.android-TILglnNWY2pMK75YXUy_0A==/oat/arm/base.odex (art_jni_trampoline+94)
#05 computer 0x00000000000d39d5 /apex/com.android.artwork/lib/libart.so (art_quick_invoke_stub_internal+68)
#06 computer 0x00000000004ead9d /apex/com.android.artwork/lib/libart.so (art_quick_invoke_static_stub+276)
#07 computer 0x000000000012bd3f /apex/com.android.artwork/lib/libart.so (artwork::ArtMethod::Invoke(artwork::Thread*, unsigned int*, unsigned int, artwork::JValue*, char const*)+166)
#08 computer 0x000000000023f1ef /apex/com.android.artwork/lib/libart.so (artwork::interpreter::ArtworkInterpreterToCompiledCodeBridge(artwork::Thread*, artwork::ArtMethod*, artwork::ShadowFrame*, unsigned brief, artwork::JValue*)+254)
#09 computer 0x0000000000236eaf /apex/com.android.artwork/lib/libart.so (bool artwork::interpreter::DoCall<false, false>(artwork::ArtMethod*, artwork::Thread*, artwork::ShadowFrame&, artwork::Instruction const*, unsigned brief, artwork::JValue*)+738)
#10 computer 0x00000000004dec2f /apex/com.android.artwork/lib/libart.so (MterpInvokeStatic+490)
#11 computer 0x00000000000ce594 /apex/com.android.artwork/lib/libart.so (mterp_op_invoke_static+20)
#12 computer 0x0000000000488f58 /information/app/~~koGRJuiDmh7LiS3Lzk2FzA==/com.myapp.android-TILglnNWY2pMK75YXUy_0A==/oat/arm/base.vdex (org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame+20)
#13 computer 0x000000000022fea9 /apex/com.android.artwork/lib/libart.so (artwork::interpreter::Execute(artwork::Thread*, artwork::CodeItemDataAccessor const&, artwork::ShadowFrame&, artwork::JValue, bool, bool) (.llvm.18134065572441359314)+248)
#14 computer 0x0000000000236619 /apex/com.android.artwork/lib/libart.so (artwork::interpreter::EnterInterpreterFromEntryPoint(artwork::Thread*, artwork::CodeItemDataAccessor const&, artwork::ShadowFrame*)+120)
#15 computer 0x00000000004cdc63 /apex/com.android.artwork/lib/libart.so (artQuickToInterpreterBridge+698)
#16 computer 0x00000000000d8561 /apex/com.android.artwork/lib/libart.so (art_quick_to_interpreter_bridge+32)
#17 computer 0x0000000000544cb1 /system/framework/arm/boot-framework.oat (android.opengl.GLSurfaceView$GLThread.guardedRun+3472)
#18 computer 0x00000000005453a9 /system/framework/arm/boot-framework.oat (android.opengl.GLSurfaceView$GLThread.run+184)
#19 computer 0x00000000000d39d5 /apex/com.android.artwork/lib/libart.so (art_quick_invoke_stub_internal+68)
#20 computer 0x00000000004eac6b /apex/com.android.artwork/lib/libart.so (art_quick_invoke_stub+282)
#21 computer 0x000000000012bd2d /apex/com.android.artwork/lib/libart.so (artwork::ArtMethod::Invoke(artwork::Thread*, unsigned int*, unsigned int, artwork::JValue*, char const*)+148)
#22 computer 0x00000000003f84e7 /apex/com.android.artwork/lib/libart.so (artwork::JValue artwork::InvokeVirtualOrInterfaceWithJValuesartwork::ArtMethod*(artwork::ScopedObjectAccessAlreadyRunnable const&, _jobject*, artwork::ArtMethod*, jvalue const*)+374)
#23 computer 0x00000000003f85f7 /apex/com.android.artwork/lib/libart.so (artwork::JValue artwork::InvokeVirtualOrInterfaceWithJValues<_jmethodID*>(artwork::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+42)
#24 computer 0x00000000004396f5 /apex/com.android.artwork/lib/libart.so (artwork::CreateCallback(void*)+1056)
#25 computer 0x0000000000080b13 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40)
#26 computer 0x0000000000039d23 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)
My code is barely a pattern and isn’t assured to work completely.
I’ve made this repository non-public.
[ad_2]