2010-12-29 5 views
6

Xcode의 실제 빌드 전에 사전 처리 작업을 수행하는 스크립트가 있습니다. Xcode가 "빌드 및 아카이브"를 수행하는시기를 알려주는 방법이 있습니까? 아카이브 단계의 일환으로 "svn commit"을하고 싶습니다. 나는 빌드 동안 존재하는 환경 변수를 버렸지 만, 보통 빌드와 마찬가지로 아카이브에 대해 보입니다.Xcode가 스크립트에서 "빌드 및 보관"을하고 있는지 확인하는 방법은 무엇입니까?

아카이브를 작성 중인지 확인할 수있는 다른 정보는 없습니까?

아카이브를 만들기 전에 자동으로 커밋을 수행하는 다른 방법은 없습니까? 모든 빌드에 커밋을하고 싶지 않아서 svn 트리가 IMO를 탐색하기가 더 어려워졌습니다.

저는 Xcode 3.2.5를 사용하고 있습니다.

감사합니다. Norm

답변

0

Xcode GUI에서 독립적 인 스크립트로 매일 빌드 시스템을 설치하는 것이 좋습니다. 이것은 단지 svn commit 트리거 빌드 및 아카이브 및 배포하게됩니다. 나는 그것이 포함 된 프로비저닝 프로파일과 .ipa 파일을 작성하지 않음을 읽을 수 있기 때문에

Xcode "Build and Archive" from command line

+0

나는 이것이 내가 취해야하는 길일 수도 있다고 생각합니다. 또 다른 옵션은 아카이브를 수행 할 때 다른 구성을 사용하는 것입니다. 여전히 올바른 구성을 선택하는 것에 의존하지만 Xcode는 여전히 작업을 수행 할 수 있습니다. – TejasSoft

2

내가 명령 줄 빌드 및 보관을 피하기 위해 원 : 여기에 설명 된 것처럼 당신은 xcrun 명령으로 빌드 및 아카이브를 실행할 수 있습니다 그 안에. 그것을 사용하면 테스터에게 훨씬 쉽게 보낼 수 있습니다.

내가 한 것은 다음과 같습니다.

4 가지 구성이 있습니다. 디버그, 릴리스, Ad Hoc 릴리스 및 앱 스토어 릴리스.

디버깅 및 릴리스를 사용하여 커밋하지 않고 빌드합니다. 나는 베타 테스터에게 보낼 때 Ad Hoc을 사용하고, 최종 테스트와 App Store 제출을 위해 App Store를 사용한다.

다음은 미리 빌드 스크립트에 추가 한 코드입니다.

# Get the version number from the .plist file 
VER_NUM=`cat "${SRCROOT}/${INFOPLIST_FILE}" | grep -A 1 CFBundleVersion | grep string | sed 's/]*>//g' | sed 's/^[ ]*//'` 

# Check build type to see if svn commit should be done 
if [ "${BUILD_STYLE}" == "App Store Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${BUILD_STYLE}" == "Ad Hoc Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${SVN_COMMIT}" == "yes" ] 
then 
echo "Commiting the project to SVN" 
BUILD_TIME=`date` 
svn commit -m "\"Version ${VER_NUM} for ${BUILD_STYLE} ${BUILD_TIME}\"" 
fi 

이것은 내 문제에 대한 신속하고도 더러운 답변입니다. 좀 더 우아한 해결책이 있어야하지만, 지금은 효과가 있습니다. 애플이 그것을 해결할 아카이브 빌드임을 보여주는 환경 변수를 추가하면된다.

관련 문제