2

我正在尝试通过 Appcenter 将应用程序上传到 testflight,并且我具有 icloud 文档存储功能,因此我在 enlistement.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>com.apple.developer.icloud-services</key>
    <array>
        <string>CloudKit</string>
        <string>CloudDocuments</string>
    </array>
    <key>com.apple.developer.icloud-container-identifiers</key>
    <array>
        <string>iCloud.com.company.appname</string>
    </array>
    <key>com.apple.developer.ubiquity-kvstore-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
</dict>
</plist>

我遵循了本教程: https ://developer.apple.com/library/content/technotes/tn2415/_index.html 在此处输入图像描述

但是当我尝试将发布推送到 iTunes 连接到 testflight 时,我收到了这个错误:

调试 [2018-04-24 06:34:46.43]:[Transporter]:DBG-X:参数 ErrorMessage = ERROR ITMS-90046:“无效的代码签名权利。您的应用程序包的签名包含 iOS 不支持的代码签名权利. 具体来说,不支持 'Payload/App.MobileApp.iOS.app/App.MobileApp.iOS' 中键 'com.apple.developer.icloud-container-environment' 的值 'Development'。

我的证书分发和配置文件已按照此处的建议设置为生产:iOS Apple TestFlight 版本需要什么样的证书和配置文件?.

4

1 回答 1

3

我花了很多时间试图弄清楚如何在 App Center 上解决这个问题,我找到了一个解决方法。

使用此名称在您的权利中定义一个键: com.apple.developer.icloud-container-environment

它将包含一个带有字符串值的数组: Production

您的权利将如下所示:

<key>com.apple.developer.icloud-container-environment</key>
<array>
    <string>Production</string>
</array>

确保您的构建定义处于发布或 AppStore 模式,并且您的配置文件中有正确的权利,您应该很好。

说明:我认为通过 AppCenter 检查您的权利的过程在获得可用于您的构建的环境时获得这两个值,而不是使用像 Xcode / VS Studio / Itunes Connect 在通过 Apple 验证您的配置文件环境时使用的过程开发者帐户的 API。

希望这对你有用。

于 2019-07-15T12:41:29.147 回答