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