(1)创建一个文件夹名为SDK
(2)创建一个.xcworkspace文件,放入文件夹SDK中
创建.xcworkspace文件生成后,在文件夹的样子
SDK文件夹中显示(3)在刚刚Xcode打开时,创建一个demo,名称XHTestDemo
创建demo存放位置,存在刚刚创建xcworkspace的同一个文件夹SDK中
存放demo(4)创建SDK,名为XHTestSDK,存放在SDK文件夹中,
创建SDK(5)存放好之后,目录
目录层级(6)在sdk中创建需要的内容,创建内容之后,在XHTestSDK/XHTestSDK.h中添加#import <XHTestSDK/XHView.h>
创建sdk内容配置architecture,添加armv7s,添加,arm64。设置Build active Architecture Only 设置为NO,设置为NO是真机模拟器都能够编译
配置Architecture设置Linking --Mach-O Type 设置Static Libirary,Link WithStandard Libraries设置为NO,Dead Code Stripping设置为NO
借用别人的图(6)XHTestSDK,设置暴露文件,project中的XHView.h移到public
添加公开文件(7)demo中,添加SDK。XHTestDemo target -General-Linked frameworks and Libiaries 添加XHTestSDK
demo中添加SDK(8)添加target,创建一个名为createSDK的target,project--》XHTestSDK
创建target创建之后target的样子
target(9)给createSDK添加framework。选择createSDK,build phase-- Target Dependecies--添加XHTestSDK
createSDK添加framework(10)在文件夹SDK中创建一个文件夹名为scripts
创建scripts文件夹(11)在scripts中创建一个build-universal-framework.sh,这个文件的内容如下
# Sets the target folders and the final framework product.
# 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild clean build
xcodebuild OTHER_CFLAGS="-fembed-bitcode"-configuration"Release"-target"${FMK_NAME}"-sdk iphoneos
xcodebuild -configuration"Release"-target"${FMK_NAME}"-sdk iphonesimulator
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ] #xh 删除这个目录
then
rm -rf "${INSTALL_DIR}" #xh 删除目录及其内容
fi
mkdir -p "${INSTALL_DIR}" #xh 确保路径存在,不存在则创建一个
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/" #若参数一是源文件,则将参数一内容复制到参数二中
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
# 使用lipo工具合并模拟器和真机,输出在ouput路径里
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
#rm -r "${WRK_DIR}"
# 打开文件
open "${INSTALL_DIR}"
build-universal-framework.sh内容展示(12)选中createSDK--》build Phase--》Runscript,Shell处写../scripts/build-universal-framework.sh
添加script(13)target选择createSDK,commond + B,编译
编译(14)这个framework就是我们需要的,show in FInder 就可以找到绝对地址
找到绝对地址,选中framework,如下图
选中framework把framework拖动到你需要的项目中即可,大功告成。
参考了大神的文章,在此非常感谢。
参考地址:https://www.cnblogs.com/oc-bowen/p/7478461.html
网友评论