KeychainAccess
KeychainAccess copied to clipboard
Entitlements error while tests
I have no problem with calling from the main bundle.
But I want to write a unit test, and I've got
OSStatus error:[-34018] Internal error when a required entitlement isn't present, client has neither application-identifier nor keychain-access-groups entitlements.
My project structure is following:
- Main Bundle
- Modules (Swift Package)
- API Target that has
KeychainAccess
as a dependency. - APITests Target where I tried to test class that uses
KeychainAccess
.
- API Target that has
- Modules (Swift Package)
My package file
// swift-tools-version: 5.7
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "Modules",
defaultLocalization: "en",
platforms: [.iOS(.v15)],
products: [
.library(
name: "Modules",
targets: ["API"]
)
],
dependencies: [
.package(url: "[email protected]:kishikawakatsumi/KeychainAccess.git", from: "4.2.0")
],
targets: [
.target(
name: "API",
dependencies: [
.product(name: "KeychainAccess", package: "KeychainAccess")
]
),
.testTarget(
name: "APITests",
dependencies: ["API"]
)
]
)
I test at the iPhone Simulatore, Xcode 14.2. Keychain capability is on. I also tried https://github.com/kishikawakatsumi/KeychainAccess/issues/549#issuecomment-1304701780 but didn't help.
I am experiencing the same problem.
Running unit test in swift package gives the error:
OSStatus error:[-34018] Internal error when a required entitlement isn't present, client has neither application-identifier nor keychain-access-groups entitlements.
Keychain capability is on as well.
Executing the unit test in the app project works. There is a problem with swift package not handling entitlements.
https://forums.swift.org/t/host-application-for-spm-tests/24363
@NikolaGrujic91 @vani2 This is a while after but to anyone reading this, the solution I found was to select a host application in your unit test framework.
Targets->TestFramework->General->Testing->Host Application