美文网首页
2021-02-01

2021-02-01

作者: OldGhosht | 来源:发表于2021-04-19 11:26 被阅读0次

    cocopods使用的记录 方便查看

    几年前进行过组件化,使用cocopods管理,但是几年后又开始组件化一个项目的时候,部分命令已经忘记,同时使用swift 和 oc,以及xcode12的变化,混合开发造成的错误的记录

    xcode12 模拟器架构默认支持 i386 x86_64 arm64 三个架构  iPhone 支持 arm64 armv7 这儿同时记录下 模拟器都是x86_64的架构 现在的手机iphone6以上都是arm64 所以对于目前的市场的手机 真机支持arm64 模拟器支持x86_64的架构就行

    这次组件化一个im项目 底层长链接使用的mars mars github 上提供的framework 只支持 x86_64 arm64 二个架构 我需要对mar的封装在做个私有库 pod lint  错误记录

    1. 不支持i386 本身我这个库也不要支持,在验证的时候加上 --skip-import-validation 来解决

    2. release的时候 模拟器 不支持arm64 这儿我们需要加 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' 如

    s.xcconfig = {

          'ENABLE_BITCODE' => 'NO',

          'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64'

      }

    xcconfig 可以对这个库工程配置设置 名字基本是和xcode上一样的 

    3.如果引用的三方库是静态库 并且是oc 但是你要用swift 可以用动态库吸附静态库的方式,就是自己制作一个动态库包含三方的静态库 合并脚本如下

    if [ "${ACTION}" = "build" ]

    then

    INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

    DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

    SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework

    if [ -d "${INSTALL_DIR}" ]

    then

    rm -rf "${INSTALL_DIR}"

    fi

    mkdir -p "${INSTALL_DIR}"

    cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

    #ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

    lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

    open "${DEVICE_DIR}"

    open "${SRCROOT}/Products"

    fi

    4. 

    添加到私有库 pod repo add 库名 库地址

    验证私有库 pod lib lint xxx.podspec --后面和push写法一样的

    写法 BTUtilLibs % pod repo push BTUtilLibs BTUtilLibs.podspec --sources='http://192.168.8.62:9090/tc-bmapp/BmIos/btspecs.git','https://github.com/CocoaPods/Specs.git' --use-libraries --skip-import-validation --allow-warnings --verbose --skip-tests --use-modular-headers

    相关文章

      网友评论

          本文标题:2021-02-01

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