2013-10-20 8 views
0

사용자 지정 iOS 프레임 워크를 만들려고 시도한 적이 처음입니다. 이 tutorial 다음 xCode 사용하여 사용자 지정 IOS 프레임 워크를 만들려고 해요. 나는 마지막 단계까지 나아갔습니다 (12 단계).Xcode에서 사용자 지정 iOS 프레임을 빌드하는 중 오류가 발생했습니다.

Step 12: Build Project with Aggregate scheme 

Select Aggregate("UniversaliOS") Scheme 
Select iOS device 
Build Project (⌘-B) 

그러나 빌드는 쉘 스크립트 호출 오류와 함께 실패

ditto: can't get real path for source 
lipo: can't create temporary output file: /Users/pdl/Library/Developer/Xcode/DerivedData/InnerID-iOS-SDK-dgyjuudeootshidhpzlejhbyqvco/Build/Products/InnerID-iOS-SDK-Bundle.framework/InnerID-iOS-SDK-Bundle.lipo (No such file or directory) 
Command /bin/sh failed with exit code 1 

나는 무엇에 관해서는 전혀 단서가 없다 : 명령/빈/SH 1. 오류 세부 사항은 종료 코드로 실패 지금 해. 어떤 제안? 필요한 경우 PhaseScriptExecution 덤프를 제공 할 수 있습니다.

도움을 주셔서 감사합니다.

답변

0

iOSBundle을 모두 (10 단계) 컴파일하지 않고 iOS 시뮬레이터와 장치를 직접 병합하려고했습니다 (12 단계).

기본적으로 10 단계는 무엇입니까? 그저 시뮬레이터와 장치 모두를위한 프레임 워크를 만들므로 어떤 이유로 빌드 폴더가 비어 있고 스크립트가 iOS-Simulator와 Device의 프레임 워크를 찾지 못합니다.

빠른 해결책 : 12 단계 전에 한 번 더 10 단계를 수행하면 iOS 시뮬레이터 프레임 워크와 Device Framework가 모두 생성됩니다. 그런 다음 집계 구성표의 빌드 프로젝트가 실행되면 두 프레임 워크가 병합됩니다. 귀하의 경우에는

당신은 아래 /사용자/jaym/라이브러리/개발자/엑스 코드/DerivedData/iOSFramework-doeqysadgntrrlguuvcivuhapnlr/구축/제품에서 세 가지 (아이폰 OS-Simulaor, 장치, 병합) 프레임 워크를 찾을 수/

,/Users/pdl/Library/Developer/Xcode/DerivedData/InnerID-iOS-SDK-dgyjuudeootshidhpzlejhbyqvco/빌드/제품/

+0

아니요. 여전히 같은 오류가 발생합니다. :-( – Patricia

2

이것은 (swift 용) 올바른 쉘 스크립트입니다.

CONFIG=Release 

# Step 1. Make sure the output directory exists 
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIG}-universal 
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}" 

# Step 2. Build Device and Simulator versions 

codebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration  ${CONFIG} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build 

xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIG} -sdk iphonesimulator -arch x86_64 -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build 

# Step 3. Copy the framework structure to the universal folder. Subsequently copy the files of the swiftmodule (in Modules directory) of -iphonesimulator to the swiftmodule of universal framework directory. 

cp -R "${BUILD_DIR}/${CONFIG}-iphoneos/${PROJECT_NAME}.framework" "${UNIVERSAL_OUTPUTFOLDER}/" 

cp -R "${BUILD_DIR}/${CONFIG}-iphonesimulator/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule/" "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule" 

# Step 4. Create universal binary file using lipo and place the combined executable in the copied framework directory 

lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIG}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIG}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}" 

여전히 의심스러운 점이 있으면 video tutorial을 볼 수 있습니다.

+0

이것은 도움이 될 것입니다. 그러나 신속한 사용은 아닙니다. 감사합니다. :-) – Patricia