我在MapBox.h中找到了这些行:
/// Project version number for Mapbox.
FOUNDATION_EXPORT MGL_EXPORT double MapboxVersionNumber;
/// Project version string for Mapbox.
FOUNDATION_EXPORT MGL_EXPORT const unsigned char MapboxVersionString[];
这些似乎是全局导出,我可以使用MapboxVersionNumber
和MapboxVersionString
在我的代码中访问它们。但是,它们都是一个5位数字(如果算上双倍的.0
则为6位数)。我正在寻找更像4.0.1
答案 0 :(得分:1)
您可以通过创建使用给定标识符初始化的Bundle
实例来从Mapbox Info.plist文件中提取信息
在Swift 4.2中,您可以尝试以下操作:
extension Bundle {
var releaseVersionNumber: String? {
// Actually retrieves the information from the plist.
return infoDictionary?["CFBundleShortVersionString"] as? String
}
var buildVersionNumber: String? {
// Actually retrieves the information from the plist.
return infoDictionary?["CFBundleVersion"] as? String
}
static var mapbox: Bundle {
// Crash can occur if you are not linking Mapbox and "com.mapbox.sdk.ios" does not exist.
return Bundle.init(identifier: "com.mapbox.sdk.ios")!
}
}
然后您可以在项目中的任何地方使用它:
let mapboxVersion = Bundle.mapbox.releaseVersionNumber
print("Mapbox version: \(mapboxVersion)")
注意:如果Mapbox决定以某种方式更改其标识符字符串,或者您想对其他框架进行相同操作,则可以打印所有现有的嵌入框架:
for frameworkBundle in Bundle.allFrameworks {
print("Framework bundle identifier: \(frameworkBundle.bundleIdentifier ?? "No identifier")")
}
答案 1 :(得分:-1)
今天检查macOS SDK的捆绑包标识符为“ com.mapbox.Mapbox”。