MAUI如何获取应用的包名和版本号 MAUI AppInfo教程

来源:这里教程网 时间:2026-02-21 17:34:09 作者:

在 MAUI 中获取应用的包名(Package Name)和版本号,主要依靠

Microsoft.Maui.ApplicationModel.AppInfo
类。它跨平台封装了 Android 的
PackageName
、iOS 的
Bundle Identifier
,以及各平台统一的版本信息,无需手动判断平台或调用原生 API。

获取包名(Bundle Identifier / Package Name)

包名在不同平台含义略有不同:Android 叫“package name”,iOS 叫“bundle identifier”,但

AppInfo.PackageName
会自动返回对应平台的唯一标识字符串。

使用方式很简单:

确保已引用
Microsoft.Maui.ApplicationModel
(MAUI 默认已包含)
直接调用
AppInfo.PackageName
,例如:
string packageName = AppInfo.PackageName;

? 注意:在 iOS 上,该值取自

Info.plist
中的
CFBundleIdentifier
;在 Android 上,取自
AndroidManifest.xml
package
属性。务必确保这两个地方配置正确,否则返回空或默认值。

获取版本号(Version + Build)

AppInfo
提供两个关键属性:

VersionString
:显示给用户的版本号,如
"1.2.0"
(对应 Android 的
versionName
,iOS 的
CFBundleShortVersionString
BuildString
:构建号/内部版本号,如
"123"
(对应 Android 的
versionCode
,iOS 的
CFBundleVersion

示例:

string version = AppInfo.VersionString; // "2.1.0"
string build = AppInfo.BuildString; // "210"

? 小提示:iOS 的

CFBundleVersion
必须是纯数字(如
"210"
),不能含字母或点;而
CFBundleShortVersionString
才支持语义化版本(如
"2.1.0"
)。MAUI 会按规范分别映射到
BuildString
VersionString

运行时检查与安全调用

AppInfo
是静态类,但某些属性(尤其是早期 MAUI 版本)在未完全初始化时可能返回 null。建议加空值检查:

if (!string.IsNullOrWhiteSpace(AppInfo.PackageName))
{
  Console.WriteLine($"Package: {AppInfo.PackageName}");
}

另外,不推荐在

App.xaml.cs
构造函数中过早访问 —— 建议放在
OnStart()
或页面首次加载时调用,确保平台服务已就绪。

Android 和 iOS 配置要点

若获取结果异常(如返回空、

"com.companyname.yourapp"
默认值),请核对以下配置:

Android:打开
Platforms/Android/AndroidManifest.xml
,确认
package="com.yourcompany.yourapp"
已修改
iOS:打开
Platforms/iOS/Info.plist
,检查:
  
<key>CFBundleIdentifier</key><string>com.yourcompany.yourapp</string>

  
<key>CFBundleShortVersionString</key><string>1.0.0</string>

  
<key>CFBundleVersion</key><string>100</string>

修改后需重新生成项目(Clean + Rebuild),避免缓存导致读取旧值。

基本上就这些。用

AppInfo
获取包名和版本号,不复杂但容易忽略平台配置细节。配对好 manifest/plist,一行代码就能拿到稳定结果。

相关推荐