CocoaPods 환경에서 xcconfig 추가해서 민감한 정보(API) 숨기기

raindrop·2023년 6월 29일
0
post-custom-banner

.xcconfig 파일이란

.xcconfig 파일은 Configuration Settings File을 추가하면 만들 수 있다.

이 파일에 민감한 정보, 예를 들면 API 주소를 다음과 같이 저장할 수 있다.

// .xcconfig
// '$()'은 주석처리를 막기 위해 넣는다
baseURL = http:/$()/111.111.111.11/

1. Info.plist 수정하기

plist에서 다음과 같이 key, value 값을 추가해보자

// plist
// 일반적인 방법으로 plist에 항목을 추가하면 된다
<key>baseUrl</key>
<string>$(baseUrl)</string>

여기서 key 값은 .swift 에서 호출할 수 있고, value 값은 .xcconfig에서 호출된다.

2. Pods 전용 .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를 포함할 수 있도록 설정해준다.

3. Configuration 생성하기

Project > Project > Info > Configuration

위 경로에서 Configuration을 추가하고, 생성한 xcconfigTargets(회색 프로젝트 아이콘)에만 설정해준다.

4. Scheme 생성하기 (생략 가능)

최상단 바에서 Products > Manage Schemes에 들어가서 Scheme을 추가한다.

Targets는 프로젝트로 설정한다

Edit Schemes에 들어가서 Run 항목의 Build Configuration을 이전에 생성해 준 Configuration으로 설정한다.

5. 값 호출하기

let baseUrl = Bundle.main.object(forInfoDictionaryKey: "baseUrl") as? String

이제 추가한 config 파일을 gitignore 추가하면 민감한 정보를 Github에 올리지 않을 수 있다.

6. .xcconfig 추가

이 단계부터는 Github에서 프로젝트를 받았을 때의 경우를 다룹니다.

정상적으로 .gitignore에 커스텀한 .xcconfig 파일이 포함하고 커밋하지 않았다면,
xcode에서 없는 파일로 뜨게 됩니다.

이전에 추가한 경로와 같은 곳에서 .xcconfig 파일을 추가합니다.
프로젝트 폴더 > Pods > Target Support Files > Pods-프로젝트이름

7. Scheme 수정

사용할 Scheme의 Bulld에서 이전에 생성했던 Configuration을 설정합니다.

pod 오류가 발생하면, pod install을 실행한다. 실행하면 추가한 xcconfig가 자동으로 수정되니, 다시 커스텀한 xcconfig를 추가한다.

레퍼런스

[iOS - swift] iOS 프로젝트 배포 환경별 build 세팅, Build Scheme 세팅 (단일타겟, xcconfig)

How to Set Up Xcode Build Configurations

post-custom-banner

0개의 댓글