2011-06-12 2 views
0

iOS 앱을 테스트 할 때 팀과 SSL 인증서 유효성 검사를 비활성화해야합니다.Xcode를 사용하여 소스 컨트롤에 디버그 코드를 포함시키지 않으려면 어떻게해야합니까?

현재, 우리는 하드 코딩 된 #define 사용 : 결과

// In Prefix.pch 
#define ALLOW_INVALID_SSL_CERTS 

// Elsewhere 
#ifdef ALLOW_INVALID_SSL_CERTS 
// Code to disable SSL certificate validation 
#endif

을, 우리는 #define 우리가 새 버전을 출시 할 때마다 제거해야합니다.

이상적으로 우리는 Xcode에서 소스 컨트롤에 체크되지 않는 플래그를 활성화하는 방법을 찾고 싶습니다.

나는 이것이 응용 프로그램 인수 ([[NSProcessInfo processInfo] arguments)를 사용하여 가능하다는 것을 발견했습니다. 그러나 공격자는 앱을 시작하기 전에 해당 인수를 해당 앱에 제공 할 수있는 방법을 찾을 수 있기 때문에 잠재적으로 악용 될 수 있습니다.

Xcode에서 이것을 설정할 수있는 또 다른 방법이 있습니까?

답변

1

디버그 설정과 릴리스 설정에서 -DDEBUG = 1과 같이 빌드 설정에 Other C Flag를 설정하려고하면 -DDEBUG = 0으로 설정됩니다. 그런 다음 접두사 파일에서 이와 같이 디버그 매크로를 정의하십시오.

#if DEBUG 
#define ALLOW_INVALID_SSL_CERTS 1 
#else 
#define ALLOW_INVALID_SSL_CERTS 0 
#endif 

나는 이렇게한다. -DDEBUG 옵션을 설정할 위치를 알고 싶다면 스크린 샷을 작성하십시오.

enter image description here

0

dev_PROJ_ALLOW_INVALID_CERT = 1과 같은 환경 변수를 정의 해보십시오 (빌드 시스템에 정의되어 있지 않은지 확인하십시오).

그런 다음 프로젝트 전 처리기 매크로 빌드 설정을 수정하여 ALLOW_INVALID_SSL_CERTS 매크로를 $ (IOS_PROJ_ALLOW_INVALID_CERT) env var 값으로 설정하십시오.

관련 문제