美文网首页iOS基础扫盲
iOS之SDK开发的总结

iOS之SDK开发的总结

作者: 记忆的北极 | 来源:发表于2018-08-28 17:23 被阅读0次
    一,创建iOS的SDK有两种方式

    1,以.a的方式.
    2,以.framework的方式.
    具体的.a和.framework的区别,先暂时不介绍,因为网上有N多这样的介绍,可以自行查阅.

    二,这里建议创建以.framework的方式

    .framework的格式创建,能为后期避免很多不必要的麻烦.不过创建.a的库也是可以的,有助于熟悉SDK的开发.
    .framework的格式其实一个文件包,具体的谈不上是一个SDK的库,当然.framework包可以是静态,也可以是动态库.
    .a是静态的库.

    三,一般SDK的设计

    1,一般SDK工程中会把图片和相关的xib文件放到一个bundle包中.

    2,创建bundle的时候有些需要注意的内容,默认情况下,bundle的类型是macOS类型的,需要在TARGETS->Build Settings-> Supported Platforms 更改自己所需要的类型.当然还有Base SDK也要换成Lastest iOS(iOS11.4),如果你所需要的是iOS类型的话.

    3,bundle包里存储的图片默认情况下是.tiff格式的图片,是你放进去的包括@2x, @3x自动合并成的.tiff格式.如果你需要使用单独的图片,不希望合并的图片,你可以做一下设置,在TARGETS下选中bundle名,然后->Build Settings->COMBINE_HIDPI_IMAGES 设置成NO即可.这里我是设置成NO的,因为我在项目中使用的图片会报错,找不到相应的图片.

    EFB122FF-E65D-4B6C-A721-31C603A66B07.png
    四,SDK的国际化语言设置

    在我的项目中,我只设计了三种语言类型,包括英语,简体汉字,繁体汉字,((当然,简体汉字和繁体汉字实际上是一种语言_)
    1,我们可以现在我们个工程中找到PROJECT->Localizations中添加相应的三种类型的语言

    Chinese(Simplified)
    Chinese(Traditional)
    English-Development Language

    2,创建翻译语言库的String文件. 选择创建一个String文件,即字符串文件.然后右边的选择Localize...选择语言文件,把Chinese(Simplified), Chinese(Traditional), English-Development Language这三个语言都选上,其他的xib文件也是相同操作.

    CE4DB531-E42C-447C-A5EF-337DA979FA13.png

    当给String文件选择完成Localize...文件后,就会在文件下方出现三个类型的文件库,这三个文件库就是要存储翻译的内容的.如图

    屏幕快照 2018-08-28 下午5.23.08.png

    然后UIView上的文字就要从这些语言库里取相应的文字.

    具体的国际化语言设计,详情我会再写一篇文章单独介绍.

    五,如果你的SDK工程引用了其他的第三方

    比如你在自己的SDK里引用了Google和Facebook登第三方的登录SDK,那么你需要做的是,把这些库(实际上也是.framework和一些.bundle包等)单独放到一个文件里,这些库,最好不要放到你的包或者bundle里面.而是让使用者自己导入这些文件.配置也很简单.(包括SVProgressHUD第三方中的.bundle),如图,

    屏幕快照 2018-08-28 下午5.33.20.png
    六,.framework设置暴露的.h文件

    暴露这个.h是为了让别人使用你的库,设置如下图,

    屏幕快照 2018-08-28 下午5.35.55.png

    在Headers->Public就是需要暴露的.h文件地方,其他的private是受保护的,Project是项目.m文件.

    七,关于Enable Bitcode的设置

    其实关于Enable Bitcode的功能,可以理解是支持新的CPU架构的设置,一般的在xcode7之前是默认关闭的,之后都默认打开.
    而很多第三方库和框架都是没有设置bitcode的,就导致了我们在导入很多第三方库和框架的时候出现编译错误.

    6099F380-904F-440F-AF31-92C72F5B8BD3.png
    八,关于包的类型(动态,静态)的设置

    在TERGETS中设置Build Settings->Mach-O Type进行设置.

    屏幕快照 2018-08-29 下午4.49.12.png

    相关文章

      网友评论

        本文标题:iOS之SDK开发的总结

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