extension으로 plist 불러오는 방법
이전글
[iOS/Swift] 개발 환경에 따라 각각의 다른 plist의 저장된 API Key 값 받아오기 에서도
자세히 다루기는 했지만
이번에는 간단하게 plist
값을 얻는 방법 및 gitignore
까지 다뤄보겠습니다.
준비 작업
먼저 plist
파일을 추가해 주세요.
기본 plist
파일은 Dictionary
형식으로 되어있습니다.
배열도 가능
plist
파일을 생성 후
원하는 이름으로 Key 값을 만들어주고
Value 값으로 사용할 API Key 값을 넣어 만들어 줍니다.
일단 이렇게 하면 준비 작업은 끝났습니다.
코드
하드코딩을 할 것이기 때문에
⭐️ 위에서 작업한 plist
파일 이름과 키 값을 정확하게 입력해 주셔야 합니다. ⭐️
extension Bundle {
var apiKey: String {
// forResource에다 plist 파일 이름을 입력해주세요.
guard let filePath = Bundle.main.path(forResource: "SecureAPIKeys", ofType: "plist"),
let plistDict = NSDictionary(contentsOfFile: filePath) else {
fatalError("Couldn't find file 'SecureAPIKeys.plist'.")
}
// plist 안쪽에 사용할 Key값을 입력해주세요.
guard let value = plistDict.object(forKey: "API_KEY") as? String else {
fatalError("Couldn't find key 'API_Key' in 'SecureAPIKeys.plist'.")
}
// 또는 키 값을 통해 직접적으로 불러줄 수도 있어요.
// guard let value = plistDict["API_KEY"] as? String else {
// fatalError("Couldn't find key 'API_Key' in 'SecureAPIKeys.plist'.")
// }
return value
}
}
왜 Bundle 익스텐션으로 생성하는가?
NSBundle이란
Bundle
에 포함된 코드와 리소스에 대한 표현
NSBundle
은 ObjectiveC
를 통해 만들어진 Foundation Class이며
Bundle
디렉터리 안에 포함된 리소스에 쉽게 접근할 수 있도록 제공되는 객체입니다.
Bundle.main이란
앱 실행 시 기본적으로 main bundle이 생성이 됩니다.
main bundle == Bundle.main
main bundle은 현재 앱이 실행중일 때
앱의 Bundle Directory에 대한 리소스에 접근할 수 있게 도와주는 놈이죠.
현재 plist
는 메모리에 올라간 상태입니다.
그러므로 path
로 접근하면 plist
의 파일의 리소스(값)를 사용할 수 있는거죠.
즉, Bundle
로 plist
에 접근이 가능하므로
Bundle
익스텐션을 사용!
미치도록 자세한 내용을 알고 싶다면 공식문서 를 참고하세요.
이건 외계어인가?
사용 방법
이제 만들어준 코드로 plist
의 값을 불러와야겠죠?
간단합니다.
main Bundle에 접근해서
만들어준 속성만 입력하면 불러올 수 있습니다.
let appKey = Bundle.main.apiKey
// API값 12345
gitignore로 plist를 숨기기
여러 방법이 존재하는데 원하는 방식으로 사용하길 바랍니다.
방법 (터미널 이용 방법)
터미널에서 cd
로 적용할 폴더로 접근한 뒤
touch .gitignore
를 통해 gitignore
를 생성해 줍니다.
폴더로 들어가 보면 gitignore
가 생성된 걸 확인할 수 있습니다
파일이 보이지 않는다면 comman
+ shifh
+ .
을 통하여 숨김을 해제해야 돼요.
gitignore
파일로 들어가서 숨기고 싶은
확장자명을 포함한 파일명을 적어주세요.
적용이 됐나 확인해 볼까요?
파일을 추가해도 Git
에서 SecureAPIKeys.plist
가 보이지 않습니다.
적용이 잘된 거 같군요.
방법 (Xcode 내부 Git 설정 방법)
이 방법은 gitignore_global
을 생성시켜 줘서
전역적으로 적용되게 하는 방법입니다.
다른 프로젝트를 생성해도 자동으로 gitignore
가 적용이 됩니다!
Setteing
-> Source Control
-> Git
-> ignored 추가
저장위치는 확실치 않는데
제 기준으로 사용자 폴더에서 생성이 되더라고요.
이 파일이 생겼으면 성공!
마지막으로 gitignore_global
적용시키기 위해서 필요한 코드가 있습니다.
한 번만 적용해 주면 다음 프로젝트부터는 자동적으로 gitignore
가 됩니다!
git config --global core.excludesfile ~/.gitignore_global
방법 (Xcode로 . gitignore 파일 생성 방법)
최근에 알게 된 방법인데
Xcode에서 gitignore
파일을 생성해 준 뒤 작성하는 방법이다.
command
+ n
을 통해 empty 파일 생성
파일명을 .gitignore로 설정 및 숨겨짐(Use 버튼) 클릭
위랑 같은 방식으로 gitignore 작성하기
⭐️ 꼭 먼저 gitignore
의 목록 작성 후 파일을 생성시켜 주세요. ⭐️
파일생성 후에는 적용이 안되더라고요.
터미널에서 워킹 디렉터리로 다시 초기화시키면 되긴 하는데 번거롭습니다.
부족한 설명이지만, 조금은 이해 가셨나요?
틀린 내용이 있다면 언제든지 지적해 주시면 감사히 받겠습니다. 🫠
읽어주셔서 감사합니다 😃
'UIKit > Cheat Sheet' 카테고리의 다른 글
[iOS/Swift] Observable 원리 (Data Binding, Playground 간단 예제) (0) | 2023.02.25 |
---|---|
[iOS/Swift] 검색창(UISearchController)과 결과창(searchResultsController) 사이의 공간 없애기! (0) | 2023.02.22 |
[iOS/Swift] 개발 환경에 따라 각각의 다른 plist의 저장된 API Key 값 받아오기 (0) | 2023.02.10 |
[iOS/Swift] UIColor (RGB대신 HEX Color 이용하기) (0) | 2023.02.09 |
[iOS/Swift] 상태창(StatusBar) 색상 변경 방법 (시계, 배터리...색) (0) | 2023.02.05 |