IOS Swift

iOS) 중요한 값 Info.plist에 저장하여 사용하기

500beckwon 2023. 3. 7. 18:40

개발을 하다 보면 API Key값 같은 공개해서는 안돼는 고유의 값을 사용할 때가 많은데

 

이럴 때 어떻게 해야하나? 란 궁금증에 구글링을 해보니 .swift 파일에 선언하여 사용하는 것보다

 

Info.plist에 key-value에 입력한 후 접근해서 사용하면 안전하게 사용할 수 있다는 글귀를 읽게 되어 시도해보았는데 

 

파일에 선언하는 것보다 훨씬 안전하고 값 자체가 따로 분리할 수 있어 개발하는 과정에서도 그 키값을 어디에 뒀더라? 이런 상황도 피할 수 있게 되어 좋은 것 같아 글을 쓰게 되었습니다.

 

 

이런 식으로 값을 넣어주고

 

  var apiKey: String {
        get {
            guard let filePath = Bundle.main.path(forResource: "Info", ofType: "plist") else {
                fatalError("Couldn't find file 'Info.plist'.")
            }
            
            let plist = NSDictionary(contentsOfFile: filePath)
            
            guard let value = plist?.object(forKey: String(키값)) as? String else {
                fatalError("Couldn't find key 'String(키값)' in 'Info.plist'.")
            }
            return value
        }
    }

 

이런 식으로 해당 값을 사용해야 하는 객체에 선언하면 접근하여 값을 사용할 수 있으므로 편하게 이용할 수 있습니다

 

만약 .gitIgnore에 Info.plist을 적용하면  해당 값이 개발하다가 실수로 Github에 올라가는 일도 없게 되겠지요!

 

구글링 할 때 키 값이 swift파일에서 사용하는게 아닌 info.plist에 적혀있기 때문에 fatalError로 한 것 같아 그대로 활용하였습니다