【问题标题】:Xamarin iOS entitlements not publishedXamarin iOS 权利未发布
【发布时间】:2020-04-27 10:26:48
【问题描述】:

在 Xamarin iOS 中,当我修改 Entitlements.plist 并启用 Associated Domains 或 NFC,然后使用临时配置文件存档时,生成的 .ipa 文件不包含权利。

我用这个:

codesign -d --entitlements :- "MyApp.iOS.app"

检查 .ipa。

权利.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.associated-domains</key>
    <array>
        <string>applinks:XY.com</string>
    </array>
    <key>com.apple.developer.nfc.readersession.formats</key>
    <array>
        <string>NDEF</string>
        <string>TAG</string>
    </array>
</dict>
</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>application-identifier</key>
    <string>AAAAAAA.com.XY</string>
    <key>get-task-allow</key>
    <false/>
    <key>com.apple.developer.team-identifier</key>
    <string>AAAAAAA</string>
    <key>keychain-access-groups</key>
    <array>
        <string>AAAAAAA.com.XY</string>
    </array>
</dict>
</plist>

为什么 .ipa 中没有权利?

编辑:我刚刚发现我没有在 Visual Studio 的 iOS 捆绑签名页面上填写自定义权利。这可能是问题所在。

【问题讨论】:

    标签: xamarin.ios


    【解决方案1】:

    我认为您应该指定自定义 entitlement.plist 的路径。

    codesign --entitlements /path/to/entitlements.plist -s <identity> <code-path>
    

    检查https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html

    搜索关键词Entitlements

    【讨论】:

    • 我刚刚发现我没有在 Visual Studio 的 iOS 捆绑签名页面上填写自定义权利。这可能是问题所在。
    • 我填了,还是有问题!
    【解决方案2】:

    仅填写 Entitlements.plist 是不够的。您还必须在 iOS Bundle Signing 页面上分配它 -> 自定义权利。

    在我这样做之后,codesign 显示正确的输出(这次我移除了 NFC)

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>application-identifier</key>
        <string>AAAAAAA.com.XY</string>
        <key>get-task-allow</key>
        <false/>
        <key>com.apple.developer.team-identifier</key>
        <string>AAAAAAAA</string>
        <key>com.apple.developer.associated-domains</key>
        <array>
            <string>applinks:XY.com</string>
        </array>
    </dict>
    </plist>
    

    【讨论】:

    • 嗨,你能更明确地说明你必须在哪里分配它吗?我在 Visual Studio Mac 中找不到任何“iOS Bundle 签名页面”。
    • 我用的是Windows,会是这个原因吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多