2015-01-09 2 views
7

Xcode 6 이상으로 빌드 된 iOS 어플리케이션은 동적 인 iOS 프레임 워크를 임베드 할 수 있습니다. 나는 공유 프레임 워크를 구축 중이며 서브 프레임 워크를 임베드하려고합니다. 이것을 어떻게 할 수 있습니까?프레임 워크에 프레임 워크 임베드 (iOS 8+)

참고가능하며 이다 (CocoaPods 스위프트 프레임 워크 예컨대 용) 제조에 사용된다.

답변

6

답을 찾았습니다. 여기가 이루어집니다 방법은 다음과 같습니다

을 :

  • 이동 대상 >빌드 페이즈
  • 을 다음 붙여 넣기 작은 "+"아이콘을 클릭하고
  • 을 "새로운 실행 스크립트 위상을 구축"을 선택

    cd $BUILT_PRODUCTS_DIR 
    
    mkdir $PROJECT_NAME.framework/Frameworks &>/dev/null 
    
    for framework in *.framework; do 
        if [ $framework != $PROJECT_NAME.framework ]; then 
         cp -r $framework $PROJECT_NAME.framework/Frameworks/ &>/dev/null 
        fi 
    done 
    
+3

이 작동하지만 단지 추가 않는 서브를 내장 프레임 워크 -frameworks는 "우산 프레임 워크"로 알려져 있으며 Apple에 의해 권장되지 않습니다. 왜 이런 경우인지에 대한 훌륭한 답을 얻으려면 다음 질문을 참조하십시오. http://stackoverflow.com/questions/7365578/why-are-umbrella-frameworks-discouraged 수행해야 할 작업 : 하위 프레임 워크를 포함하는 대신 바람직하게는 프레임 워크를 의존성과 함께 별도로 배포하십시오. –

+1

@JonathanEllis 항상 이상적인 것은 아닙니다. 예를 들어 WebP.framework를 사용하여 WebP 지원을 추가했습니다. 주요 응용 프로그램, 사진 편집 확장 프로그램 및 iMessage 확장 프로그램에 모두 WebP.framework의 별도 사본을 포함시켜야합니다. 낭비 공간 ... – jjxtra

6

@Vatsal 마놋의 대답은 나에게 매우 도움이되었습니다. 나는 그것을 조금 수정했고 또한 복사 된 임베디드 프레임 워크에 서명 할 필요가있었습니다. 내 스크립트는 아래에 있습니다.

cd $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/Custom.framework/Frameworks 
for framework in *.framework; do 
    mv $framework $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/ 
    /usr/bin/codesign --force --sign "iPhone Developer" --preserve-metadata=identifier,entitlements --timestamp=none $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/$framework 
done 
1

당신이 가이드는 여기에 적어 단계별로는 따라 할 수있는 하위 프레임 워크를 포함하는 우산 프레임 워크를 만들려면 : Umbrella framework