Posts

Post not yet marked as solved
2 Replies
1.4k Views
In iOS 15 Content Filter can be used on non-supervised ios Devices if the device is authorized using the Family Control. Now In iOS 16, we have an individual authorization option will the Content Filter work on the iOS device that is authorized; using the individual authorization option?
Posted
by im4u.
Last updated
.
Post marked as solved
3 Replies
1k Views
After setting up auto-renewing subscriptions, I’ve hit a snag implementing Offer Codes in my iOS app. The following has been configured: 2 subscriptions(yearly and monthly) setup in App Store Connect under same the subscription group Both subscriptions are at the same level of service and include a 60-day trial period Created 1-year free offer codes under the yearly renewable subscription The offer code is for new, existing, and expired users Observed user experience: The user logs in to the app and subscribes to a monthly renewable subscription The user then navigates to https://apps.apple.com/redeem?ctx=offercodes&id=##########&code=CODE to redeem 1-year free offer Code is accepted and Apple ID authorization is prompted After authorizing the subscription an error is presented stating, “ This offer can’t be redeemed with your current subscription.” Is there something I missed in my configuration or a restriction I’m unaware of? Does the user have to redeem the offer before subscribing?
Posted
by im4u.
Last updated
.
Post not yet marked as solved
1 Replies
510 Views
We have implemented apple receipt verification using PHP which is working perfectly fine. Now, I am trying to fetch the exact promo code from the receipt data if used by the customer in-app. I can see offer name from latest_receipt_info[0].offer_code_ref_name. I have implemented the transaction history detail after creating the required JWT GET https://api.storekit.itunes.apple.com/inApps/v1/history/{originalTransactionId} I received the following details after decoding signedTransaction. [transactionId] => 270001159964727 [originalTransactionId] => 270001159964727 [webOrderLineItemId] => 270000507948216 [bundleId] => xxxx [productId] => xxxxx [subscriptionGroupIdentifier] => 20970033 [purchaseDate] => 1659593358000 [originalPurchaseDate] => 1659593358000 [expiresDate] => 1660198158000 [quantity] => 1 [type] => Auto-Renewable Subscription [inAppOwnershipType] => PURCHASED [signedDate] => 1659599990477 [offerType] => 3 [offerIdentifier] => PK_DEV2 [environment] => Production Main Problem: I was assuming to get the exact offer code used by the customer in the offer identifier field. which I am not getting. Is there any way I can get the exact offer code used by the customer from the receipt?
Posted
by im4u.
Last updated
.
Post not yet marked as solved
0 Replies
566 Views
For creating NEPacketTunnelNetworkSettings settings I am using the bellow code.In this code I am only adding "8.8.8.8", "1.1.1.1" in IPV4 includedRoutes and , "2001:4860:4860::8888" IPV6 includedRoutes. excludedRoutes are default.But I am getting some packets from 17.130.21.5:443 this IP.- (NEPacketTunnelNetworkSettings *)createTunnelSettings { NEPacketTunnelNetworkSettings *settings = [[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@"127.1.1.1"]; NEIPv4Settings *ipv4 = [[NEIPv4Settings alloc] initWithAddresses:@[@"172.16.209.2"] subnetMasks:@[@"255.255.255.252"]]; NEIPv6Settings *ipv6 = [[NEIPv6Settings alloc] initWithAddresses:@[@"fd12:1:1:1::2"] networkPrefixLengths:@[ @(64)]]; NEDNSSettings * dns = [[NEDNSSettings alloc] initWithServers: [@"8.8.8.8", @"1.1.1.1",@"2001:4860:4860::8888"]]; NSMutableArray* ipv4IncludedRoutes = [NSMutableArray new]; [ipv4IncludedRoutes addObject:[[NEIPv4Route alloc] initWithDestinationAddress:@"8.8.8.8" subnetMask:@"255.255.255.255"]]; [ipv4IncludedRoutes addObject:[[NEIPv4Route alloc] initWithDestinationAddress:@"1.1.1.1" subnetMask:@"255.255.255.255"]]; NSMutableArray* ipv6IncludedRoutes = [NSMutableArray new]; [ipv6IncludedRoutes addObject:[[NEIPv6Route alloc] initWithDestinationAddress:@"2001:4860:4860::8888" networkPrefixLength: @(128)]]; ipv4.includedRoutes = ipv4IncludedRoutes; ipv6.includedRoutes = ipv6IncludedRoutes; ipv4.excludedRoutes = @[[NEIPv4Route defaultRoute]]; ipv6.excludedRoutes = @[[NEIPv6Route defaultRoute]]; dns.matchDomains = @[ @"" ]; settings.DNSSettings = dns; if(ipv4Available) { settings.IPv4Settings = ipv4; } if(ipv6Available) { settings.IPv6Settings = ipv6; } } return settings; }
Posted
by im4u.
Last updated
.