Swift组件化基础命令(持续更新)

基础命令

1、pod lib lint 校验本地仓库
2、pod spec lint 校验远程仓库
3、pod repo push 推送代码
4、pod lib create xxxx 创建组件

把远程仓库添加到本地repo

pod repo add 私有组件名称 索引库远程地址

把创建的仓库Spec推送到远程仓库中

pod repo push 索引库名称 podspec文件全称

Help

swift 引用OC头文件 处理
–skip-import-validation

动静态framework、.a文件处理
-use-modular-headers
–use-libraries

打印log
-verbose

过滤所有警告
–allow-warning

podspec添加私有库,找不到路径提示报错,可以这里添加spec仓库地址
–sources=‘xxxxxxxx’

–no-clean

问题:

1、 Error:[xxx/xxx(仓库或者是子仓库名称)] xcodebuild: Returned an unsuccessful exit code

依赖资源文件 报错 没有明确的引用问题或者是代码报错。
在校验本地仓库 包含多个子仓库的状态下,需要单独隔离出需要依赖framework或者是.a文件的子仓库
podspec 中添加

s.static_framework = true

podSpec 中子仓库示例

  s.subspec 'Test' do |ss|
    ss.source_files = 'Test', 'Test/Classes/text/*.swift'  // 文件路径地址 同podsepc同级向下
    ss.frameworks = 'SystemConfiguration','Security' // 依赖的系统framework
    ss.libraries = 'c++','z'	// 依赖的系统tbd 添加不需要 'lib' 例如 libc++  直接为c++即可 英文逗号分隔
    ss.vendored_frameworks = 'Test/Framework/xxxxx.framework' // 需要依赖的三方framework 
    ss.vendored_libraries = 'Test/Framework/xxxxx.a' // 需要依赖的三方.a文件 
  end

本地校验可添加动静态文件过滤

pod lib lint xxx.podspec --verbose --use-libraries --allow-warnings --no-clean --skip-import-validation

同理校验远端仓库

pod spec lint xxx.podspec --verbose --use-libraries --allow-warnings --no-clean --skip-import-validation

2.生成的组件类或者是函数方法无法调用

生成的组件需要添加 open 外部才能调用此类和相对开放的函数方法

open class XXXX: NSObject {
    open class func XXXX(testParam: String = "") {
      
    }
}

3.pod lib lint/repo push时 不支持i386编译&只能真机运行的库 报错

eg:
** BUILD FAILED **
    
    
    The following build commands failed:
      Ld /Users/xxxxx/Library/Developer/Xcode/DerivedData/App-cbtcjpngyptfrxehblkjhtzgolpe/Build/Intermediates.noindex/Pods.build/Release-iphonesimulator/xxxx.build/Objects-normal/arm64/Binary/xxxx normal arm6

可在podSpec 仓库下面添加

s.pod_target_xcconfig = { ‘VALID_ARCHS[sdk=iphonesimulator*]’ => ‘’ }

如果项目已经设置 pod_target_xcconfig,添加到已有值的后面。设置此处将在 模拟器编译时不产生二进制文件。
pod lint 命令添加 –skip-import-validation 参数,lint 将跳过验证 pod 是否可以导入。
pod repo push 命令添加 –skip-import-validation 参数,push 将跳过验证 pod 是否可以导入。
参考文档:解决pod lib lint/repo push不支持i386编译&只能真机运行的库

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值