code

xccconfig 파일에서 전체 URL을 구성하려면 어떻게 합니까?

starcafe 2023. 8. 21. 21:29
반응형

xccconfig 파일에서 전체 URL을 구성하려면 어떻게 합니까?

나는 내 앱이 어떤 서버를 히트시켜야 하는지에 대한 구성이 포함된 xccconfig 파일을 가지고 있습니다.디버그 모드에서는 릴리스 빌드와는 다른 서버가 됩니다.

제가 가지고 있는 문제는 http://www.stackoverflow.com 형식의 URL이 더블슬래시 이후에 댓글로 처리된다는 것입니다.그래서 코드에서 받는 문자열은 'http:'입니다.

Info.plist에 -traditional 빌드 플래그를 넣을 수 있다고 읽었는데, 다른 사람이 비슷한 문제를 겪고 해결한 적이 있는지 궁금합니다.

감사해요.

다음은 간단한 해결 방법입니다.

WEBSITE_URL = https:/$()/www.example.com

또한 xccconfig 파일에서 이중 슬래시를 사용하는 방법을 찾을 수 없었습니다.하지만 저는 해결책을 찾았습니다.

Xcode 사용자 메일링 목록에서:xcconfig 파일에서 http 방식을 사용하지 않고 URL을 저장합니다.

MYURL = stackoverflow.com

Info.plist에서 속성 값을 다음으로 설정합니다.

http://${MYURL}

선언하기

SIMPLE_SLASH=/

그러면 당신의 URL은

http:$(SIMPLE_SLASH)/www.stackoverflow.com
SLASH=/

API_URL=http:$(SLASH)/endpoint.com

가독성을 향상시키는 또 다른 접근 방식은 다음과 같습니다.

PROTOCOL = http:/
API_URL = $(PROTOCOL)/www.stackoverflow.com

이 방식의 프로토콜은 다른 곳에서 사용할 수 있습니다.

이 설정에는 xccconfig 파일을 사용하면 안 됩니다.

xcconfig 파일은 프리프로세서의 입력이며 결국 컴파일러의 입력인 "일반" 헤더 또는 모듈 파일이 아닙니다.xcconfig 파일 파서가 문자 인코딩을 어떻게 처리하는지, 이스케이프 시퀀스를 인식하는지, 매크로를 확장하는지, 문자 리터럴을 정의하는 방법 등은 어디에서도 지정되지 않습니다.

이 경우 "구성"을 갖는 것이 훨씬 더 좋습니다.h" 헤더 파일 및 프리프로세서 정의에 기반한 조건부 사용:

#if defined (DEBUG)
    NSURL* url = ...
#else
    NSURL* url = ...
#endif

여기서,DEBUG기본적으로 디버그 구성에 대해 정의되어 있습니다.빌드 설정의 "Preprocessor 매크로"에서 다른 정의를 #정의할 수 있습니다.

언급URL : https://stackoverflow.com/questions/21317844/how-do-i-configure-full-urls-in-xcconfig-files

반응형