2014-09-30 2 views
3

4 번째 베타 버전부터 XCode 6을 사용하기 시작했으며 지금은 iOS 용 순수 Swift .framework를 만들고 내보내려고했습니다.Xcode에서 .framework 빌드 6

나는 관리자에게해야한다. 나는 그것을하기 위해 많은 문제를 겪고있다. .framework를 보편적으로 내보내려고하므로 장치, 시뮬레이터 모두에서 실행할 수 있습니다.

이제 제 질문은 달성 할 수있는 방법이 있습니까? lipo 등 2 개의 결과를 병합하는 .framework 제품을 빌드하고 아카이브하려고 시도했습니다. Apple 설명서가 불완전한 것처럼 보입니다.

내가 얻은 단일 결과는 선언 된 개체 중 하나를 사용할 때 EXC_BAD_ACCESS가 즉시 상승하는 .framework이므로 내가 잘못 생각한 것 같습니다.

답변

0

아래 스크립트를 사용하여 프레임 워크를 결합 할 수 있습니다.

1) 프레임 워크 프로젝트에서 새 집계 타겟을 만듭니다.

2) 빌드 단계에 실행 스크립트를 추가하십시오.

3) 아래의 스크립트를 복사하여 붙여 넣습니다.

4) 목표 유형이있는 집계를 iOS 기기 및 실행으로 선택하십시오.

5) 이제 조합 된 프레임 워크를 사용할 수 있습니다.

FRAMEWORK_NAME="${PROJECT_NAME}" 

SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework" 

DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework" 

UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" 

FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework" 

xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -arch i386 -arch x86_64 -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator | echo 

xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -arch arm64 -arch armv7 -arch armv7s -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos | echo 

rm -rf "${UNIVERSAL_LIBRARY_DIR}" 

mkdir "${UNIVERSAL_LIBRARY_DIR}" 

mkdir "${FRAMEWORK}" 

cp -r "${DEVICE_LIBRARY_PATH}/." "${FRAMEWORK}" 

lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output"${FRAMEWORK}/${FRAMEWORK_NAME}" | echo 
+0

karthikeyan viswanathan, 스크립트와 프레임 워크를 결합하면 제대로 작동하지 않습니다 (적어도 Swift Framework의 경우). -iphonesimulator의 swiftmodule 파일 (Modules 디렉토리)을 universal framework 디렉토리의 swiftmodule에 복사해야합니다. –

관련 문제