Our apps contain In-App Purchases.
We are using server-side validation to validate purchase receipts for non-renewing subscriptions and client validation for auto-renewable subscription.
The problem is that when we do the non-renewing subscription receipt validation the apple server need us to upload the shared secret key otherwise it will return 21003 error.
Can I avoid to upload the shared secret key?(since our server api can not do that)
Post
Replies
Boosts
Views
Activity
I've had in-app purchase feature with auto-renewing in Apple Store.And there are some users who purchased with auto-renewing subscriptionsIs it possible to change auto-renewing to non-renewable subscriptions ?Somehow keep user who purchased and update it to non-renewable subscriptions?
I am testing a local vpn service using NEPacketTunnelNetworkSettings that currently use the IP of the underlying network interface (WiFi or Cellular) as the IP of the VPN interface.However, when I use SCNetworkReachabilityCreateWithAddressPair and set the IP of VPN interface as the local address, the result is unreachable var addr = sockaddr_in()
addr.sin_len = UInt8(MemoryLayout.size(ofValue: addr))
addr.sin_family = sa_family_t(AF_INET)
addr.sin_addr.s_addr = inet_addr(address)
let hostAddress = withUnsafePointer(to: &hostaddr) {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
return $0
}
}
guard let reachability = withUnsafePointer(to: &addr, {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
SCNetworkReachabilityCreateWithAddressPair(kCFAllocatorDefault, $0, hostAddress)
}
})else{
return false
}Can anybody tell me why that happens and how to workaround?
I have a problem with the different behavior when using SCNetworkReachability if the iPhone is running a packet tunnel based on NEPacketTunnelNetwork var flags: SCNetworkReachabilityFlags =
SCNetworkReachabilityFlags(rawValue: 0)
let isReachable = flags == .reachable
let needsConnection = flags == .connectionRequired
return isReachable && !needsConnectionif I use the [let isReachable = flags == .reachable], The resulte of isReachable will be FalseHowever,if I use the code of [let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0] like below.The result will be True var flags: SCNetworkReachabilityFlags =SCNetworkReachabilityFlags(rawValue: 0)
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = flags == .connectionRequired
return isReachable && !needsConnectionThe API reference the [reachable] and [kSCNetworkFlagsReachable] has the same describe :"The specified node name or address can be reached using the current network configuration"Can anybady tell me which one is the correct behavior that should be used?
We are experiencing that the download and installation does not finish on TestFlight when running an active packet tunnel. Only after disabling the VPN and pausing/resuming the download on the home screen, the upgrade succeeds on iOS13Could a similar scenario also happen when upgrading live apps from the app store, given that they are running a packet tunnel? Or are these fundamentally different processes?Or just the bug of TestFlight ?