1. Failed to get installations token.
Error Domain=com.google.remoteconfig.ErrorDomain Code=8003 "Failed to get installations token. Error : Error Domain=com.firebase.installations Code=0 "Underlying error: The operation couldn’t be completed. SecItemAdd (-34018)" UserInfo={NSLocalizedFailureReason=Underlying error: The operation couldn’t be completed. SecItemAdd (-34018), NSUnderlyingError=0x6000004edef0 {Error Domain=com.gul.keychain.ErrorDomain Code=0 "SecItemAdd (-34018)" UserInfo={NSLocalizedFailureReason=SecItemAdd (-34018)}}}." UserInfo={NSLocalizedDescription=Failed to get installations token. Error : Error Domain=com.firebase.installations Code=0 "Underlying error: The operation couldn’t be completed. SecItemAdd (-34018)" UserInfo={NSLocalizedFailureReason=Underlying error: The operation couldn’t be completed. SecItemAdd (-34018), NSUnderlyingError=0x6000004edef0 {Error Domain=com.gul.keychain.ErrorDomain Code=0 "SecItemAdd (-34018)" UserInfo={NSLocalizedFailureReason=SecItemAdd (-34018)}}}., NSUnderlyingError=0x6000004edef0 {Error Domain=com.gul.keychain.ErrorDomain Code=0 "SecItemAdd (-34018)" UserInfo={NSLocalizedFailureReason=SecItemAdd (-34018)}}}
아래 링크 issue에 나온 에러와 동일한 에러가 발생하였음.
https://github.com/firebase/firebase-ios-sdk/issues/12318
`Keychain Sharing`을 Capability에 추가하는 방식을 시도해 보았다.
Keychain Sharing을 추가하면 Entitlements 파일을 추가하라는 메세지가 뜨고, 만들기 버튼을 눌러주면 새로운 파일이 추가된다.
🏷 Keychain Sharing이란?
동일한 개발자의 서로 다른 앱 끼리 혹은 동일한 앱의 서로 다른 타겟끼리 key chain에 저장되어 있는 정보를 공유하는 것.
아래와 같이 정보를 공유할 bundle id를 Keychain Access Groups에 추가해주면 된다.
🏷 Entitlements 파일이란?
특정한 capability를 수행하기 위한 권리에 대한 정보가 key-value 형태로 담겨있는 파일. Capability는 여러 종류가 있는데, 대표적으로 WeatherKit, HomeKit 등이 있다. 예를 들어서, HomeKit을 app의 capability로 추가하면, 사용자의 사용 허가 하에 사용자 아이폰의 HomeKit 기능과 관련된 것들을 개발자가 본인의 앱에서 사용할 수 있게 된다.
2. A server with the specified hostname could not be found.
위의 capability를 추가하고 run을 했더니, 아까와 동일한 에러에 '어떤 hostname을 가진 서버를 찾을 수 없다'는 새로운 내용이 추가된 에러가 발생하였다.
Using Firebase on macOS requires enabling some Sandbox capabilities that are automatically enabled on iOS.
알아보니 이는 macOS는 Sandbox의 기능 중 몇 가지가 자동으로 활성화되어 있지 않아서 생기는 문제라고 한다. 해결 방법은 App Sandbox capability > Network > Outgoing Connection (Client)를 체크해주면 된다.
이렇게 두 가지를 설정해주니, 문제 없이 Firebase Remote Config를 mac app에서 사용할 수 있게 되었다.
---
참고자료
KeychainSharing
- https://medium.com/@anshuraghuvansi/keychain-sharing-between-applications-on-ios-af1931468e26
- https://developer.apple.com/documentation/xcode/configuring-keychain-sharing
'Swfit' 카테고리의 다른 글
MacOS app개발 시 custom font 추가하기 (0) | 2025.01.06 |
---|---|
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory 에러 해결방법 (0) | 2024.11.14 |
Console에서 info, debug 내용 나오지 않을 때 (0) | 2024.07.20 |
os_log private 으로 나오는 내용 확인하기 (0) | 2024.07.19 |
Structure의 immutability (2) | 2024.04.21 |