如何使用FireMonkey在iOS中获取应用版本号?
在Delphi 11中获取iOS应用版本号的方法
在Delphi中获取iOS应用的版本号,核心是调用iOS原生的NSBundle接口读取Info.plist中的版本信息,以下是具体实现:
1. 基础实现代码
首先需要引用iOSapi.Foundation和Macapi.Helpers单元,然后通过以下函数获取版本号和构建号:
获取用户可见版本号(CFBundleShortVersionString)
uses iOSapi.Foundation, Macapi.Helpers; function GetiOSAppVersion: string; var MainBundle: NSBundle; VersionValue: NSString; begin MainBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle); VersionValue := TNSString.Wrap( MainBundle.infoDictionary.objectForKey(StrToNSStr('CFBundleShortVersionString')) ); Result := NSStrToStr(VersionValue); end;
获取内部构建号(CFBundleVersion)
如果需要获取内部的构建编号,可以用这个函数:
function GetiOSBuildNumber: string; var MainBundle: NSBundle; BuildValue: NSString; begin MainBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle); BuildValue := TNSString.Wrap( MainBundle.infoDictionary.objectForKey(StrToNSStr('CFBundleVersion')) ); Result := NSStrToStr(BuildValue); end;
2. 跨平台兼容处理
为了和你的Android实现整合,建议加上条件编译,确保代码只在iOS平台生效:
function GetAppVersion: string; begin {$IFDEF ANDROID} // 你的Android版本获取代码 Result := ...; {$ENDIF} {$IFDEF IOS} Result := GetiOSAppVersion; {$ENDIF} end;
3. 注意事项
- 确保你的Delphi项目中,iOS平台的项目选项 > Version里已经正确设置了
Version Number(对应CFBundleShortVersionString)和Build Number(对应CFBundleVersion),这些值会自动同步到Info.plist中。 - 上述代码仅在iOS目标平台下编译有效,无需额外配置权限。
内容的提问来源于stack exchange,提问作者Dr. T
相关产品推荐
相关产品推荐

