如何通过config.xml为Ionic / Cordova集成(第三方)SDK?

时间:2016-03-01 22:48:32

标签: cordova ionic-framework cordova-plugins

我使用this plugin并将其整合为this demo-application。那使用Star SDK

但是,当我进行Ionic构建时,如何在 config.xml 中更改SDK总是添加/加载的内容?因为现在当我们使用不同的MacBook构建时,我们都必须将它重新添加到我们的项目中。

它现在特定于StarIO SDK,但我认为其他人在添加SDK时也可能遇到同样的困难。

编辑:每次我从Ionic项目归档iOS应用之前,我都必须手动执行以下操作:

  • 在我的Xcode项目中包含框架和包(SDK)
  • 链接一些默认框架/库,例如:ExternalAccessory.framework
  • info.plist
  • 中设置外部附件协议

这是很多工作,特别是当我们每周有多个构建时。我们并不总是在同一台机器上部署,而且很难忘记一步。

我看到很多Cordova软件包,例如,当没有Podfile时你需要手动完成一些事情,或者它总是需要一些配置。

3 个答案:

答案 0 :(得分:3)

这是StarIOPlugin创建者应该做的事情而不是告诉您手动添加Star SDK。首先在StarIOPlugin的github存储库中添加一个问题。

如果作者不想这样做,那么您可以分叉插件并自行更新。

首先应将StarIO.framework添加到src/ios文件夹

现在您只需编辑plugin.xml文件

就可以了

首先将此行添加到plugin.xml以将框架复制到Xcode项目

<source-file src="src/ios/StarIO.framework" framework="true" />

然后添加这两行以添加蓝牙和ExternalAccesory框架

<framework src="CoreBluetooth.framework" />
<framework src="ExternalAccesory.framework" />

最后,写一下info.plist使用

<config-file target="*-Info.plist" parent="UISupportedExternalAccessoryProtocols">
    <array>
        <string>jp.star-m.starpro</string>
    </array>
</config-file>

我没有测试过,但应该足够了。

答案 1 :(得分:1)

我是最初贡献iOS支持的开发人员,我不明白为什么你需要做多次提到的配置。您是否从项目中删除并添加了iOS平台?这是应该造成这种情况的唯一原因。

有几个原因我没有在原始PR中包含该库。但我的推理很可能是有缺陷的。

这是我在想的......

  • 我不确定在其他开源项目中包含他们的库是否符合Star软件许可证。
  • 包含该框架将永远要求贡献者保持框架与Star
  • 的版本保持同步
  • iOS有多个框架可以使用这个插件,一个用于常规蓝牙打印机,另一个用于mPOP。因此,包括其中一个框架可能会限制用户与所有可能平台集成的能力。

无论如何,应该改进文档以帮助其他开发人员遇到同样的问题。

答案 2 :(得分:-1)

我想你必须在这里做一些手工工作。如果它是一个简单的命令,您可以在package.json中创建一个“脚本”并使用“npm run script_name”运行它。

根据您的特定需求,您还可以向gulpfile.js添加任务(这由离子构建使用)或编写一个JS脚本,该脚本通过特定的Cordova生命周期步骤执行。 Check this out了解有关此问题的详细信息。默认的离子项目有example hook你可以查看灵感。