The keychain error -34018 occurs because WalletConnect requires specific capabilities to be enabled in Xcode. The entitlements file has been updated, but you need to configure these capabilities in Xcode:
- Open
Interspace.xcodeprojin Xcode - Select the "Interspace" target
- Go to "Signing & Capabilities" tab
- Click "+ Capability" and add "App Groups"
- Add the group:
group.com.interspace.walletconnect - Make sure the checkbox is checked
- Still in "Signing & Capabilities" tab
- Click "+ Capability" and add "Keychain Sharing"
- Add the keychain group:
com.interspace.ios - Make sure it's enabled
After enabling capabilities in Xcode, verify that your Interspace.entitlements file contains:
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.interspace.walletconnect</string>
</array>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.interspace.ios</string>
<string>$(AppIdentifierPrefix)group.com.interspace.walletconnect</string>
</array>- Clean build folder: Product → Clean Build Folder (⇧⌘K)
- Delete derived data if needed
- Rebuild the project
The WalletConnect service is configured with:
Networking.configure(
groupIdentifier: "group.com.interspace.walletconnect",
projectId: "936ce227c0152a29bdeef7d68794b0ac",
socketFactory: DefaultSocketFactory()
)Test URI:
wc:744dbf71677ab076a60a6b297139d52cb798c0637e99f32edf6ae7f18affb9df@2?relay-protocol=irn&symKey=3f43cce1b6cfdf099331f4346264b8048cebd675fe817bf803ae9a17d1cff337&expiryTimestamp=1750990737
If you still get keychain errors:
- Ensure you're using a development team in Xcode (even for simulator)
- Try resetting the simulator: Device → Erase All Content and Settings
- Make sure the provisioning profile includes the entitlements
- For simulator testing, you might need to run on a real device
Based on the official Reown Swift examples, the proper implementation requires:
- App Groups for shared container access
- Keychain Sharing for session persistence
- Proper group identifier configuration
- Matching entitlements and code configuration
The examples show that both DApp and Wallet apps use the same pattern for configuration.