为什么 xcode 不会在设备上构建应用程序,但会在模拟器上构建?

时间:2021-03-12 16:07:37

标签: ios xcode

我有一个 React Native 应用程序。截至上次更新,现在有一个与之相关的应用程序扩展。新创建的父应用程序配置文件/证书已生成。正确的权利已在苹果开发门户和 .entitlements 文件中得到确认。已正确添加应用程序组。该扩展程序还具有与之关联的适当的临时配置文件和证书。

应用在自动签名的调试变体中没有构建/安装问题。

该应用在自动签名时没有临时/发布变体的构建/安装问题。

我正在尝试构建和安装发布版本

但是,当手动签名应用程序时(我需要在 xcode 中执行此操作以确认没有问题可以通过 microsoft appcenter 调试我的分发问题),该应用程序构建良好,但不会安装在设备上。我收到“未安装应用程序”错误。

打开它说的问题:

<块引用>

"可执行文件的签名无效 权利”。代码是 -402620394。还有:Domain: com.apple.dt.MobileDeviceErrorDomain,如果有帮助的话。没有 除堆栈跟踪之外的其他信息,但看起来不太具体

其他信息:

  • 我有一个 APS 证书,在我的钥匙串访问中显示它已过期,但是当我查看 Apple 开发门户时,它仍然没有过期。
  • 发布/暂存变体将在模拟器上运行,但不能在物理设备上运行

我尝试过的事情:

  • 重启xcode
  • 清除派生数据
  • 正在从设备中删除应用
  • 改用旧版构建系统
  • 为父应用和扩展程序确认了正确的临时配置文件和证书
  • 再次重新创建配置文件/证书以确保
  • 确认配置文件中的证书与正确的证书匹配
  • 确认应用目标的开发团队,测试目标和应用扩展匹配
  • 确认我的设备 UDID 已添加到两个配置文件中
  • 清洁和建筑
  • 在 .entitlements 文件中将 APS 环境值更改为“生产”

一些截图:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

请不要建议使用自动签名。由于上述原因,我不能。我必须在我的分发工具 (appcenter) 中手动设置父应用程序的配置文件和 .p12 证书以及应用程序扩展的配置文件

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

herehere

总而言之,您永远无法将具有 App Store 分发认证的应用程序直接安装到您的手机中。只有 Apple 可以安装使用 App Store 证书签名的应用。

如果你想测试一些东西,那么你要么在试飞中测试东西,要么检查二进制文件的权限。您可以按照开发论坛 here 的说明进行操作:

<块引用>

检查内置二进制

调试代码签名授权问题的第一步是 检查二进制文件的实际权限。 Xcode 的过程 设置权限非常复杂,它取决于各种 输入,所以首先检查输出而不是检查输出很重要 只看输入。

要检查二进制文件中的权限,请运行以下命令:

$ codesign -d --entitlements :- NetworkExtensionSample.app
Executable=…/NetworkExtensionSample.app/NetworkExtensionSample
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" …>
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>SKMME9E2Y8.com.example.apple-samplecode.NetworkExtensionSample</string>
    <key>com.apple.developer.networking.vpn.api</key>
    <array>
        <string>allow-vpn</string>
    </array>
    <key>com.apple.developer.team-identifier</key>
    <string>SKMME9E2Y8</string>
    <key>get-task-allow</key>
    <true/>
</dict>
</plist>