Discussions
ITMS-90078: Missing Push Notification Entitlement
We are not intending to use promo campaigns, so I have not set up push notifications in Apple Developer. I am receiving a notification every time I upload a build to App Store Connect that I am missing the entitlement however.
Is there any I can do to disable the use of push notifications in Adapty so this isn't triggered, or is there another solution?
Posted by Daniel Murfin over 1 year ago
Expo's EAS android build broken
I'm trying to use adapty with Expo (with expo-dev-client), which is going fine on iOS so far. On Android, when launching the eas build, I'm getting the following error :
> Task :react-native-adapty:compileDebugKotlin
[stderr] e: Incompatible classes were found in dependencies. Remove them from the classpath or use '-Xskip-metadata-version-check' to suppress errors
[stderr] e: /home/expo/.gradle/caches/transforms-3/2ae867a2e11de942398247e9a7b7c6a4/transformed/jetified-kotlin-stdlib-jdk7-1.6.10.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.
I'm using the 2.3.1 react-native-adapty, everything is up to date on expo/eas side.
Posted by Sébastien F. 3 months ago
Flutter Crash on Startup for iPhone 6 running iOS 12.4
It seems that after installing `adapty_flutter: 1.0.6` with the following versions of the package via Cocoapods `- Adapty (1.16.3) - adapty_flutter (1.0.0): - Adapty (= 1.16.3)` the application simply crash:
```
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: DYLD 1 Library missing
Library not loaded: /System/Library/Frameworks/AdServices.framework/AdServices
Referenced from: /Users/USER/Library/Developer/CoreSimulator/Devices/772E56D9-F7B8-460E-93D7-8DC2083F169F/data/Containers/Bundle/Application/03BB65BD-2F4D-418A-937B-FD851AC8F406/Runner.app/Runner
Reason: image not found
(terminated at launch; ignore backtrace)
```
Posted by Anderson Oki over 1 year ago
"Adapty SDK was not initialized" on Android
I am using React Native to develop my iOS and Android Apps. On iOS, everything works well. But on Android, my adapty.purchases.restore() function throws an error like below;
{"adaptyCode": "sdkNotActive", "code": 403, "localizedDescription": "Adapty SDK was not initialized"}
Also, while getting the products, it turns the empty products (with prices of 0). So, it is not a problem about the connection between my App and Adapty.
I followed the Android instructions part, twice. But the results are the same. What should I do?
Thank you all, in advance.
Posted by Ugur Genc over 1 year ago
Preventing multiple application users from sharing single App Store subscription
I have a question regarding the interplay of Apple ID purchases and my application users.
Let's say I have a user, Alice, who creates an application account and purchases a subscription to my app from her iPhone. Great. Now her friend, Bob, is borrowing her phone, so Alice logs out of her application account, and Bob logs into his own non-premium application account on Alice's phone. Bob decides he likes the app so much that he wants to buy the premium subscription, so Alice attempts to make the purchase for him while he's logged into his application user _on Alice's phone, with Alice's Apple ID._ In the ideal case, my application would throw an error, saying that the current Apple ID (Alice's) already has a subscription associated with a _different_ application account (Alice's application account). Is it possible to do this (to either prevent or void the purchase attempt) with the Adapty Swift SDK _without_ having to store some mapping on my own server? This feels like a check that you could do with `StoreKit` before completing a transaction, but since Adapty completes the transaction for you, I'm not sure how to perform this check. I want to avoid having multiple application accounts associated with a single Apple ID or somehow messing up the existing application user <--> apple ID mapping (for example, if Alice's subscription were modified by the subscription purchase on Bob's application user's behalf).
Posted by Marcus over 1 year ago
Flutter Android Sandbox Testing
Hi there,
I am trying to test my IAP in Flutter using Adapty on a physical Android device.
The purchases are being registered correctly as Sandbox environment events, however the subscriptions are set to expire at the normal date (actual 1 month duration) rather than the shortened periods for sandbox testing (https://developer.android.com/google/play/billing/test).
Is there any way around this?
Thank you!
Posted by Dino Bossi over 1 year ago
React native - subscribe with a promo-code (IOS)
We developed our coupon system and linked it with the app,
but Apple refused the app and enforcing us to use their promotion system
I found some challenges to use the coupon code with the available RN IAP library
so, I used Adapty to make the things more simple
I use this code to show the promo-code sheet
adapty.promo.presentCodeRedemptionSheet()
but it does not show anything
however adapty.promo.canPresentCodeRedemptionSheet() return true
also adapty.promo.getPromo() return null
I'm trying to list the available products, each product have ios.discounts as empty array
however my product have ios discounts !!!
adapty.paywalls.getPaywalls().then((data) => {
data.products.map((d) => {
console.log(d);
});
});
I cannot find a clear way to implement this coupon code
Posted by Ahmed Mohsen over 1 year ago
Non-subscription non-consumable purchases?
I am looking at options for easily adding in-app purchases to an older swift project of mine. I am looking at Adapty because I like your documentation on installing and implementing. However, this particular project I might proceed with a single purchase rather than subscription. Will Adapty’s features still be useful to me? Thanks
Posted by Francis about 2 years ago
Apple Regarding Guideline 2.1 - Performance - App Completeness issue
Below is the lastExceptionBacktrace for EXC_CRASH","signal":"SIGABRT error. I don't know what the problem is because I keep getting rejected.
What's wrong with both the test instrument and the emulator running normally? Please help me.
---------
"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
"asi" : {"libsystem_c.dylib":["abort() called"]},
"lastExceptionBacktrace" : [{"imageOffset":40584,"symbol":"__exceptionPreprocess","symbolLocation":164,"imageIndex":7},{"imageOffset":96472,"symbol":"objc_exception_throw","symbolLocation":60,"imageIndex":4},{"imageOffset":4260204,"symbol":"-[UIStoryboard initWithBundle:storyboardFileName:identifierToNibNameMap:identifierToExternalStoryboardReferenceMap:designatedEntryPointIdentifier:designatedMenuIdentifier:]","symbolLocation":0,"imageIndex":9},{"imageOffset":2778512,"symbol":"-[UIApplication _loadMainStoryboardFileNamed:bundle:]","symbolLocation":80,"imageIndex":9},{"imageOffset":4071204,"symbol":"-[UIApplication _loadMainInterfaceFile]","symbolLocation":156,"imageIndex":9},{"imageOffset":3509984,"symbol":"-[UIApplication _runWithMainScene:transitionContext:completion:]","symbolLocation":688,"imageIndex":9},{"imageOffset":3509204,"symbol":"-[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:]","symbolLocation":132,"imageIndex":9},{"imageOffset":648704,"symbol":"_UIScenePerformActionsWithLifecycleActionMask","symbolLocation":108,"imageIndex":9},{"imageOffset":4065560,"symbol":"__101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke","symbolLocation":216,"imageIndex":9},{"imageOffset":2690980,"symbol":"-[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:]","symbolLocation":220,"imageIndex":9},{"imageOffset":2690508,"symbol":"-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]","symbolLocation":620,"imageIndex":9},{"imageOffset":2689404,"symbol":"-[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:]","symbolLocation":252,"imageIndex":9},{"imageOffset":2689096,"symbol":"__186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke","symbolLocation":148,"imageIndex":9},{"imageOffset":9908136,"symbol":"+[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:]","symbolLocation":736,"imageIndex":9},{"imageOffset":10534808,"symbol":"_UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion","symbolLocation":224,"imageIndex":9},{"imageOffset":1296728,"symbol":"-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]","symbolLocation":316,"imageIndex":9},{"imageOffset":5961640,"symbol":"__64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.214","symbolLocation":556,"imageIndex":9},{"imageOffset":2158776,"symbol":"-[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:]","symbolLocation":216,"imageIndex":9},{"imageOffset":2158376,"symbol":"-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]","symbolLocation":244,"imageIndex":9},{"imageOffset":2155644,"symbol":"-[UIApplication workspace:didCreateScene:withTransitionContext:completion:]","symbolLocation":520,"imageIndex":9},{"imageOffset":2155016,"symbol":"-[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:]","symbolLocation":288,"imageIndex":9},{"imageOffset":13568,"symbol":"-[FBSScene _callOutQueue_agent_didCreateWithTransitionContext:completion:]","symbolLocation":344,"imageIndex":6},{"imageOffset":271644,"symbol":"__92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.78","symbolLocation":120,"imageIndex":6},{"imageOffset":29332,"symbol":"-[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:]","symbolLocation":168,"imageIndex":6},{"imageOffset":270676,"symbol":"__92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke","symbolLocation":360,"imageIndex":6},{"imageOffset":16348,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":5},{"imageOffset":31324,"symbol":"_dispatch_block_invoke_direct","symbolLocation":264,"imageIndex":5},{"imageOffset":70576,"symbol":"__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__","symbolLocation":52,"imageIndex":6},{"imageOffset":69452,"symbol":"-[FBSSerialQueue _targetQueue_performNextIfPossible]","symbolLocation":220,"imageIndex":6},{"imageOffset":79660,"symbol":"-[FBSSerialQueue _performNextFromRunLoopSource]","symbolLocation":28,"imageIndex":6},{"imageOffset":876372,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__","symbolLocation":28,"imageIndex":7},{"imageOffset":926508,"symbol":"__CFRunLoopDoSource0","symbolLocation":176,"imageIndex":7},{"imageOffset":418320,"symbol":"__CFRunLoopDoSources0","symbolLocation":244,"imageIndex":7},{"imageOffset":506792,"symbol":"__CFRunLoopRun","symbolLocation":836,"imageIndex":7},{"imageOffset":528084,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":7},{"imageOffset":4968,"symbol":"GSEventRunModal","symbolLocation":164,"imageIndex":8},{"imageOffset":3810256,"symbol":"-[UIApplication _run]","symbolLocation":888,"imageIndex":9},{"imageOffset":3809332,"symbol":"UIApplicationMain","symbolLocation":340,"imageIndex":9},{"imageOffset":20020,"imageIndex":10},{"imageOffset":88416,"symbol":"start","symbolLocation":2528,"imageIndex":11}],
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":9053960,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":8014860533},{"value":6168469872},{"value":110},{"value":18446744069414585088},{"value":8105439342030203636},{"value":8105439341549105204},{"value":512},{"value":11},{"value":11},{"value":2095104},{"value":2043},{"value":2669736033},{"value":328},{"value":8181848768,"symbolLocation":0,"symbol":"_main_thread"},{"value":0},{"value":6},{"value":259},{"value":8181848992,"symbolLocation":224,"symbol":"_main_thread"},{"value":0},{"value":8181848992,"symbolLocation":224,"symbol":"_main_thread"},{"value":10753606800},{"value":8191538856,"symbolLocation":0,"symbol":"CFRunLoopRunSpecific.runloopNestingLevel"},{"value":0},{"value":554827989},{"value":7286573440,"symbolLocation":0,"symbol":"tlv_get_addr"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":8015630764},"cpsr":{"value":1073741824},"fp":{"value":6168469728},"sp":{"value":6168469696},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":7743382016,"matchesCrashFrame":1},"far":{"value":8136736592}},"queue":"com.apple.main-thread","frames":[{"imageOffset":29184,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":0},{"imageOffset":29100,"symbol":"pthread_kill","symbolLocation":268,"imageIndex":1},{"imageOffset":134284,"symbol":"abort","symbolLocation":180,"imageIndex":2},{"imageOffset":72588,"symbol":"abort_message","symbolLocation":132,"imageIndex":3},{"imageOffset":6784,"symbol":"demangling_terminate_handler()","symbolLocation":336,"imageIndex":3},{"imageOffset":122172,"symbol":"_objc_terminate()","symbolLocation":144,"imageIndex":4},{"imageOffset":69416,"symbol":"std::__terminate(void (*)())","symbolLocation":20,"imageIndex":3},{"imageOffset":69316,"symbol":"std::terminate()","symbolLocation":56,"imageIndex":3},{"imageOffset":16368,"symbol":"_dispatch_client_callout","symbolLocation":40,"imageIndex":5},{"imageOffset":31324,"symbol":"_dispatch_block_invoke_direct","symbolLocation":264,"imageIndex":5},{"imageOffset":70576,"symbol":"__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__","symbolLocation":52,"imageIndex":6},{"imageOffset":69452,"symbol":"-[FBSSerialQueue _targetQueue_performNextIfPossible]","symbolLocation":220,"imageIndex":6},{"imageOffset":79660,"symbol":"-[FBSSerialQueue _performNextFromRunLoopSource]","symbolLocation":28,"imageIndex":6},{"imageOffset":876372,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__","symbolLocation":28,"imageIndex":7},{"imageOffset":926508,"symbol":"__CFRunLoopDoSource0","symbolLocation":176,"imageIndex":7},{"imageOffset":418320,"symbol":"__CFRunLoopDoSources0","symbolLocation":244,"imageIndex":7},{"imageOffset":506792,"symbol":"__CFRunLoopRun","symbolLocation":836,"imageIndex":7},{"imageOffset":528084,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":7},{"imageOffset":4968,"symbol":"GSEventRunModal","symbolLocation":164,"imageIndex":8},{"imageOffset":3810256,"symbol":"-[UIApplication _run]","symbolLocation":888,"imageIndex":9},{"imageOffset":3809332,"symbol":"UIApplicationMain","symbolLocation":340,"imageIndex":9},{"imageOffset":20020,"imageIndex":10},{"imageOffset":88416,"symbol":"start","symbolLocation":2528,"imageIndex":11}]},{"id":9053962,"queue":"com.google.GDTCORFlatFileStorage","frames":[{"imageOffset":10600,"symbol":"fstatat","symbolLocation":8,"imageIndex":0},{"imageOffset":62296,"symbol":"_mkpath","symbolLocation":156,"imageIndex":2},{"imageOffset":389996,"symbol":"-[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]","symbolLocation":112,"imageIndex":12},{"imageOffset":81968,"symbol":"GDTCORRootDirectory","symbolLocation":112,"imageIndex":13},{"imageOffset":60564,"symbol":"__45+[GDTCORFlatFileStorage eventDataStoragePath]_block_invoke","symbolLocation":36,"imageIndex":13},{"imageOffset":16348,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":5},{"imageOffset":22568,"symbol":"_dispatch_once_callout","symbolLocation":32,"imageIndex":5},{"imageOffset":60524,"symbol":"+[GDTCORFlatFileStorage eventDataStoragePath]","symbolLocation":216,"imageIndex":13},{"imageOffset":56800,"symbol":"__44-[GDTCORFlatFileStorage checkForExpirations]_block_invoke","symbolLocation":608,"imageIndex":13},{"imageOffset":9396,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":5},{"imageOffset":16348,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":5},{"imageOffset":46740,"symbol":"_dispatch_lane_serial_drain","symbolLocation":672,"imageIndex":5},{"imageOffset":49632,"symbol":"_dispatch_lane_invoke","symbolLocation":384,"imageIndex":5},{"imageOffset":93712,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":652,"imageIndex":5},{"imageOffset":3576,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":1},{"imageOffset":2968,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":1}]},{"id":9053963,"frames":[{"imageOffset":2960,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":9053964,"frames":[{"imageOffset":2960,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":9053965,"frames":[{"imageOffset":2960,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":9053966,"name":"com.apple.uikit.eventfetch-thread","frames":[{"imageOffset":2888,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":77832,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":0},{"imageOffset":78408,"symbol":"mach_msg_overwrite","symbolLocation":388,"imageIndex":0},{"imageOffset":4236,"symbol":"mach_msg","symbolLocation":24,"imageIndex":0},{"imageOffset":502512,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":7},{"imageOffset":507188,"symbol":"__CFRunLoopRun","symbolLocation":1232,"imageIndex":7},{"imageOffset":528084,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":7},{"imageOffset":271156,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":212,"imageIndex":12},{"imageOffset":270876,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":64,"imageIndex":12},{"imageOffset":5075772,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":436,"imageIndex":9},{"imageOffset":374792,"symbol":"__NSThread__start__","symbolLocation":716,"imageIndex":12},{"imageOffset":5836,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":1},{"imageOffset":2980,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":9053967,"frames":[{"imageOffset":2960,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]}],
"usedImages" : [
{
Posted by SeongsuPark 6 months ago