发布自己的iOS代码到cocopods spec

·  阅读 1204

发布自己的iOS代码到cocopods spec

参考链接:

手把手教你发布自己的cocoapods开源库

在遇到的最多问题就是

- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.

解决方案:引用的路径是.podspec文件相对路径,如果确定无误还是报错,那么就要设置版本号与tag对应

$ set the new version to 1.0.0

$ set the new tag to 1.0.0 (1.0.0要与podspec的version对应)

这两条命令是为pod添加版本号并打上tag。然后执行podspec验证命令:

$ pod lib lint

1.0.0是.podspec文件内的 s.version = "1.0.0"

如果有过多的警告⚠️会导致无法上传成功,可以在命令后面追加 --allow-warnings忽略警告,通过验证

 报错 ··· error: include of non-modular header inside framework module ··· [-Werror,-Wnon-modular-include-in-framework-module]

  解决办法:在pod lib lint 或者 pod spec lint 以及 pod repo push ....时候加上   --use-libraries

pod lib lint --use-libraries

#当然,在提交的时候也要加上

pod repo push   --use-libraries

创建自己的私有库:

简书链接

当检测私有podspec文件和上传到私有库的时候如果有依赖其他的私有库需要加上--sources=

例如:pod spec lint --sources='github.com/CYZZ/YZSpec…' --use-libraries

这样可以防止pod去官方的源查找依赖库。

解决pod lib lint/repo push不支持i386编译&只能真机运行的库

如果是加入了SDK(.a或者.framework)可能SDK只支持真机架构,

可以在.podspec文件中添加:

s.pod_target_xcconfig = { 'VALID_ARCHS[sdk=iphonesimulator*]' => '' }
复制代码

参考地址:

pod repo push / pod lib lint i386 x86_64 验证不通过

如果一直验证失败可以跳过验证步骤www.jianshu.com/p/97d9a0ff2…

一 追加option --skip-import-validation

需要去修改配置文件,这个修改是永久的防止去检测模拟器架构的时候不通过的问题,直接强制发布到私有库。

这种修改只会对当前的pods版本生效,如果pods版本更新,配置文件会被重置,就需要再次修改。

pod库包含MRC的文件

有时候引用的第三方的一些MRC的iOS文件,需要进行特殊配置

方式1:在podspec中指定为不支持arc,requires_arc:false,同时指定特定的arc文件requires_arc

 s.requires_arc = false

s.requires_arc = ['mylib/Classes/ARC/**/*.m']

方式2:设置全部文件支持arc,requires_arc:true,然后通过subspec来指定MRC文件,eg:

s.requires_arc = true

non_arc_files = 'mylib/udid/*.{h,m}'

s.exclude_files = non_arc_files

s.subspec 'no-arc' do |s1|

 s1.source_files = non_arc_files

 s1.requires_arc = false

end

第二种方式会生成一个文件夹目录,可以清晰的看到文件分层结构

分类:
iOS
标签:
分类:
iOS
标签:
收藏成功!
已添加到「」, 点击更改