Post not yet marked as solved
I added Privacy manifest for my app and submit it to review
and apple reject my app with what comment
ITMS-91054: Invalid API category declaration - The PrivacyInfo.xcprivacy for the “Frameworks/SmartlookAnalytics.framework/SmartlookAnalytics” file contains “Disk Space” as the value for a NSPrivacyAccessedAPIType key, which is invalid. Values for NSPrivacyAccessedAPIType keys in any privacy manifest must be valid API categories. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.
i look at the package manifest and all looks fine (attached image).
Maybe somebody saw that issue - and may tell me how can i fix it.
Post not yet marked as solved
I created my own VPN application, on IOS 13 when i connected to VPN from that application, if i use wifi, my internet connection ceases work (when i try to search something in browser, pages don't load), for IOS 14 all works fine.
I have vpn info, which I try to configure in my application. when I call startVPNTunnel my vpn connection status changed to: connecting, disconnecting - so I can't establish my vpn connection.
But when i configure my vpn info in settings-general manual configure vpn - it is work fine
I configured my NEVPNProtocol
static func protocolConfiguration(_ account: VPNAccountInfo) - NEVPNProtocol {
let configuration = NEVPNProtocolIKEv2()
configuration.authenticationMethod = .none
keychain["vpn_server"] = account.server
keychain["vpn_remote_id"] = account.remoteIdentifier
keychain["vpn_username"] = account.username
keychain["vpn_password"] = account.password
configuration.serverAddress = keychain["vpn_server"]
configuration.remoteIdentifier = keychain["vpn_remote_id"]
configuration.username = keychain["vpn_username"]
configuration.passwordReference = keychain[attributes: "vpn_password"]?.persistentRef
configuration.useExtendedAuthentication = true
configuration.disconnectOnSleep = false
return configuration
}
and try to connected
static func connectToVPNAccount(_ account: VPNAccountInfo) {
guard !connectionState.value.isInProgress else {
return
}
connectionState.value = .connecting
// Legacy?
// For no known reason the process of saving/loading the VPN configurations fails. On the 2nd time it works
vpnManager.loadFromPreferences(completionHandler: { (error: Error?) in
if (error != nil) {
disconnectInternal()
print("Could not load VPN Configurations")
return
}
vpnManager.protocolConfiguration = protocolConfiguration(account)
vpnManager.localizedDescription = "Onion VPN"
vpnManager.isEnabled = true
vpnManager.saveToPreferences(completionHandler: { (error:Error?) in
if (error != nil) {
disconnectInternal()
print("Could not save VPN Configurations")
return
}
do {
try vpnManager.connection.startVPNTunnel()
DispatchQueue.main.asyncAfter(deadline: .now() + 5, execute: {
connectionState.value = .connected
})
} catch let error {
disconnectInternal()
print("Error starting VPN Connection \(error.localizedDescription)")
}
})
})
}
but it doesn't work