0

在将 app.entitlements 文件添加到项目以启用推送通知 (aps-environment) 后,Sidekick 云构建会产生错误,指示云构建服务器无法找到 app.entitlements 文件。

The following build commands failed:
\tCheck dependencies
(1 failure)
Code Signing Error: The file \"/tmp/builds/_/146cf62166c1319ab4a033cc9caf241a3f6550f1/4.2.4/4.2.0/AngusConsumerMobileAppv3/platforms/ios/AngusConsumerMobileAppv3\\app.entitlements\" could not be opened. Verify the value of the CODE_SIGN_ENTITLEMENTS build setting for target \"AngusConsumerMobileAppv3\" and build configuration \"Release\" is correct and that the file exists on disk.

app.entitlements 文件位置在构建期间自动包含在 build.xcconfig 文件中。从 build.xcconfig 文件中删除此行会导致重新添加相同的位置。

构建.xcconfig

CODE_SIGN_ENTITLEMENTS = AngusConsumerMobileAppv3\app.entitlements

应用程序权利

<?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>aps-environment</key>
    <string>production</string>
</dict>
</plist>

环境:

Version: 1.13.0-v.2018.10.5.2 (latest)
NativeScript CLI version: 4.2.4
CLI extension nativescript-cloud version: 1.14.2
CLI extension nativescript-starter-kits version: 0.3.5
4

1 回答 1

3

看起来这是一个简单的路径问题,我认为它基于使用反斜杠的 Windows 路径约定与使用云服务器上需要的前斜杠的 linux 约定(不确定为什么,但下面的工作似乎修复它)这会导致构建由于路径错误而找不到 app.entitlements 文件时失败。

看起来您还必须声明自己的文件名。允许系统使用默认的 app.entitlements 文件似乎总是导致我在 build.xcconfig 中的手动输入被注释掉并替换为反斜杠路径。

所以 - 我只是为自定义命名的 myapp.entitlements 文件创建了一个条目

构建.xcconfig

CODE_SIGN_ENTITLEMENTS = myapp_local_folder/myapp.entitlements

myapp.entitlements

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>production</string>
</dict>
</plist>

这为生产启用了 PUSH 通知,并且构建和发布到 iOS 应用商店按预期工作。

于 2018-11-17T16:59:54.893 回答