【发布时间】:2015-10-03 18:42:33
【问题描述】:
Cocoa Touch 框架提供版本控制支持,可以在 Versioning 部分下的Build Settings 中找到。
要在运行时访问此值,我们可以使用在构建过程中为我们自动生成的 FrameworkVersionNumber 和 FrameworkVersionString[] 变量。
使用 Swift 项目时,可以在 Objective-C 兼容性标题的顶部自动生成这些:
//! Project version number for Framework.
FOUNDATION_EXPORT double FrameworkVersionNumber;
//! Project version string for Framework.
FOUNDATION_EXPORT const unsigned char FrameworkVersionString[];
然而,FrameworkVersionNumber 可以从 Swift 访问,FrameworkVersionString[] 不能。其实查看框架模块的内容,我可以看到只有第一个变量暴露给了 Swift:
//! Project version number for Framework.
var FrameworkVersionNumber: Double
问题在于,由于FrameworkVersionNumber 是Double,因此任何版本号(如 3.2.1)都会简单地更改为 3.200000...
有谁知道这是否是我的项目设置中的一个缺陷、Xcode 中的一个错误,或者是否有办法在 Swift 中以String 或数组的形式获取框架版本,以便我可以提供更精细的版本控制比major.minor?
【问题讨论】:
标签: ios objective-c xcode swift