美文网首页
iOS_SDK开发之.a包打包

iOS_SDK开发之.a包打包

作者: 灬小五灬 | 来源:发表于2020-05-22 17:06 被阅读0次

    前言:在SDK开发Framework打包时,已经创建好了WorkSpace工作区,现在在工作区创建.a包的开发工程。
    代码传送门

    1.创建生成.a工程

    • 1.1 新建一个Project

      image

      选择Static Library,选择第一步创建的WorkSpace(和SDK开发一中的图1的选择一样),这样就创建好了. a工程

      image

      成功之后的示例

      image
    • 1.2 添加SDK文件

      添加新文件,将需要暴露的文件进行设置

      选择工程-->>选择TARGETS下的SDK工程-->>Build Phases-->>Copy Files

      image
    • 1.3 新建Aggregate

      创建Aggregate
    • 1.4 添加脚本到 Run Script 自动合成 .a

      选中创建的Aggregate,-->> Build Phases-->> 点击左上角的加号-->> 选择New Run Script Phases-->> 生成Run Script

      image

      把以下脚本代码复制到 Run Script

      if [ "${ACTION}" = "build" ]
      then
      
      #要build的target名
      target_Name=${PROJECT_NAME}
      echo "target_Name=${target_Name}"
      
      #build之后的文件夹路径
      build_DIR=${SRCROOT}/build
      echo "build_DIR=${build_DIR}"
      
      #真机build生成的头文件的文件夹路径
      DEVICE_DIR_INCLUDE=${build_DIR}/Release-iphoneos/include/${PROJECT_NAME}
      echo "DEVICE_DIR_INCLUDE=${DEVICE_DIR_INCLUDE}"
      
      #真机build生成的.a文件路径
      DEVICE_DIR_A=${build_DIR}/Release-iphoneos/lib${PROJECT_NAME}.a
      echo "DEVICE_DIR_A=${DEVICE_DIR_A}"
      
      #模拟器build生成的.a文件路径
      SIMULATOR_DIR_A=${build_DIR}/Release-iphonesimulator/lib${PROJECT_NAME}.a
      echo "SIMULATOR_DIR_A=${SIMULATOR_DIR_A}"
      
      #目标文件夹路径
      INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}
      echo "INSTALL_DIR=${INSTALL_DIR}"
      
      #目标头文件文件夹路径
      INSTALL_DIR_Headers=${SRCROOT}/Products/${PROJECT_NAME}/Headers
      echo "INSTALL_DIR_Headers=${INSTALL_DIR_Headers}"
      
      #目标.a路径
      INSTALL_DIR_A=${SRCROOT}/Products/${PROJECT_NAME}/lib${PROJECT_NAME}.a
      echo "INSTALL_DIR_A=${INSTALL_DIR_A}"
      
      #判断build文件夹是否存在,存在则删除
      if [ -d "${build_DIR}" ]
      then
      rm -rf "${build_DIR}"
      fi
      
      #判断目标文件夹是否存在,存在则删除该文件夹
      if [ -d "${INSTALL_DIR}" ]
      then
      rm -rf "${INSTALL_DIR}"
      fi
      #创建目标文件夹
      mkdir -p "${INSTALL_DIR}"
      
      #build之前clean一下
      xcodebuild -target ${target_Name} clean
      
      #模拟器build
      xcodebuild -target ${target_Name} -configuration Release -sdk iphonesimulator
      
      #真机build
      xcodebuild -target ${target_Name} -configuration Release -sdk iphoneos
      
      #复制头文件到目标文件夹
      cp -R "${DEVICE_DIR_INCLUDE}" "${INSTALL_DIR_Headers}"
      
      #合成模拟器和真机.a包
      lipo -create "${DEVICE_DIR_A}" "${SIMULATOR_DIR_A}" -output "${INSTALL_DIR_A}"
      
      #打开目标文件夹
      open "${INSTALL_DIR}"
      
      fi
      
      
      SDK脚本嵌入
    • 1.5 编译获取.a

      command+B直接编译,产生.a。

      生成framework包

    2.将产生的SDK和SDK的集成Demo进行关联

    • 将编译产生的.b包所在目录,导入到Demo

      image
    • 使用SDK,运行Demo

      image
    • 运行结果如下

      运行结果首页 点击按钮跳转到.a内的页面

    最后的最后,把这个工程上传到Git就可以愉快的开发了。。。以上是我个人的理解,如有错误,请各位大牛批评指正,文中.a的打包方法参考网上资料
    参考链接

    相关文章

      网友评论

          本文标题:iOS_SDK开发之.a包打包

          本文链接:https://www.haomeiwen.com/subject/auqcahtx.html