最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

iOS开发之framework动态改版本号

iOS 天狐 1321浏览 0评论

自己封装的SDK.framework,需要打log或者请求网络的时候要标明当前sdk的版本,手动改版本不保证100%会改。

一.自建脚本动态修改

写了个脚本动态改代码中的某段代码,和info.plist的version。Library为framework名称,Include为framework的任意一个类。里面有个version方法用来给framework内部调用获取sdk版本。

framework的target中build phases中新建runscript脚本,内容如下:

脚本打包前修改了Include.m的version返回值实现动态版本号。同时也修改了framework的info.plist版本号便于他人查看(注:info.plist在sdk中是读不到的)。
这里使用的是当前时间为版本号,可以根据自己需求制定。

EFFECTIVE_PLATFORM_NAME== "-iphoneos"判断是为了防止制作通用静态库的时候执行两次。只在真机模式下执行一次即可,不需要可以去掉。

二.官方方法

创建framework target的时候会自动生成一个 Library.h头文本

这个值可以在Xcode中配置,然后引用方或者自己的sdk中就可以通过代码直接访问版本号了,

工程名->Targets->YourLibrary->Build Settings->Versioning->Current Project Version

可以手动设置当前framework的版本号,framework build同时也会往生成的framework info.plist中写入版本号。

把Versioning System设置成Apple Genneric以后,同样可以在runscript脚本中运行agvtool命令来达到自动增加版本号的目的。

but经过实践。。。如果用runscript中自动执行上边脚本后,只有info.plist实时变更了,Xcode中的版本并没有实时变更,反应比较慢。这样会导致打出来的版本代码获取与查看info.plist不一致的情况。

Done。

转载请注明:天狐博客 » iOS开发之framework动态改版本号

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址