You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:01:03