프로그래밍/iOS
iOS 코드에서 중요 정보 가리기 (Feat. plist, bundle, gitignore)
yeop96
2022. 5. 10. 19:35
개발하다 보면 url, api key, apple id 등 코드에 필요하지만 가리고 올리고 싶을 때가 있다.
그럴 때 plist를 활용하여 따로 적어놓고 사용하는 코드를 정리해놓으려 한다.
예시로 apple id를 숨기려 한다! (보통 api key나 base url도 많이 활용한다)
func requestReviewmenually(id: String) { //app store connect의 앱정보에서 apple id를 확인한다
guard let writeReviewURL = URL(string: "https://apps.apple.com/app/id\(id)?action=write-review")
else { return }
UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil)
}
앱스토어 리뷰로 바로 이동가능한 함수인데 apple id가 공개되면 좀 그러니 숨겨보자
일단 새 파일을 만들기 하고 Property List를 선택해 만들면 된다. (Info.plist와 같은 확장자이다.)
거기에 key를 원하는 이름으로 적고 value의 숨길 값을 적어준다.
그다음 plist에 접근하기 위해서 bundle을 extension 해서 코드를 적어준다.
extension Bundle {
var appAppleID: String {
guard let file = self.path(forResource: "MyPrivacyInfo", ofType: "plist") else { fatalError("MyPrivacyInfo.plist 파일이 없습니다.") }
guard let resource = NSDictionary(contentsOfFile: file) else { fatalError("파일 형식 에러") }
guard let key = resource["AppAppleID"] as? String else { fatalError("MyPrivacyInfo에 AppAppleID을 설정해주세요.")}
return key
}
}
bundle안에 키값을 가져오기 위해 Bundle.main에 접근해서 extension 해둔 변수를 가져온다.
let appAppleID = Bundle.main.appAppleID
requestReviewmenually(id: appAppleID)
그럼 쉽게 사용가능!
github에 올릴 때는 MyPrivacyInfo.plist를 .gitignore 해주면 된다.
그러면 중요 정보는 숨기고 쓸 수 있다!
- .gitignore 하는 방법은 아래 포스팅 참고!
.gitignore (Mac 환경)
레포지토리에 .gitignore을 해놔야 깃허브에 필요 없는 걸 안 올릴 수 있다. 그리고 가장 중요하게 내가 숨기고 싶은 파일을 안올릴 수 있다! (ex. url, API Key, .plist 등) 항상 검색해서 썼었는데 나를
yeop96.tistory.com