第三方SDK编写文档 - iOS

本文详细介绍了如何在Xcode中创建并配置iOS SDK,包括创建workspace、构建SDK和Demo项目,以及进行Demo的关联和SDK的开发调试。接着,文章讲解了如何打包SDK,包括设置打包脚本和执行打包流程。最后展示了Demo接入SDK后的成功案例,为iOS开发者提供了完整的SDK开发与打包指南。
摘要由CSDN通过智能技术生成

目录

一、创建一个workspace

二、创建SDK

三、创建Demo

四、Demo的关联以及SDK的开发调试

五、打包


一、创建一个workspace

1、在桌面上创建一个文件夹MyTest(名字自己随便取)

放在桌面上是为了创建framework以及demo实例,存放的文件夹方便找,也可以创建在别的地方,但是在创建framework以及demo实例的时候一定要查看存放的位置是否正确

2、打开Xcode,创建一个workspace,将workspace放在文件夹MyTest里面。

Xcode --> File --> New --> Workspace

二、创建SDK

1、打开创建的workspace文件,创建project,选择framework;创建framework,把framework添加到workspace里面。

打开workspace文件 --> File --> New --> Project --> Framework

 

 

三、创建Demo

1、依旧还是在workspace文件中创建project,选APP;创建APP,把APP添加到workspace里面

最终的效果图:

四、Demo的关联以及SDK的开发调试

1、首先我们需要创建一个MYView类,继承于UIView,简单的重写了一下初始化方法,设置了背景颜色。

2、修改配置

1、搜索:Mach_O Type,选择Static Library

2、还有一处是这样的,如果你的framework里面需要添加一些分类,那么需要在Other Linker Flags 添加 -all_load(注意符号不要用中文写了,all_load它的作用是加载静态库中所有文件,all_load作用于所有的库)

3、调一下iOS版本号,调到最低版本

4、设置Headers,将添加在SDK中的类的头文件,公开拖到Public下,要隐藏的放到Private或者Project下,隐藏的头文件不能被引用

5、在MyTestSDK.h中添加所有公开的头文件

五、打包

上面的四大步走完之后,就是我们最重要的打包过程了,如果你使用这种自动打包,你可以通过终端进行手动打包

1、创建一个Aggregate

点击MyTestSDK --> Editor --> Add Target --> Other --> Aggregate

 

2、嵌入脚本,选中刚刚创建的Aggregare,然后选中右侧的Build Phases,点击左边的+号,选择New Run Script Phases

3、将下面的脚本赋值进去

注: 主要注意的是路径以及名称的问题

######### 打包脚本

#########
BUILD_TIME=`date "+%Y-%m-%d-%H%M%S"`

echo "-----------$BUILD_TIME"

#clean and build 是否重新clean编译 
CLEAN_BUILD=1

#MY_BUILD_MODE=Debug
MY_BUILD_MODE=Release

#SDK名称 
SDK_NAME=DYTestSDK

#SDK名称 
SDK_NAMEMul=DYTestSDKMulator
#bundle名称
#BUNDLE_NAME=${SDK_NAME}
# scheme
SCHEME_NAME=DYTestSDK


#ios sdk工程路径 
PATH_SDK=${SRCROOT}
#根目录
PATH_ROOT=`dirname ${SRCROOT}`

#workspace工程名称 
WORKSPACE=${PROJECT_NAME}.xcworkspace

echo "sdk工程路径:$PATH_SDK"

echo "sdk 跟目录路径:$PATH_ROOT"

echo "WORKSPACE:$WORKSPACE"

# 获取版本号
VERSION=`echo ${VERSION/=/}`

#输出路径 
FRAMEWORK_OUTPUT=${PATH_ROOT}/DYTestSDK-iOS/SDK
 #删除已经存在的文件
if [ -d "${FRAMEWORK_OUTPUT}" ]
then
rm -rf "${FRAMEWORK_OUTPUT}"
echo "删除已存在路径:$FRAMEWORK_OUTPUT"
fi 

mkdir -p $FRAMEWORK_OUTPUT

echo "输出路径:$FRAMEWORK_OUTPUT"

echo "########### Build ##########"

#进入PlayerSDK目录 
cd $PATH_SDK

if [ CLEAN_BUILD ]; then

#执行clean命令 
xcodebuild clean

fi

#执行build真机命令
cd $PATH_ROOT

xcodebuild -workspace $WORKSPACE -scheme $SCHEME_NAME -sdk iphoneos -configuration ${MY_BUILD_MODE} -UseModernBuildSystem=NO

xcodebuild -workspace $WORKSPACE -scheme $SCHEME_NAME -sdk iphonesimulator -configuration ${MY_BUILD_MODE} -UseModernBuildSystem=NO
#build模拟器SDK 
#xcodebuild -workspace $WORKSPACE -scheme $SDK_NAME -sdk iphonesimulator -configuration ${MY_BUILD_MODE} -UseModernBuildSystem=NO

echo "########### OUTPUT ##########"

#cp 真机framework到output 
echo "###########:cp -r ${BUILD_DIR}/${MY_BUILD_MODE}-iphoneos/$SDK_NAME.framework $FRAMEWORK_OUTPUT/$SDK_NAME.framework"
cp -r ${BUILD_DIR}/${MY_BUILD_MODE}-iphoneos/$SDK_NAME.framework $FRAMEWORK_OUTPUT

#echo "###########:cp -r ${BUILD_DIR}/${MY_BUILD_MODE}-iphonesimulator/$SDK_NAME.framework $FRAMEWORK_OUTPUT/$SDK_NAME.framework"
#cp -r ${BUILD_DIR}/${MY_BUILD_MODE}-iphonesimulator/$SDK_NAME.framework $FRAMEWORK_OUTPUT

# ----------- zip 打包
echo "########### zip 打包 ##########"
# 进入根目录
cd ${PATH_ROOT}
VERSION_PATH=${PATH_ROOT}/DYTestSDK-iOS-$VERSION
if [ -d "${VERSION_PATH}" ]
then
rm -rf "${VERSION_PATH}"
echo "删除已存在路径:$VERSION_PATH"
fi

if [ -d "${VERSION_PATH}.zip" ]
then
rm -rf "${VERSION_PATH}.zip"
echo "删除已存在zip路径:$VERSION_PATH.zip"
fi

cp -r ${PATH_ROOT}/DYTestSDK-iOS $VERSION_PATH
zip DYTestSDK-iOS-$VERSION.zip -r -m DYTestSDK-iOS-$VERSION
echo "########### zip 打包 完成 ##########"

open /$FRAMEWORK_OUTPUT

echo "########### FINISHED ##########"

4、最后编译

成功案例:

5、demo接入framework

下列代码为调用方法:

#import "ViewController.h"
#import <DYTestSDK/MyTestView.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    MyTestView *view = [[MyTestView alloc] init];
    [view success];
}

成功截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值