美文网首页iOS DeveloperiOS程序猿
Swift写框架并发布到cocoapods注意点

Swift写框架并发布到cocoapods注意点

作者: 江水东流 | 来源:发表于2017-06-14 10:03 被阅读373次

swift写自己的框架发布到cocoapods有一些注意点,如暴露文件,图片 xib资源用法等.这个流程会了后就很容易掌握组件化开发,组件化和发布到cocoapods上区别前者是自己私有远程索引库,后者索引库是公开远程master

发布到cocoapods 基本流程见链接 写的比较详细了,我主要说一下swift提交框架注意点.

  • 打开终端 pod repo 可以查看cocoapods索引库
屏幕快照 2017-06-14 09.29.22.png 屏幕快照 2017-06-14 09.36.04.png
  • 初始化一个git模板项目: 用$ pod lib create 工程名
    效果如下,和远程git仓库关联时候由于gitignore文件可能关联不上,我的解决方式是把下面模板的git 和 gitignore文件删了,在这个文件夹 git clone 远程git url
    这样就直接关联了
屏幕快照 2017-06-14 09.38.06.png
  • podspec文件有依赖 有图片时候要安下面修改podspec文件
JDPhotoBrowser.podspec 注意点.png
  • OC有.h文件,可以直接用,swift默认访问级别internal,internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
  • 如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
    所以要用public 修饰需要引用的类.(public
    可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承。)
  • 需要暴露的接口或者属性要用public修饰
  • extension里面的方法都要用public
屏幕快照 2017-06-14 09.45.12.png
  • 在项目里面 引用第三方框架 import JDPhotoBrowser
    点进去可以看到
屏幕快照 2017-06-14 09.48.19.png

这些方法属性都是可以被访问的.其它没有被 public或open修饰的没法访问.

  • 资源文件的引用
    我们把图片放到 下图的位置,系统会打包到指定bundle里面
屏幕快照 2017-06-14 09.50.30.png
  • 按下面步骤看bundle里的资源
![Uploading 屏幕快照 2017-06-14 09.50.51_220927.png . . .] 屏幕快照 2017-06-14 09.50.51.png 屏幕快照 2017-06-14 09.51.33.png 屏幕快照 2017-06-14 09.51.42.png
  • 用图片资源时候不能用mainbundel加载,要用currentBundel, 而且图片要写全名,要不然会崩溃的.
    let currentBundle = Bundle(for: type(of: self))  

(currentBundle 就是JDPhotoBrowser.framework)
// currentBundle.loadNibNamed("", owner: nil, options: nil) xib sb用这个方法取

//图片资源在 JDPhotoBrowser.framework 下面的JDPhotoBrowser.bundle里面,要用下面方法取
> var bundleName = (currentBundle.infoDictionary?["CFBundleName"] as! NSString).appending(".bundle")
let path = currentBundle.path(forResource: "blackall@2x.png", ofType: nil, inDirectory: bundleName)
let image = UIImage(contentsOfFile: path!)

最后在Podfile里 加入 pod "JDPhotoBrowser"
用pod install一下 这个图片浏览器框架就可以使用了.

相关文章

网友评论

    本文标题:Swift写框架并发布到cocoapods注意点

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