在框架中嵌入框架 (iOS 8+)

Embedding a framework within a framework (iOS 8+)

iOS 使用 Xcode 6 或更高版本构建的应用程序允许在其中嵌入动态 iOS 框架。我正在构建一个共享框架并想嵌入一个子框架。我怎样才能做到这一点?

注意:这可能的并且用于生产(例如,在 CocoaPods).

中有 Swift 个框架

找到答案了。操作方法如下:

  • 导航至目标 > 构建阶段
  • 单击小“+”图标,然后 select "New Run Script Build Phase"
  • 粘贴以下内容:

    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
    

@Vatsal Manot 的回答对我很有帮助。我稍微修改了一下,也需要对复制的嵌入式框架进行签名。我的脚本如下。

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

要创建包含 Sub-Framework 的 Umbrella Framework,您可以遵循此处记录的 step-by-step 指南:Umbrella framework