排查 Power Apps 中的包装功能问题

本指南提供了在 Microsoft power Apps 中使用 包装 功能时遇到的常见问题的解决方案。

问题 1:包装生成失败

如果封装构建失败,请尝试以下操作:

验证图像格式

包装项目中的所有图像都必须采用 PNG 格式。 使用其他格式会导致生成失败。 使用图像转换器将图像转换为.png

重要

重命名文件扩展名 .png 不会将图像转换为 PNG 格式。

检查 Azure 密钥保管库设置

密钥保管库必须包含:

  • 对于 iOS:两个标记、一个证书和一个机密。
  • 对于 Android:一个标记和一个证书。

问题 2:换行按钮已禁用

仅当具有编辑权限时,才能包装应用。 确认你对应用拥有正确的权限,然后重试。


问题 3:无法保存封装项目或触发构建

更新到最新版本的包装解决方案,然后重试。


问题 4:无法安装包装的移动应用

通过在生成过程中配置密钥保管库或手动对应用进行签名,确保应用正确签名。

有关详细信息,请参见:

此外,请验证设备是否满足 最低要求


问题 5:无法在包装应用中登录或查看数据

如果无法登录或查看封装应用中的数据,请尝试以下操作:

验证 API 权限和访问权限

  • 确保配置了所有必需的 API 权限,并授予管理员权限。

    显示应用的 API 权限的屏幕截图。

  • Add-AdminAllowedThirdPartyApps确保脚本成功运行。
    有关详细信息,请参阅 “允许在你的环境中注册的应用”。

检查帐户类型和重定向 URI

  • 验证Microsoft Entra 应用类型是否设置为多租户,支持帐户类型为任何组织目录中的帐户(任何Microsoft Entra ID 租户)。

  • 为 iOS 和 Android 配置正确的重定向 URI:


问题 6:Power Apps 的 Azure 密钥保管库错误包装

在包装向导中可能会遇到以下错误代码:

错误代码 错误消息
1000118 找不到默认订阅或缺少访问权限。
1000119 密钥保管库不存在或缺少访问权限。
1000120 在密钥保管库上找不到组织 ID 标记。 确保标记 {Bundle ID}.{organization-id} 存在,并使用正确的大小写。
1000121 Android 密钥存储无效。 确保标记 {Bundle ID}.{keystore} 存在,并使用正确的大小写。
1000122 iOS 证书无效。 缺失标记和/或机密。 确保标记 {Bundle ID}.{cert} 存在并使用正确的区分大小写。
1000123 iOS 配置文件无效。 确保标签 {Bundle ID}.{profile} 存在并使用正确的大小写。
1000128 缺少访问 Azure Blob 存储位置所需的访问密钥。 确保标记 {Bundle ID}。{accessKey} 存在并使用正确的区分大小写。
1000130 缺少默认值:未设置包装向导中设置 Azure Key Vault 所需的环境变量。
1000131 指定的 Azure Key Vault 没有标记或缺少访问权限。
1000132 目标环境缺少环境变量“PA_Wrap_KV_ResourceID”。

错误代码1000118

Erroe 消息:找不到默认订阅或缺少访问权限。

解决步骤

  1. 确保 Azure 密钥保管库位于租户 的默认订阅中。

  2. 作为Microsoft Entra ID(前 Azure AD)管理员,请在 PowerShell 中运行以下命令,为 AppID“4e1f8dc5-5a42-45ce-a096-700fa485ba20”添加服务主体:

    Connect-AzureAD -TenantId <your tenant ID>
    New-AzureADServicePrincipal -AppId 4e1f8dc5-5a42-45ce-a096-700fa485ba20 -DisplayName "Wrap KeyVault Access App"
    
  3. Azure 门户中访问控制(IAM)下,将 读取者 角色分配给服务主体:

    1. 转到 访问控制(IAM),然后选择“ 添加角色分配”。

      显示访问控制(IAM)选项卡中的“添加角色分配”选项的屏幕截图。

    2. “作业功能角色”下选择“读取者”,然后转到“成员”选项卡。

      显示顶部菜单上的“成员”选项卡的屏幕截图。

    3. 搜索你的应用名称。

      显示如何搜索应用的屏幕截图。

    4. 分配 读取者 角色。

      显示如何向应用分配读者角色的屏幕截图。

错误代码1000119

错误消息:密钥保管库不存在,或者密钥保管库缺少访问权限。

解决步骤

  1. 确认 Azure 密钥保管库位于租户 的默认订阅中。

  2. 创建密钥保管库时,选择 保管库访问策略

    在“访问配置”选项卡下选择保管库访问策略选项。

  3. 作为Microsoft Entra ID(前 Azure AD)管理员,请在 PowerShell 中运行以下命令,为 AppID“4e1f8dc5-5a42-45ce-a096-700fa485ba20”添加服务主体:

    Connect-AzureAD -TenantId <your tenant ID>
    New-AzureADServicePrincipal -AppId 4e1f8dc5-5a42-45ce-a096-700fa485ba20 -DisplayName "Wrap KeyVault Access App"
    
  4. Azure 门户中,分配 “读取者 ”角色,如前面的错误代码部分所示。

  5. 将访问策略添加到密钥保管库:

    显示如何为 Azure 密钥保管库添加访问策略的屏幕截图。

    显示如何查看和创建保管库访问策略的屏幕截图。

