ios的framework合并

Posted nuanshou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios的framework合并相关的知识,希望对你有一定的参考价值。

# 运行此脚本前

# 先编译一遍工程  确保正常运行 没有报错

 

 

# 作为Xcode Aggregate运行

# file-->new target-->cross-platform-->Aggregate

 

#!/bin/sh

UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

WORKSPACE_NAME=${PROJECT_NAME}.xcodeproj

# make sure the output directory exists

mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

# Step 1. Build Device and Simulator versions

echo ‘Step 1. Build Device and Simulator versions‘

xcodebuild -project "${WORKSPACE_NAME}" -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphoneos ONLY_ACTIVE_ARCH=NO   BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

xcodebuild -project "${WORKSPACE_NAME}" -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

 

# Step 2. Copy the framework structure (from iphoneos build) to the universal folder

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

 

# Step 3. Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory

SIMULATOR_SWIFT_MODULES_DIR="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule/."

if [ -d "${SIMULATOR_SWIFT_MODULES_DIR}" ]; then

cp -R "${SIMULATOR_SWIFT_MODULES_DIR}" "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule"

fi

 

# 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}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}"

 

# Step 5. Convenience step to copy the framework to the project‘s directory

cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}"

 

# Step 6. Convenience step to open the project‘s directory in Finder

open "${PROJECT_DIR}"

以上是关于ios的framework合并的主要内容,如果未能解决你的问题,请参考以下文章

ios framework 分离与合并多种CPU架构,分离与合并模拟器与真机

ios .a和.framework

iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

iOS 静态库和动态库打包framework流程(纯swift版/swift、OC混编版)

iOS 静态库和动态库相关

2021-11-17 xcode12.3 &xcode13.1 下lipo合并framework问题