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 ?
Post
Replies
Boosts
Views
Activity
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?
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'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?
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)