在 Phonegap Build 中使用 config.xml 编辑 Entitlements.plist 文件

Editing the Entitlements.plist file using config.xml in Phonegap Build

我正在尝试通过 Phonegap build 使用 Apple Pay cordova 插件。这是我在配置文件中的条目:

     <plugin name="cordova-plugin-applepay-stripe" source="npm">
<param name="STRIPE_TEST_PUBLISHABLE_KEY" value="xxxxxxxx" />
<param name="STRIPE_LIVE_PUBLISHABLE_KEY" value="xxxxxxxxx" />
<param name="APPLE_MERCHANT_IDENTIFIER" value="merchant.etc.etc" />
</plugin>

该插件安装正确,但它无法正常工作,因为我在 Xcode 中使用 PC 时未启用 Apply Pay 权利。

我知道您可以直接从 phonegap build config.xml 文件编辑 plist 文件,就像我在这里所做的那样:

<gap:config-file platform="ios" parent="NSPhotoLibraryUsageDescription" overwrite="true">
<string>We are using the Photo Library for PayPal</string>...

所以我的问题是我到底要如何编辑 Entitlements.plist 文件才能启用 ApplePay 并添加我的商家 ID?!

我尝试了以下方法:

  <config-file platform="ios" target="*-Entitlements.plist" parent="com.apple.developer.in-app-payments">  
        <array>
            <string>merchant.etc.etc/string>
        </array>
</config-file>  

但这并没有奏效。任何帮助,将不胜感激!

似乎 config-file 出于某种原因只能在插件中使用。它似乎应该在您的项目 config.xml 中工作,但不幸的是它没有。但是,您可以使用本地插件来管理您的权利,以达到或多或少相同的效果。

例如,src/local-plugins/app-entitlements

将此添加到您的 config.xml

<plugin name="app-entitlements" spec="src/local-plugins/app-entitlements" />

您只需要 src/local-plugins/app-entitlements/plugin.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<plugin id="app-entitlements" version="0.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0">
  <name>AppEntitlements</name>
  <platform name="ios">
    <config-file target="*-Debug.plist" parent="com.apple.developer.in-app-payments">
      <array>
        <string>YOUR DEBUG MERCHANT ID HERE</string>
      </array>
    </config-file>
    <config-file target="*-Release.plist" parent="com.apple.developer.in-app-payments">
      <array>
        <string>YOUR RELEASE MERCHANT ID HERE</string>
      </array>
    </config-file>
  </platform>
</plugin>

您当然可以在这里设置其他权利,例如推送通知或您想要的任何内容。

现在当你做一个新的 cordova platform add ios 时,它应该用这些键创建 Entitlements-*.plist,你应该可以开始了。

请记住,Xcode 中的"Capabilities" 选项卡是单独处理的,只是一个GUI 助手。它不会反映这些文件的权利。