0

webservices를 사용하는 iPad 용 앱을 개발 중입니다. 현재 버전에서는 서버의 주소 인 상수 문자열이 있습니다. 내가 뭔가를 확인하고 싶을 때마다 주소 (생산지, 프리 프로덕션 버전, 프리 프로덕션 버전, 리포지토리와 동일한 버전)를 변경합니다. 문제는 iPad에서 두 가지 버전의 앱을 사용하고 싶습니다.하지만 번들 식별자가 동일하지 않으면 불가능하다고 생각합니다. 다른 프로젝트를 만들지 않고 그렇게하는 올바른 방법은 무엇입니까? 유일한 차이점은 webservice 주소가 두 가지 버전의 애플 리케이션을 배포 할 수있는 "두 대상"을 가질 수 있습니까? 내가 테스트 버전을 배포 할 때마다 "얼어 붙었다"버전이 삭제되기 때문에 응용 프로그램이 클라이언트에 전달 될 때ios 배포 전 제작 및 제작 버전

이 문제는 확대됩니다.

배포하기 전에 webservice 주소를 변경할 때마다 번들 식별자를 변경해야합니까? 아니면 그렇게 할 수있는 "자동화 된"방법이 있을까요? 사전

답변

1

당신이 유지해야하는 서버에 API의 많은 버전으로 끝날 나는 당신의 서비스 요청에 대한 번들 식별자에 의존하지 않을에서

감사합니다. 프로젝트에서 새 대상을 만들고 빌드 설정에 Pre 프로세서 매크로를 추가 한 다음 코드에서 해당 매크로를 참조하여 어떤 URL을 사용할지 결정할 수 있습니다.

- (NSURL *)url { 
NSString *urlString = @"your://standars.url"; 

APITEST # 만약
URLString는 = @ 코드에 다음

enter image description here

"당신 : //test.url";

#endif 다음
return [NSURL URLWithString:urlString]; 

}

+0

답장을 보내 주셔서 감사합니다, 그러나 이것은 나를 위해 올바른 선택 인 경우 내가 잘 모르는 것 같아요. 사용자는 한 번에 한 장치에 두 가지 버전을 사용할 수 있습니까? – patryk

+1

이 아니라면 번들 ID를 반드시 변경해야하며이를 설정하려면 다른 대상을 추가하는 것이 좋습니다. 두 버전을 동기화 상태로 유지하는 것이 번거로울 수 있다는 점을 명심하십시오. – cescofry

+0

당신의 답을 수락하고 있지만 대상을 복제하고, 번들 ID를 변경하고, 적절한 번들 이름을 설정하고, 전처리 기 매크로를 사용하여 적절한 서버 주소를 설정해야한다고 추가해야합니다 :-) 이제 시뮬레이터/장치에 두 개의 응용 프로그램이 있습니다. . 프리젠 테이션 및 프로덕션 앱의 버전을 유지하는 것은 어렵지 않습니다. 왜냐하면 git 저장소를 사용하여 코드 변경 사항을 추적하기 때문입니다 (백엔드에도 동일한 모델, 두 개의 서버가 있음). – patryk