.xcconfig 파일은 Configuration Settings File
을 추가하면 만들 수 있다.
이 파일에 민감한 정보, 예를 들면 API 주소를 다음과 같이 저장할 수 있다.
// .xcconfig
// '$()'은 주석처리를 막기 위해 넣는다
baseURL = http:/$()/111.111.111.11/
plist에서 다음과 같이 key, value 값을 추가해보자
// plist
// 일반적인 방법으로 plist에 항목을 추가하면 된다
<key>baseUrl</key>
<string>$(baseUrl)</string>
여기서 key 값은 .swift 에서 호출할 수 있고, value 값은 .xcconfig에서 호출된다.
CocoaPods
의 경우 .xcconfig
파일은 Pods
폴더 내에 있어야 하는 것으로 보인다.
Pods 폴더를 살펴보면 다음과 같은 파일들을 확인할 수 있다.
Pods-ScondHand.debug.xcconfig
Pods-SecondHand.release.xcconfig
...
여기에 config 파일을 추가하고 다음과 같이 작성한다.
#include "Pods-SecondHand.debug.xcconfig"
baseURL = http:/$()/111.111.111.11/
이제까지 생성한 Pods 경로는 이미 존재하는 .xcconfig
에 저장되어 있으므로 위와 같이 해당하는 .xcconfig
를 포함할 수 있도록 설정해준다.
Project > Project > Info > Configuration
위 경로에서 Configuration
을 추가하고, 생성한 xcconfig
를 Targets
(회색 프로젝트 아이콘)에만 설정해준다.
최상단 바에서 Products > Manage Schemes에 들어가서 Scheme
을 추가한다.
Targets는 프로젝트로 설정한다
Edit Schemes에 들어가서 Run
항목의 Build
Configuration
을 이전에 생성해 준 Configuration으로 설정한다.
let baseUrl = Bundle.main.object(forInfoDictionaryKey: "baseUrl") as? String
이제 추가한 config 파일을 gitignore 추가하면 민감한 정보를 Github에 올리지 않을 수 있다.
이 단계부터는 Github에서 프로젝트를 받았을 때의 경우를 다룹니다.
정상적으로 .gitignore에 커스텀한 .xcconfig 파일이 포함하고 커밋하지 않았다면,
xcode에서 없는 파일로 뜨게 됩니다.
이전에 추가한 경로와 같은 곳에서 .xcconfig 파일을 추가합니다.
프로젝트 폴더 > Pods > Target Support Files > Pods-프로젝트이름
사용할 Scheme의 Bulld에서 이전에 생성했던 Configuration
을 설정합니다.
pod 오류가 발생하면, pod install을 실행한다. 실행하면 추가한 xcconfig가 자동으로 수정되니, 다시 커스텀한 xcconfig를 추가한다.
[iOS - swift] iOS 프로젝트 배포 환경별 build 세팅, Build Scheme 세팅 (단일타겟, xcconfig)