cocoapods packager - ShenYj/ShenYj.github.io GitHub Wiki

CocoaPods Plugins - cocoapods-packager

  • 作为CocoaPods Plugins, 默认是不包含的, 需要单独安装

    sudo gem install -n /usr/local/bin cocoapods-packager

    等待安装完成

    Password:
    Successfully installed cocoapods-packager-1.5.0
    Parsing documentation for cocoapods-packager-1.5.0
    Done installing documentation for cocoapods-packager after 0 seconds
    1 gem installed
  • 生成类库

    pod package YourPodName.podspec --force --library
  • 参数说明

    参数 说明
    --force 强制覆盖之前生成的文件
    --no-mangle 不使用name-mangling技术,也就是自动改类名等符号
    --embedded 生成静态的framework
    --library 生成静态.a
    --dynamic 生成动态framework
    --local 使用本地文件
    --bundle-identifier 生成动态framework的时候需要这个BundleId来签名
    --exclude-deps 不包含依赖的符号表,也就是不把依赖的第三方库打包进去
    --configuration=Release 生成debug还是release的库,默认是release
    --subspecs=subspec1,subspec2 如果你的pod库有subspec,那么加上这个命名表示只给某个或几个subspec生成二进制库
    --spec-sources=private,https://github.com/CocoaPods/Specs.git 默认是CocoaPods的Specs仓库,如果你的项目有私有的source,就可以通过这个参数来设置

    补充说明
    - Name-Mangling会把类名和全局常量改成Pod#{pod_name}_#{symbol}的形式,比如说我们的podYourPodName中有一个YourClass类,那它最终会被改成PodYourPodName_YourClass
    - Name-Mangling并不会改方法名
    - Name-Mangling无法对静态库生效
    - --exclude-deps参数,它也只会去除我们引入的第三方开源库,静态库还是会被打包进去。那如果接入方也引入了这个第三方静态库,还是会冲突

⚠️ **GitHub.com Fallback** ⚠️