iOS开发SDK(.framework静态库,.bundle资源文件,脚本打包SDK和.bundle)

 

目录

一、创建一个workspace项目

二、创建一个调试运行SDK的demo,放置在DapengSDK根目录文件夹里面

三、创建SDK工程,放置在DapengSDK根目录文件夹里面

四、修改SDK工程配置参数

五、创建图片资源.bundle

六、创建SDK和.bundle编译打包脚本

七、使用sdk

八、Demo下载地址


一、创建一个workspace项目

  1. 为什么要创建一个workspace项目

    workspace项目可以同时包含多个项目,我们就可以把“SDK打包项目”和“调试运行SDK的demo”放在一起同时管理使用。
     
  2. 创建一个根目录文件夹,用作放置workspace项目组管理文件、“SDK打包项目”、“调试运行SDK的demo”


     
  3. 创建workspace工作空间管理文件,放置在DapengSDK根目录文件夹里面




     

二、创建一个调试运行SDK的demo,放置在DapengSDK根目录文件夹里面

  1. 创建demo需要将支持系统版本改为最低版本,为了更好地测试我们开发的SDK,只能忍痛删除.storyboard相关的所有控件,将项目改为全代码工程
     
  2. 创建工程时需要为当前项目选择workspace项目组管理文件,先打开workspace文件,创建新工程:command + shift + N




三、创建SDK工程,放置在DapengSDK根目录文件夹里面

        先打开workspace文件,创建新工程: command + shift + N





四、修改SDK工程配置参数

  1. 创建一个测试类

  2. 修改工程支持系统版本

  3. 设置Build Setting参数 



     
  4. 设置Headers,将要公开的头文件拖到Public下,要隐藏的放到Private或Project下,隐藏的头文件不能被引用


    修改为:

     
  5. 在DapengSDK.h(必须是公开的,否则无法引用)中将所有要公开的.h引入


五、创建图片资源.bundle

  1. 在DapengSDK工程下创建.bundle




     
  2. 修改.bundle工程配置

    "Base SDK" 设置为 iOS


    "iOS Deployment Target" 设置为 iOS 8.0 (为了兼容性,最好选择最低版本)


    "Build Active Architecture Only" 设置为 "YES"


     Installation Directiotory 删除掉后面的路径


    Code Signing Identity 选择 开发


    "Skip Install" 设置为 "NO"


    "Strip Debug Symbols During Copy" 中"Release"模式设置为 "YES"


    "COMBINE_HIDPI_IMAGES" 设置为 "NO"

    buildSetting->Versioning Systems修改为none
  3. 删除Info.plist文件,buildSetting->搜索“Info.plist”删除路径配置

六、创建SDK和.bundle编译打包脚本

  1. 在SDK工程中创建脚本问文件




  2. 在脚本执行文件中填写sdk打包脚本 和 .bundle打包脚本
    #!/bin/sh
    # 工程文件所在的根目录
    SRCROOT='.'
    # sdk 编译过程的输出文件路径
    WRK_DIR=./build
    # 创建 sdk 输出路径
    mkdir -p ${SRCROOT}/Products
    
    
    
    
    
    # 编译静态库framework名字 警告!!!!!!需要修改
    FMK_NAME='DapengSDK'
    # 真机 framework 输出文件路径
    DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
    # 模拟器 framework 输出文件路径
    SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
    
    # 编译静态库framework
    xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos build -UseModernBuildSystem=NO
    xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator  build -UseModernBuildSystem=NO
    
    # 最终 sdk 输出的文件路径
    INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
    # 清理之前生成的 sdk
    if [ -d "${INSTALL_DIR}" ]
    then
    rm -rf "${INSTALL_DIR}"
    fi
    # 移动一个 framework 到 SDK输出路径中
    cp -LR "${DEVICE_DIR}" "${INSTALL_DIR}"
    
    # 合并真机和模拟器的静态库.framework
    lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
    
    
    
    
    
    # 资源文件bundle名字 警告!!!!!!需要修改
    BUNDLE_NAME='DapengSDKResource'
    # 真机 bundle 输出文件路径
    BUNDLE_DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${BUNDLE_NAME}.bundle
    # 模拟器 bundle 输出文件路径
    BUNDLE_SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${BUNDLE_NAME}.bundle
    # 编译资源文件bundle
    xcodebuild -configuration "Release" -target "${BUNDLE_NAME}" -sdk iphoneos build -UseModernBuildSystem=NO
    xcodebuild -configuration "Release" -target "${BUNDLE_NAME}" -sdk iphonesimulator  build -UseModernBuildSystem=NO
    
    # 最终 资源文件 输出的文件路径
    BUNDLE_INSTALL_DIR=${SRCROOT}/Products/${BUNDLE_NAME}.bundle
    # 清理之前生成的 sdk
    if [ -d "${BUNDLE_INSTALL_DIR}" ]
    then
    rm -rf "${BUNDLE_INSTALL_DIR}"
    fi
    # 移动一个 budle 到 资源文件输出路径中
    cp -LR "${BUNDLE_DEVICE_DIR}" "${BUNDLE_INSTALL_DIR}"
    
    # 合并真机和模拟器的资源文件bundle
    lipo -create "${BUNDLE_DEVICE_DIR}/${BUNDLE_NAME}" "${BUNDLE_SIMULATOR_DIR}/${BUNDLE_NAME}" -output "${BUNDLE_INSTALL_DIR}/${BUNDLE_NAME}"
    
    
    
    
    
    # 清理编译文件
    rm -r "${WRK_DIR}"
    
    # 打开SDK目录
    open "${SRCROOT}/Products"

     

  3. 执行脚本,打包sdk .framework和资源文件 .bundle



    编译成功,自动弹出打包文件夹

     

七、使用sdk

  1. 将sdk文件夹导入到demo工程中


     
  2. 调用SDK代码


八、Demo下载地址

  demo下载传送门,点击传送----------->>>>>>>>>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值