2010-11-10 2 views
10

자주 데모 서버를 가리킬 수있는 '데모 준비'버전 인 iPhone을 빌드해야합니다. 또한 개발 서버에 대한 포인트를 가지고 개발중인 가장 최신의 디버그 빌드 인 빌드를 원합니다. 누구나 정확히 동일한 코드이지만 다른 서버를 가리키는 두 개의 앱을 설치하는 정말 간단한 방법을 찾았습니까? 아니면 아마도 최신 버전 뒤에 몇 가지 버전의 응용 프로그램을 가지고 있을까요? 가급적 iPhone을 빌드하고 설치하는 데 동일한 XCode 프로젝트를 사용하는 것이 좋습니다.Xcode를 사용하여 iPhone에 동일한 iOS 앱의 여러 빌드를 설치하는 가장 좋은 방법은 무엇입니까?

답변

9

각각 다른 info.plist 파일을 사용하는 특수 빌드 구성을 추가 할 수 있습니다. 어쩌면 당신의 데모를 위해서, 당신은 info.plist라는 MyApp-Info-DEMO.plist와 MyApp-Info.plist를 가지고 있습니다.

그런 다음 서버 변수를 info.plist 변수로 추가하고 앱이 시작될 때 찾아 볼 수 있습니다. 또는 데모 용 SERVER = demo.myserver.com과 라이브 용 SERVER = production.myserver.com과 같은 새로운 구성에서 DEFINE 문을 작성하기 만하십시오.

가장 중요한 부분은 새로운 info.plist에서 CFBundleIdentifier를 변경하는 것입니다. 따라서 데모에서는 com.mycompany.myapp.DEMO와 같은 실제 이름을 com.mycompany.myapp로 지정할 수 있습니다.

이렇게하면 두 버전이 동시에 전화 (다른 CFBundleIdentifiers)에 나타날 수 있습니다. 인앱 구매 또는 서버 푸시 알림을 사용하는 경우 실제 앱 식별자와 데모 용으로 별도의 프로필이 없으면이 작업을 수행 할 수 없습니다.

+5

별도의 파일 대신, Info.plist 파일에서'$ (BUNDLE_IDENTIFIER)'를 사용하여 그 값을 사용자 정의 빌드 설정으로 설정할 수 있습니다. – benzado

1

Xcode의 현재 버전에서는 앱의 Info.plist 파일을 변경하여 다른 번들 식별자를 사용하고 빌드 설정에서 앱의 제품 이름을 변경할 수도 있습니다.

출시 예정 문서에서 읽은 Xcode의 다음 버전에는 원하는 작업을 간소화 할 수있는 기능이 있습니다. 그러나 시험판 소프트웨어는 NDA의 적용을 받기 때문에 자세한 내용을 알려 드릴 수는 없습니다.

2

두 개의 서로 다른 info.plists와 두 개의 서로 다른 전 처리기 정의 (두 개의 대상 각각에 대한 빌드 설정에서)로 두 개의 다른 대상을 만들 수 있습니다. 그런 다음 ifdef는 전 처리기에서 컴파일러가 각 대상에 사용하는 서버 상수를 선택하도록 정의합니다.

그런 다음 두 개의 다른 대상 설정에서 제품 이름과 번들 ID를 다르게 지정하십시오 (장치 나 시뮬레이터가 두 앱 번들을 혼동하지 않도록).

관련 문제