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


以iOS 加入lua framework为例

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


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

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

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

iOS 自动生成framework并自动进行模拟器和真机framework合并_错误提示

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

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

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

shell脚本具体代码在下方

iOS 自动生成framework并自动进行模拟器和真机framework合并_错误提示_04

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

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

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

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

注意:如果只在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" ]

dire="outputFramework/"
[ -d "$dire" ]
mkdir "$dire"

if [ -d "Release-iphoneos"  ] && [ -d "Release-iphonesimulator"  ];
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