问题描述
我最近向使用 Xamarin.iOS 开发的 iOS 应用添加了通知 (FCM).当我尝试在发布中的设备上安装时 - 在 iPad 和 iPhone 上 - 安装失败.我发现的所有类似问题都与本机开发有关.我试图重新生成配置文件,删除并再次添加推送通知权限,但它不起作用.我很确定这是 entitlements.plist 的问题,但我看不到错误.
I've recently added notifications (FCM) to an iOS app developed with Xamarin.iOS.When I try to install on a device in release - both on iPad and iPhone - the installation fails.All the similar questions I've found are related to native development. I tried to regenerate provisioning profiles removing and adding again push notification permission but it doesn't work. I'm quite sure it's a problem with entitlements.plist but I cannot see the error.
读取设备日志我可以看到:
Reading device log I can see:
J:2688602321590689122,I:5638904815675342255#[]: 安装失败J:2688602321590689122,I:5638904815675342255#[]: 错误后安装失败:
J:2688602321590689122,I:5638904815675342255#[]: Failed to installJ:2688602321590689122,I:5638904815675342255#[]: Install failed after error:
0x16df47000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 147: 无法验证/private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.uANw57/extracted/的代码签名Payload/Wine.iOS.app : 0xe8008016(可执行文件的签名无效.)
0x16df47000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 147: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.uANw57/extracted/Payload/Wine.iOS.app : 0xe8008016 (The executable was signed with invalid entitlements.)
installd(MobileSystemServices)[42] : 0x16df47000 -[MIInstaller performInstallationWithError:]: 验证阶段失败
installd(MobileSystemServices)[42] : 0x16df47000 -[MIInstaller performInstallationWithError:]: Verification stage failed
推荐答案
这很容易,但问题确实出在 Entitlements.plist 中.
It was easy and the problem was really in Entitlements.plist.
尝试直接从 Xcode 安装应用程序返回此错误:
Trying to install the app directly from Xcode it returned this error:
我没有注意到 Entitlements.plist 里面有:
I didn't notice that inside Entitlements.plist there was:
<dict>
<key>aps-environment</key>
<string>development</string>
</dict>
用生产"改变开发"就足够了.
It was enough to change 'development' with 'production'.
这篇关于Xamarin.iOS:可执行文件的签名无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!