2012-11-23 3 views
1

xcodebuild를 사용하여 3 가지 구성으로 하나의 구성표를 보관하려고하지만 구성이 아카이브 작업으로 변경되지 않습니다. 여기 xcodebuild 아카이브 구성이 작동하지 않음

가의 .sh의 내용입니다

xcodebuild -workspace myApp.xcodeproj/project.xcworkspace -sdk iphoneos -scheme myApp -configuration Distribution clean archive 

xcodebuild -workspace myApp.xcodeproj/project.xcworkspace -sdk iphoneos -scheme myApp -configuration Inhouse clean archive 

xcodebuild -workspace myApp.xcodeproj/project.xcworkspace -sdk iphoneos -scheme myApp -configuration Release clean archive 

업데이트 : 구축 작업은 내가 Xcode4.5/iOS6.0을 사용하고

xcodebuild -workspace myApp.xcodeproj/project.xcworkspace -sdk iphoneos -scheme myApp -configuration Distribution clean build 

xcodebuild -workspace myApp.xcodeproj/project.xcworkspace -sdk iphoneos -scheme myApp -configuration Inhouse clean build 

xcodebuild -workspace myApp.xcodeproj/project.xcworkspace -sdk iphoneos -scheme myApp -configuration Release clean build 

을 잘 작동, 그것은 (빌드 작업과 구성을 잘 작동 변경 각 xcodebuild 실행), 모든 솔루션?

답변

1

아카이브 작업에 대한 구성은 아무런 효과가 없습니다. 아마도 xcodebuild의 버그 일 수 있습니다.

아카이브의 구성을 변경하려면 아카이브 스크립트를 실행하기 전에 매번 구성 스크립트의 구성을 변경해야합니다.

최상의 해결책은 아니지만 문제를 해결하십시오. 사용`아카이브 작업이 실행되지 않습니다 -target`,`지원되지 않는 빌드 액션 archive` 오류가

#! /bin/sh 

# Define Scheme name 
PACKAGE_PROJECT_NAME="MyApp" 
PACKAGE_SCHEME_NAME="MyApp" 

# Get Username 
PACKAGE_USER_NAME="$(whoami)" 

# Scheme Path 
PACKAGE_SCHEME_DIR="$SRCROOT/${PACKAGE_PROJECT_NAME}.xcodeproj/xcuserdata/${PACKAGE_USER_NAME}.xcuserdatad/xcschemes" 
PACKAGE_SCHEME_PATH="${PACKAGE_SCHEME_DIR}/${PACKAGE_SCHEME_NAME}.xcscheme" 

echo "PACKAGE_SCHEME_PATH = ${PACKAGE_SCHEME_PATH}" 

# Set Configuration 
# WARNING: BACKUP_CONFIGURATION MUST be same with build configuration of archive action in MyApp scheme 
BACKUP_CONFIGURATION="Distribution" 

# WARNING: Archive name of archive action in MyApp scheme MUST be set explicitly. 
# WARNING: BACKUP_ARCHIVENAME MUST be same with archive name of archive action in MyApp scheme 
BACKUP_ARCHIVENAME="MyAppArchive" 

echo "BACKUP_CONFIGURATION = ${BACKUP_CONFIGURATION}" 
echo "BACKUP_ARCHIVENAME = ${BACKUP_ARCHIVENAME}" 

# -------------------------------Archive Distribution--------------------------------------- 
# Set Configuration 
OLD_CONFIGURATION="${BACKUP_CONFIGURATION}" 
NEW_CONFIGURATION="Distribution" 
OLD_ARCHIVENAME="${BACKUP_ARCHIVENAME}" 
NEW_ARCHIVENAME="${PACKAGE_SCHEME_NAME}_${NEW_CONFIGURATION}" 

# Clean 
xcodebuild -workspace ${PACKAGE_PROJECT_NAME}.xcodeproj/project.xcworkspace -sdk iphoneos -scheme ${PACKAGE_SCHEME_NAME} -configuration ${NEW_CONFIGURATION} clean 

