使用 .NET MAUI Blazor Hybrid 的 iOS 模拟器中出现错误:“Info.plist 不包含有效的 CFBundleVersion”

问题描述 投票:0回答:1
我正在 Visual Studio 2022 中开发 .NET MAUI Blazor 混合应用程序,并在尝试在 iOS 模拟器上运行它时遇到错误。

错误消息指出:

The application's Info.plist does not contain a valid CFBundleVersion.

我已尝试将
CFBundleVersion
添加到我的
Info.plist
,如下所示:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>LSRequiresIPhoneOS</key> <true/> <key>UIDeviceFamily</key> <array> <integer>1</integer> <integer>2</integer> </array> <key>UIRequiredDeviceCapabilities</key> <array> <string>arm64</string> </array> <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> <key>XSAppIconAssets</key> <string>Assets.xcassets/appicon.appiconset</string> <key>NSLocationWhenInUseUsageDescription</key> <string>We need access to your location to provide earthquake alerts for you.</string> <key>UIBackgroundModes</key> <array> <string>fetch</string> </array> <key>UIRequiresPersistentWiFi</key> <true/> <key>CFBundleVersion</key> <string>1.0</string> <key>CFBundleShortVersionString</key> <string>1</string> </dict> </plist>
发生错误并且应用程序无法启动。以下是错误日志:

An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22): Simulator device returned an error for the requested operation. The application's Info.plist does not contain a valid CFBundleVersion. Ensure your bundle contains a valid CFBundleVersion. Underlying error (domain=NSPOSIXErrorDomain, code=22): Failed to install the requested application The application's Info.plist does not contain a valid CFBundleVersion. error HE0046: Failed to install the app 'com.companyname.shakesafe' on the device 'iOS 17.2 (21C62) - iPad Air (5th generation)': simctl returned exit code 22
我的.csproj 文件:

<Project Sdk="Microsoft.NET.Sdk.Razor"> <PropertyGroup> <TargetFrameworks>net8.0-android;net8.0-ios</TargetFrameworks> <OutputType>Exe</OutputType> <RootNamespace>ShakeSafe</RootNamespace> <UseMaui>true</UseMaui> <SingleProject>true</SingleProject> <ImplicitUsings>enable</ImplicitUsings> <EnableDefaultCssItems>false</EnableDefaultCssItems> <Nullable>enable</Nullable> <!-- Display name --> <ApplicationTitle>ShakeSafe</ApplicationTitle> <!-- App Identifier --> <ApplicationId>com.companyname.shakesafe</ApplicationId> <!-- Versions --> <ApplicationDisplayVersion>1.0</ApplicationDisplayVersion> <ApplicationVersion>1</ApplicationVersion> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">24.0</SupportedOSPlatformVersion> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-ios|AnyCPU'"> <CreatePackage>false</CreatePackage> <CodesignKey>iPhone Developer</CodesignKey> <MtouchDebug>true</MtouchDebug> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-ios|AnyCPU'"> <CreatePackage>false</CreatePackage> </PropertyGroup> <ItemGroup> <!-- App Icon --> <MauiIcon Include="Resources\AppIcon\appicon.svg" /> <!-- Splash Screen --> <MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#99C24D" BaseSize="128,128" /> <!-- Images --> <MauiImage Include="Resources\Images\*" /> <MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" /> <!-- Custom Fonts --> <MauiFont Include="Resources\Fonts\*" /> <!-- Raw Assets (also remove the "Resources\Raw" prefix) --> <MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" /> </ItemGroup> <ItemGroup> <None Remove="Resources\Icons\report_icon.svg" /> <None Remove="Resources\Fonts\Nunito-VariableFont_wght.ttf" /> </ItemGroup> <ItemGroup> <Content Include="Resources\Icons\home_icon.svg"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="Resources\Icons\info_icon.svg"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="Resources\Icons\map_icon.svg"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="Resources\Icons\report_icon.svg"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="Resources\Icons\settings_icon.svg"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup> <ItemGroup> <!-- Necessary NuGet packages for MAUI --> <PackageReference Include="Microsoft.Maui.Controls" Version="8.0.21" /> <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="8.0.21" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="8.0.21" /> <PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Microsoft.Maui.Maps" Version="8.0.21" /> <!-- Firebase packages --> <PackageReference Include="FirebaseAdmin" Version="2.4.1" /> <PackageReference Include="FirebaseDatabase.net" Version="4.2.0" /> </ItemGroup> <ItemGroup> <BundleResource Include="Resources\Fonts\Nunito-VariableFont_wght.ttf" /> </ItemGroup> <ItemGroup> <Content Update="wwwroot\data\gem_active_faults_harmonized.geojson"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup> <ItemGroup> <MauiAsset Update="Resources\Raw\AboutAssets.txt"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </MauiAsset> </ItemGroup> </Project>
我已经尝试过:

  • 重置模拟器。

  • 在不同设备上进行测试。

  • 添加 CFBundleVersion。

当我使用模板创建新项目时,应用程序就会构建。

ios xamarin blazor maui info.plist
1个回答
0
投票
您可以按照以下步骤检查您的项目

  1. 确保项目的 csproj 文件中的版本设置与 info.plist 文件中的版本。

    csproj 文件中的

    Application Display Version

     与
    info.plist 文件中的 
    Version
     以及 
    Application Version
    匹配 
    Build

    您可以参考

    信息属性列表了解 info.plist 文件和 .csproj 文件之间的关系。

  2. 根据

    无法在模拟器上启动ios应用程序中的解决方案 或设备“不包含有效的 CFBundleVersion”,问题 可能不是版本设置造成的。

    如果您的

    Resources

    文件夹中添加了相关资源
    项目,可以尝试暂时删除或替换检查
    错误是否会消失。

  3. 检查项目中所有包是否都已经成功 添加到项目中,例如GoogleService-Info。这也可能会导致 你的错误

对于其他可能的错误原因,您可以参考

捆绑包的Info.plist不包含CFBundleVersion键中的答案。许多答案表明,导致此错误的原因有很多。您可以根据您的项目尝试解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.