• iOS制作.a静态库


    1. 创建.a工程

    2. 将 Build Settings -> Build Active Architectrue Only 设置为NO

    3. 修改支持的版本信息 Build Setting -> iOS Deployment Target 设置为 iOS10.0

    4. 如果用到了xib,或者资源文件,将bundle拖入工程中。或者通过 Build Phases -> Dependencies 添加依赖的形式

    5. Build Phases -> Copy Files 中,拖入要暴露的头文件

    6. 相关的shell脚本

    #!bin/sh
    
    # 目标名称
    # target_name=FFTempLib
    read -p "请输入要制作的lib库名称: " target_name
    # #workspace  如果使用了cocoapods 要用 workspace_name
    # workspace_name=FFTempLib.xcworkspace
    
    #scheme
    # scheme_name=FFTempLib
    
    # 项目所在路径
    project_dir=$(pwd)
    
    # 构建模式 Release/Debug
    mode=Release
    
    build_dir=${project_dir}/build
    
    #合并之后的目标路径
    product_dir=${project_dir}/library
    
    #真机生成的静态库的路径
    iphoneos_dir=${build_dir}/${mode}-iphoneos
    #真机生产的头文件的地址
    iphoneos_header_dir=${iphoneos_dir}/include/${target_name}
    #真机生成的静态库的地址
    iphoneos_lib_dir=${iphoneos_dir}/lib${target_name}.a
    
    #模拟器生成的静态库的路径
    simulator_dir=${build_dir}/${mode}-iphonesimulator
    #模拟器生成的头文件的地址
    simulator_header_dir=${simulator_dir}/include/${target_name}
    ##模拟器生成的静态库的地址
    simulator_lib_dir=${simulator_dir}/lib${target_name}.a
    
    rm -rf "${build_dir}"
    
    if [[ -d "${product_dir}" ]]; then
        rm -rf "${product_dir}"
    fi
    
    xcodebuild -target "${target_name}" -scheme "${target_name}" -configuration "${mode}" -sdk iphoneos15.2 clean build BUILD_DIR="${build_dir}" BUILD_ROOT="${build_dir}" VALID_ARCHS="arm64 armv7" 
    xcodebuild -target "${target_name}" -scheme "${target_name}" -configuration "${mode}" -sdk iphonesimulator15.2 clean build BUILD_DIR="${build_dir}" BUILD_ROOT="${build_dir}" VALID_ARCHS="i386 x86_64" 
    
    # 合并模拟器的架构和真机架构 
    if [[ -f "${iphoneos_lib_dir}" ]] && [[ -f "${simulator_lib_dir}" ]] ; then
        
        # 如果不存在 就生成目录
        if [[ ! -d "${product_dir}" ]]; then
            mkdir -p "${product_dir}"
        fi
    
        lipo -create "${simulator_lib_dir}" "${iphoneos_lib_dir}" -output "${iphoneos_lib_dir}"
    
        # 将头文件copy到Header文件夹下
        cp -r "${iphoneos_header_dir}" "${iphoneos_dir}/Headers"
    
        # 移除默认头文件
        rm -rf "${iphoneos_dir}/include"
    
        # 将需要的文件copy
        cp -r "${iphoneos_dir}/" "${product_dir}"
    
        if [[ -d "${product_dir}" ]]; then
            # 打开目录
            open "${product_dir}"
        fi
    else
        echo "有错误出现,没有生成真机或模拟器的静态库"
        exit 1
    fi
    
    if [[ -d "${product_dir}" ]]; then
    open "${product_dir}"    
    fi

    7. 实例地址

  • 相关阅读:
    算法_二叉查找树
    Java编程思想学习笔记_2(继承和多态)
    算法_符号表
    算法_优先队列
    算法_快速排序
    Java编程思想学习笔记_1(Java内存和垃圾回收)
    map 与 lambda 的用法
    优化版九九乘法表
    low版九九乘法表
    python3爬虫lxml模块的安装
  • 原文地址:https://www.cnblogs.com/jisa/p/16424319.html
Copyright © 2020-2023  润新知