Swift에서 키 숨김 (plist 사용)
몇 가지 방법이 있지만, 이번에는 plist를 이용한 방법으로 키의 은폐화를 실시합니다.
참고
API key를 .plist에 String으로 저장하고 숨기기 (예 : Google Maps Api) - Qiita 를 참고로 했습니다.
KeyManager 추가
적절한 파일 (아니면 OK)을 만들어 KeyManager를 정의합니다.
struct KeyManager {
private let keyFilePath = Bundle.main.path(forResource: "APIKey", ofType: "plist")
func getKeys() -> NSDictionary? {
guard let keyFilePath = keyFilePath else {
return nil
}
return NSDictionary(contentsOfFile: keyFilePath)
}
func getValue(key: String) -> AnyObject? {
guard let keys = getKeys() else {
return nil
}
return keys[key]! as AnyObject
}
}
plist 파일 만들기
새 파일(Property List)을 만들고 이름을 APIKey로 지정합니다.
그 안에 applicationKey와 clientKey라는 2개의 키의 정의와 NCMB로부터 부여되는 캐릭터 라인을 기술합니다.
SDK 설치
NCMB의 Swift SDK를 설치하는 것은 Swift Packages를 사용하기 쉽습니다. File 메뉴에서 Swift Packages > Add Package Dependency를 선택합니다.
나온 대화 상자에서 Swift SDK의 Git 리포지토리 URL을 입력합니다. GitHub 리포지토리에서 HTTPS로 검색할 수 있는 URL 또는 아래 URL이 될 수 있습니다.
https://github.com/NIFCLOUD-mbaas/ncmb_swift.git
버전은 최신 버전일 수 있습니다.
후에는 Finish 버튼을 누르면 완료됩니다.
초기화
이번에는 SwiftUI를 이용하고 있습니다. 라이프 사이클은 SwiftUI App입니다.
먼저 SDK를 가져옵니다.
import SwiftUI
import NCMB
그런 다음
scenePhase
를 추가합니다.@main
struct forumApp: App {
// 追加
@Environment(\.scenePhase) private var scenePhase
다음은 body 에서
onChange
를 사용하여 초기화합니다. 키는 KeyManager().getValue
에서 얻을 수 있습니다.var body: some Scene {
WindowGroup {
ContentView()
}.onChange(of: scenePhase) { scene in
switch scene {
case .active:
// キーの取得
let applicationKey = KeyManager().getValue(key: "applicationKey") as! String
let clientKey = KeyManager().getValue(key: "clientKey") as! String
// 初期化
NCMB.initialize(applicationKey: applicationKey, clientKey: clientKey)
case .background: break
case .inactive: break
default: break
}
}
}
Git 리포지토리에 등록하지 않기
이후에는 APIKey.plist 를 .gitignore에 등록해 두면, 버전 관리 대상외가 되기 때문에, Git 리포지터리에 잘못 올려 버리는 일도 없을 것입니다.
echo (プロジェクト名)/APIKey.plist >> .gitignore
요약
키를 코드 중에 쓰면 메인터넌스성이 나빠지거나 개발 환경과 프로덕션 환경을 나누어 관리하는 것도 귀찮아집니다. Property List이면 Xcode 표준의 구조가 되므로, 외부 라이브러리를 인스톨 하는 일 없이, 간편하게 사용할 수 있을 것입니다.
mBaaS로 서버 개발 불필요! 니후쿠라 mobile backend
Reference
이 문제에 관하여(Swift에서 키 숨김 (plist 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/goofmint/items/bb6875dba202c76519f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)