# Change archive configuration 
sed -i .bak "/<ArchiveAction/,/<\/ArchiveAction>/{s/\"${OLD_CONFIGURATION}\"/\"${NEW_CONFIGURATION}\"/;s/\"${OLD_ARCHIVENAME}\"/\"${NEW_ARCHIVENAME}\"/;}" ${PACKAGE_SCHEME_PATH} 

# Archive 
xcodebuild -workspace ${PACKAGE_PROJECT_NAME}.xcodeproj/project.xcworkspace -sdk iphoneos -scheme ${PACKAGE_SCHEME_NAME} archive 

# -------------------------------Archive Inhouse------------------------------------------ 
# Set Configuration 
OLD_CONFIGURATION="${NEW_CONFIGURATION}" 
NEW_CONFIGURATION="Inhouse" 
OLD_ARCHIVENAME="${NEW_ARCHIVENAME}" 
NEW_ARCHIVENAME="${PACKAGE_SCHEME_NAME}_${NEW_CONFIGURATION}" 

# Clean 
xcodebuild -workspace ${PACKAGE_PROJECT_NAME}.xcodeproj/project.xcworkspace -sdk iphoneos -scheme ${PACKAGE_SCHEME_NAME} -configuration ${NEW_CONFIGURATION} clean 

# Change archive configuration 
sed -i .bak "/<ArchiveAction/,/<\/ArchiveAction>/{s/\"${OLD_CONFIGURATION}\"/\"${NEW_CONFIGURATION}\"/;s/\"${OLD_ARCHIVENAME}\"/\"${NEW_ARCHIVENAME}\"/;}" ${PACKAGE_SCHEME_PATH} 

# Archive 
xcodebuild -workspace ${PACKAGE_PROJECT_NAME}.xcodeproj/project.xcworkspace -sdk iphoneos -scheme ${PACKAGE_SCHEME_NAME} archive 

# -------------------------------Archive Adhoc------------------------------------------- 
# Set Configuration 
OLD_CONFIGURATION="${NEW_CONFIGURATION}" 
NEW_CONFIGURATION="Release" 
OLD_ARCHIVENAME="${NEW_ARCHIVENAME}" 
NEW_ARCHIVENAME="${PACKAGE_SCHEME_NAME}_${NEW_CONFIGURATION}" 

# Clean 
xcodebuild -workspace ${PACKAGE_PROJECT_NAME}.xcodeproj/project.xcworkspace -sdk iphoneos -scheme ${PACKAGE_SCHEME_NAME} -configuration ${NEW_CONFIGURATION} clean 

# Change archive configuration 
sed -i .bak "/<ArchiveAction/,/<\/ArchiveAction>/{s/\"${OLD_CONFIGURATION}\"/\"${NEW_CONFIGURATION}\"/;s/\"${OLD_ARCHIVENAME}\"/\"${NEW_ARCHIVENAME}\"/;}" ${PACKAGE_SCHEME_PATH} 

# Archive 
xcodebuild -workspace ${PACKAGE_PROJECT_NAME}.xcodeproj/project.xcworkspace -sdk iphoneos -scheme ${PACKAGE_SCHEME_NAME} archive 

# ------------------------------Restore Configuration------------------------------------- 
sed -i .bak "/<ArchiveAction/,/<\/ArchiveAction>/{s/\"${NEW_CONFIGURATION}\"/\"${BACKUP_CONFIGURATION}\"/;s/\"${NEW_ARCHIVENAME}\"/\"${BACKUP_ARCHIVENAME}\"/;}" ${PACKAGE_SCHEME_PATH} 
0

옵션을 사용하는 경우 구성 자체가 설정에 의해 무시됩니다. 당신은 3 개 가지 계획을 작성해야하고 아카이브 작업에 적합한 구성을 사용하는 각을 구성합니다 : 또는

enter image description here

전혀 계획 신경 쓰지 수 있으며, 명령에 --target--configuration 스위치를 사용 라인 직접.

+0

빌드 작업은 (내 업데이 트를 참조) 잘 작동 : 여기

는 코드입니다. – nova

관련 문제