科尔多瓦项目。 Firebase插件(自定义插件)。我试图找出指定插件在添加平台或插件时将使用的自定义资源详细信息的正确方法。
例如,适用于Android的API_KEY,APP_ID和google-service.json以及适用于iOS的GoogleServices-Info.plist
我认为在plugin.xml
中有API_KEY和APP_ID<platform name="android">
<preference name="API_KEY"/>
<preference name="APP_ID"/>
<config-file parent="/resources" target="res/values/strings.xml">
<string name="google_app_id">$APP_ID</string>
<string name="google_api_key">$API_KEY</string>
</config-file>
</platform>
因此,当添加插件时,我会cordova plugin add myfirebaseplugin --variable APP_ID=blah --variable API_KEY=blah
但我尚未解决的是安装google-service.json或Google-Service.Info.plist的正确方法
我在--variable IOS_FIREBASE_CONFIG="<path>"
尝试了<source-file src="$IOS_FIREBASE_CONFIG" target-dir="$PACKAGE_NAME/Resources"/>
并使用plugin.xml
,但似乎源文件不会扩展$ IOS_FIREBASE_CONFIG。
".../plugins/firebase/$IOS_FIREBASE_CONFIG" not found!
插件可以根据我传入的变量处理配置设置吗?或者这是(复制配置文件)config.xml在平台添加期间会处理的东西吗?
我已经查看了几个firebase插件以及它们如何处理它,它们似乎已经出来并告诉您手动将配置文件复制到平台文件夹中,这感觉不对。
作为最后的手段,我可以为平台添加编写一个钩子。
答案 0 :(得分:7)
如果您使用的是Cordova CLI 7,则可以在config.xml中使用resource-file
标记
您无需执行任何操作,只需将其记录下来,以便用户将文件放在项目的根目录中并将其添加到config.xml中
对于cordova-android 6.x.x及更早版本
<platform name="android">
<resource-file src="google-services.json" target="google-services.json" />
</platform>
对于cordova-android 7.x.x
<platform name="android">
<resource-file src="google-services.json" target="app/google-services.json" />
</platform>
适用于iOS
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
</platform>