2021-02-01

2021-04-19  本文已影响0人  OldGhosht

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

上一篇下一篇

猜你喜欢

热点阅读