Hi Apple team,
Thanks for the follow up. Here are the details you requested:
Platform: iOS (running on iPhone hardware; built with Xcode 15, iOS 17 SDK).
Extension type: Network Extension provider packaged as an app extension (appex) within the main app target.
Keychain configuration:
The main app and the extension both have the Keychain Sharing capability enabled with the same access group (for example, ABCD1234.com.example.shared).
We also tried the common app group and specifying the access group via kSecAttrAccessGroup, including variations such as $AppIdentifier.KeyChainSharingGroup.
Error observed: When the extension attempts to access the shared keychain, SecItemCopyMatching returns status 25291 (errSecNotAvailable), which Xcode reports as "No keychain is available." The same code and access group work from the containing app.
Could you advise whether additional entitlements are needed for Network Extension providers on iOS, or if there are specific packaging or provisioning steps we should double-check for appex-based NE providers? If there are recommended examples for keychain access from NE appexes, we would appreciate a pointer.
Thanks for your help!