错误代码1000120

错误消息:在密钥保管库上找不到组织 ID 标记。 确保标记 {Bundle ID}。{organization-id} 存在并使用正确的区分大小写。

解决步骤

  1. 在管理中心 Power Platform ,选择您的环境。

    显示 Power Platform 管理中心中的“环境”选项卡的屏幕截图。

  2. 复制组织 ID

    显示可在 Power Platform 管理中心中找到的组织 ID 的屏幕截图。

  3. 在密钥保管库中,转到 “标记 ”,并使用组织 ID 作为值创建名为 组织 ID 的标记。

    显示如何将组织 ID 添加到Azure 门户中的标记的屏幕截图。

错误代码1000121

错误消息:Android 密钥存储无效。 确保标记 {Bundle ID}.{keystore} 存在并且使用正确的大小写。

解决步骤

  1. 导入 Android 证书

    显示如何导入 Android 证书的屏幕截图。

    显示如何创建 Android 证书的屏幕截图。

  2. 为证书添加 标记

    • 标记名称:使用与封装项目相同的捆绑 ID(例如 com.testApp.wrap)。
    • 标记值:使用上传时分配的证书名称(例如, AndroidCertificate)。

    显示如何创建证书标记的屏幕截图。

错误代码1000122

错误消息:iOS 证书无效。 缺少标记和/或机密。 确保标签 {Bundle ID}.{cert} 存在,并且使用正确的大小写。

解决步骤

  1. 导入 iOS 证书

    显示如何导入 iOS 证书的屏幕截图。

    显示如何创建 iOS 证书的屏幕截图。

  2. 为证书添加 标记

    • 标记名称:使用包装项目中的捆绑 ID。
    • 标记值:使用上传时分配的证书名称(例如, iOSCertificate)。

    显示如何为 iOS 创建证书标记的屏幕截图。

错误代码1000123

错误消息:iOS 配置文件无效。 确保标签 {Bundle ID}.{profile} 存在并正确区分大小写。

解决步骤

  1. 预配配置文件 导入为 机密

  2. 为您的配置文件添加标签

    • 标记名称:使用包装项目中的捆绑 ID。
    • 标记值:使用上传时为机密提供的名称(例如, iOSProvisioningProfile)。

    显示如何为 iOS 预配配置文件机密创建标记的屏幕截图。

错误代码1000128

错误消息:缺少访问 Azure Blob 存储位置所需的访问密钥。 确保标签 {Bundle ID}.{accessKey} 存在并使用正确的大小写。

解决步骤

将访问密钥从 Azure Blob 存储帐户添加到 Azure 密钥保管库。

有关详细信息,请参阅 步骤 2:目标平台

错误代码1000130

错误消息:缺少默认值:未设置包装向导中设置 Azure Key Vault 所需的环境变量。

解决步骤

  1. 将要用于包装应用程序的 Azure 密钥保管库的资源 ID 分配给变量。

  2. 确认指定的资源 ID 包括与包装向导中定义的捆绑 ID 关联的所有必需标记。

有关详细信息,请参阅 步骤 2:目标平台

错误代码1000131

错误消息:指定的 Azure Key Vault 没有标记或缺少访问权限。

解决步骤

  1. 将要用于包装应用程序的 Azure 密钥保管库的资源 ID 分配给变量。

  2. 确认指定的资源 ID 包括与包装向导中定义的捆绑 ID 关联的所有必需标记。

  3. 确保你有权访问密钥保管库:

    1. 作为Microsoft Entra ID(前 Azure AD)管理员,请在 PowerShell 中运行以下命令,为 AppID“4e1f8dc5-5a42-45ce-a096-700fa485ba20”添加服务主体:

      Connect-AzureAD -TenantId <your tenant ID>
      New-AzureADServicePrincipal -AppId 4e1f8dc5-5a42-45ce-a096-700fa485ba20 -DisplayName "Wrap KeyVault Access App"
      
    2. Azure 门户中访问控制(IAM)下,将 读取者 角色分配给服务主体:

      1. 转到 访问控制(IAM),然后选择“ 添加角色分配”。

        显示访问控制(IAM)选项卡中的“添加角色分配”选项的屏幕截图。

      2. “作业功能角色”下选择“读取者”,然后转到“成员”选项卡。

        显示顶部菜单上的“成员”选项卡的屏幕截图。

      3. 搜索你的应用名称。

        显示如何搜索应用的屏幕截图。

      4. 分配 读取者 角色。

        显示如何向应用分配读者角色的屏幕截图。

