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

时间:2017-04-20 18:58:42

标签: cordova plist phonegap-build entitlements phonegap

我正在尝试使用Phonegap版本使用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中启用Apply Pay权利,因为我正在使用PC。

我知道你可以像我在这里一样直接编辑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>  

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

1 个答案:

答案 0 :(得分:4)

似乎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中的“功能”标签是单独处理的,只是一个GUI助手。它不会反映这些文件的权利。