钥匙串访问多目标ios应用程序的权利组

Hus*_*Rad 5 xcode keychain entitlements ios

我有一个带有2个独立targets 的iOS应用程序项目.例如目标A和目标B.现在,xCode8当我转向keychain sharingON时,xCode生成两个A.entitlementsB.entitlements文件.出乎意料的是,它们都具有相同的值:

<plist version="1.0">
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)target1.bundle.identifier</string>
    </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

我的意思是在bundle identifier我的第一个目标的两个文件用途中; 当我手动尝试更改其中一个的值时,另一个也会更改.

如您所知,xcode不会对应用进行签名,而其值keychain-access-groups与您用于签名的配置文件的捆绑标识符完全匹配.

所以我想知道我们如何为两个单独的目标的两个单独的权利文件提供两个单独的值?

Hus*_*Rad 9

我最后通过在我的权利中使用以下代码来解决这个问题:

<plist version="1.0">
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

  • 感谢Husein jaan的优雅修复,你节省了我很多时间. (3认同)