在框架中嵌入框架 (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
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