iOS 自动生成framework并自动进行模拟器和真机framework合并

iOS 自动生成framework并自动进行模拟器和真机framework合并


iOS 加入lua framework为例

lua framework的具体引入 点击链接查看


iOS在生成framework时需要在真机下编译一次并在模拟器下编译一次

编译后还需要合并两个framework 手动进行如果一直在调试会很麻烦

现在给出自动化解决方案:加入编译脚本

iOS 自动生成framework并自动进行模拟器和真机framework合并

在工程目录下建立Tools目录并加入shell脚本

iOS 自动生成framework并自动进行模拟器和真机framework合并

iOS 自动生成framework并自动进行模拟器和真机framework合并

shell脚本具体代码在下方

iOS 自动生成framework并自动进行模拟器和真机framework合并

设置成release模式并分别在虚拟机和真机下编译一下编译好后 

会自动打开合并了真机和模拟器所生成的framework的合并后的framework

outputFramework目录下就是合并了模拟器和真机的framework

iOS 自动生成framework并自动进行模拟器和真机framework合并

注意:如果只在debug模式下面编译可能会有错误提示,但是不会影响framework的生成如果感觉错误提示很烦,那就切换到

release模式 分别在真机和模拟器下编译一次错误提示就没有了。


#!/bin/sh


echo 'xxxxxxxxxxxxxxx'

echo "SYMROOT = $SYMROOT"

echo "SYMROOT = ${BUILD_DIR}/${CONFIGURATION}"

echo "SYMROOT = ${BUILD_DIR}/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}"

bundleID=${PRODUCT_BUNDLE_IDENTIFIER}

CURRENTCONFIG_DEVICE_DIR=${BUILD_DIR}/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}

echo 'Welcom to Bash'

JfBuildDir=${BUILD_DIR}

JfExecutablePath=${EXECUTABLE_PATH}

JfExecutableName=${EXECUTABLE_NAME}

JfExecutableFolderPath=${EXECUTABLE_FOLDER_PATH}

echo "JfBuildDir = $JfBuildDir"

echo "JfExecutablePath = $JfExecutablePath"

echo "JfExecutableName = $JfExecutableName"

echo "90-> ${CURRENTCONFIG_DEVICE_DIR}"


echo "error:message"

echo "warning:message"


cd ${JfBuildDir}


framework="IJKMediaFramework"

[ -f "$framework" ] && rm "$framework"


dire="outputFramework/"

[ -d "$dire" ] && rm -rf "$dire"

mkdir "$dire"


if [ -d "Release-iphoneos" ] && [ -d "Release-iphonesimulator" ]; then

echo "composition framework"


lipo -create Release-iphoneos/${JfExecutablePath} Release-iphonesimulator/${JfExecutablePath} -output ${JfExecutableName}


cp -rf Release-iphoneos/* ${dire}

cp -f ${JfExecutableName} ${dire}/${JfExecutableFolderPath}

rm -f ${JfExecutableName}

open ${dire}

fi