有关详细信息,请参阅 步骤 2:目标平台


错误代码1000132

错误消息:目标环境的缺少环境变量“PA_Wrap_KV_ResourceID”。

解决步骤

  1. 检查目标环境中是否存在环境变量 PA_Wrap_KV_ResourceID 。 如果没有,请创建它。

  2. 确保名称遵循正确的命名约定,而不会出现拼写错误或格式错误。

有关详细信息,请参阅 步骤 2:目标平台


问题 7:无法登入到封装应用

  1. 确保用户有权访问应用。 有关详细信息,请参阅与组织共享画布应用

  2. 如果用户具有应用访问权限但仍无法登录,请检查 Microsoft Entra 管理中心中的条件访问策略

  3. 使用登录失败屏幕上的关联 ID 以进行进一步的故障排除。


问题 8:错误消息:“出现问题。 [5objp]”

此问题可能是由于签名哈希密钥不匹配或在应用身份验证过程中重定向 URI 不匹配导致的。

常见的根本原因

原因 1:签名哈希密钥不匹配

APK 使用与在 Microsoft Entra ID 应用程序中注册的密钥不同的密钥进行签名。 如果出现以下情况,可能会发生这种情况:

  • 生成过程中使用不同的密钥库。

  • 注册的哈希密钥生成或复制不正确(例如,它包含额外的空格或无效字符)。

原因 2:重定向 URI 不匹配

应用使用的重定向 URI 与门户中注册的内容不匹配:

  • 重定向 URI 区分大小写。 如果输入的Bundle标识符或URI大小写不正确,则可能会发生不匹配。

  • URI(如 %2F,) %3D中的特殊字符必须正确编码,并完全匹配在 Microsoft Entra ID 中注册的内容。

如何解决问题

验证签名哈希密钥
  1. 从用于对应用进行签名的密钥存储生成正确的哈希密钥

  2. Microsoft Entra 管理中心,转到 “应用注册 ”并选择你的应用。

  3. 在应用的导航窗格中,选择“ 身份验证”。

  4. “平台配置 ”部分下,找到 Android 平台。

  5. 请检查您的应用的签名哈希密钥是否已列出,并且与从您的密钥库生成的哈希密钥匹配。

  6. 如果哈希键缺失或不正确,请根据需要添加或更新该密钥,然后保存所做的更改。

检查重定向 URI
  1. 安装 Android Studio 并设置模拟器。

  2. 启动模拟器并将 APK 文件拖到其中以安装应用。

  3. 在模拟器中打开应用,尝试登录并记下错误消息。

  4. 在错误屏幕上,找到正在使用的重定向 URI。

  5. 如果 URI 中的哈希键包含编码字符(例如 %2F),则解码它们(%2F 变为 /)以获取签名哈希密钥。

  6. 复制解码的签名哈希密钥。

  7. Microsoft Entra 管理中心,转到 “应用注册 ”并选择你的应用。

  8. “身份验证”下,查看配置的 重定向 URI

  9. 如果缺少重定向 URI,请使用正确的捆绑 ID 和签名哈希密钥添加它,然后保存所做的更改。

  10. 将现有的重定向 URI 逐个字符(包括大小写和编码)与在 Microsoft Entra ID 中注册的 URI 进行比较。

  11. 如果在门户中手动输入捆绑ID,请仔细核对大小写的一致性。

为了避免将来出现此错误:

  • 始终直接从项目或生成输出复制捆绑 ID 和哈希密钥。
  • 使用记录日志或模拟器日志来检查运行时确切的重定向 URI。
  • 避免手动键入或修改哈希键或重定向 URI。
  • 使用 Android Studio 验证应用配置。

问题 9:错误消息“出现问题 [2002]” 和错误代码 9n155

当应用注册未配置为支持 多租户帐户时,可能会出现此错误。

常见的根本原因

使用包装向导创建应用注册时,通常会发生此错误,默认情况下会将应用设置为单租户模式。 如果用户未手动更新此设置,或在手动应用注册时意外选择了单租户模式,Wrap应用将无法进行身份验证,导致错误代码9n155。

决议

  1. Microsoft Entra 管理中心,转到 “应用注册 ”并选择你的应用。

  2. “概要” 部分中,找到 支持的帐户类型。 它应设置为 多个组织。 如果不是这样,请将其设置为任何组织目录中的帐户(任何 Microsoft Entra 目录 - 多租户)

  3. 保存更改。


其他问题

如果此处未介绍你的问题,或者前面的步骤无法解决问题,请参阅 后续步骤 来报告问题。 准备好提供重现问题的详细步骤。

收集诊断信息

若要排查登录问题,可以收集会话详细信息:

  • 对于“环绕向导”:在登录屏幕上,点击右上角的齿轮图标,然后选择 “会话详情”
  • 对于移动设备:打开应用后,按住屏幕,然后选择“ 会话详细信息”。

后续步骤

如果问题仍然存在, 请搜索更多支持资源 或联系 Microsoft支持人员。