Discussions

Ask a Question

Adapty works in Uruguay?

Adapty works in Uruguay?

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" : [ {
ANSWERED

Deleting Adapty Account

I want to delete my account, as I do not use it. Cannot find a way to contact support.
ANSWERED

Offering a Subscription Across Multiple Apps

https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/subscriptions_and_offers/offering_a_subscription_across_multiple_apps do you plan to implement this feature ?

How to implement Adjust into React Native

Hello, Our app is built on React Native and we are using your SDK. Now we are trying to set up Adjust connection and faced an interesting situation: Your SDK is showing for iOS only Swift example of implementation (https://docs.adapty.io/docs/adjust#sdk-configuration). But RN projects uses Obj-c AppDelegate files which refer us to creating a bridging header for Swift inside Obj-c code or rewriting this method on Objective-c. But I looked AppsFlyer integration and found that you have an RN native implementation. I am just wondering may you also provide Adjust native integration into RN or provide an Obj-c implementation example? Best, Akeem

https://api.adapty.io/api/v1/sdk/profiles POST create User not working(404 not found)

import fetch from 'isomorphic-fetch'; const headers = { 'Accept': '*/*', 'Content-Type': 'application/json', 'Authorization': 'Api-Key secret_live_nwVOyxh4.PguuHThYGgIrpaoJkZnCM1YODsXDKnUh' }; export default { createUser: async (userId) => { try { const response = await fetch(`${process.env.ADAPRY_API_URL}/profiles`, { method: 'POST', headers, body: JSON.stringify({customer_user_id: userId}) }); if (response.status !== 200) { return [`adapty api create user error, status: ${response.status}`, null]; } const result = await response.json(); console.log('result: ', result); return [null, result]; } catch (e) { return [`createUser: ${e.message}`, null]; } } .... Hi, here is code writen in node js, and getting 404 error
ANSWERED

Adapty No Products found error 1001

Hi, I am getting this error recently before it was working fine. Their seems to be some issue from Adapty side that the products are not being found! And According to bugsnag report recently it spiked up effecting almost 600+ users!! Error: {"adaptyCode":"noProductsFound","localizedDescription":"No In-App Purchases were found.","code":1001} It was working fine before! Platform: React Native SDK: "react-native-adapty": "^1.3.13"
ANSWERED

Pricing

I don't understand how your pro plan works. Is it free until $10k MTR and then I will pay $99 per month ?

How to display paywall android

Hi I have been reading the documentation to try and implement a paywall in my android app. I have set up the paywall and followed the sets as best I can however the UI is still not showing. My current code is ``` var paywall: PaywallModel var product: ProductModel Adapty.getPaywalls { paywalls, products, error -> if (error == null) { // retrieve the products from paywalls paywall = paywalls?.firstOrNull { it.developerId == "main" }!! product = paywall?.products?.firstOrNull()!! Adapty.logShowPaywall(paywall) Adapty.makePurchase(activity, product) { purchaserInfo, purchaseToken, googleValidationResult, product, error -> if (error == null) { // "premium" is an identifier of default access level if (purchaserInfo?.accessLevels!!["premium"]?.isActive == true) { // grant access to premium features adaptyViewModel.setPermission(true) } } } } } ``` The current implementation loads a blank screen and the the google purchasing flow is automatically triggered.

Is there a way to fetch the price paid by a use for a subscription event ?

Hi I would like to know if there is a way to get the price/amount paid by a user for an event using API Specs. I'm currently using the /profiles/<profileId> endpoint to get user information. But it doesn't return the amount paid, not even in the "subscriptions" sub-object. I think it would be a useful information especially if a user uses a promotional offer. If there is already a way to do so, please let me know. Thank you. Thibault M.