Phonegap 推送插件:构建 iOS 模板错误
Posted
技术标签:
【中文标题】Phonegap 推送插件:构建 iOS 模板错误【英文标题】:Phonegap push plugin: builgind iOS template error 【发布时间】:2017-12-27 12:13:46 【问题描述】:我正在我的应用上使用 FCM 开发推送通知功能,适用于 android 和 ios。
After I successuflly managed the push notifications on Android devices,我试图在 iOS 上做同样的事情。
所以,我开始创建模板,就像我为 Android 制作的一样。
但是,创建模板时出现错误:
开始为 ios 构建
正在上传 iOS 密钥...
完成
正在上传应用模板...
完成
构建状态:待定(13 次尝试)
构建状态:错误(“plugman install --platform ios --project /tmp/gimlet/2719563/project --plugin phonegap-plugin-push@1.9.0”:获取插件“phonegap-plugin-通过 npm 推送@1.9.0"
在“1.9.0”为 ios 安装“phonegap-plugin-push”
无法安装“phonegap-plugin-push”:未定义 不明确的 )
正在删除 iOS 密钥...
完成
正在删除应用程序模板...
完成
错误:构建状态:错误(“plugman install --platform ios --project /tmp/gimlet/2719563/project --plugin phonegap-plugin-push@1.9.0”:获取插件“phonegap- plugin-push@1.9.0" 通过 npm
在“1.9.0”为 ios 安装“phonegap-plugin-push”
无法安装“phonegap-plugin-push”:未定义 不明确的 )
这是我的 config.xml 文件:
<widget id="com.devexpress.apptemplate" version="1.0" versionCode="1">
<name>ApplicationTemplate</name>
<description>Template</description>
<preference name="phonegap-version" value="cli-6.4.0" />
<preference name="permissions" value="none" />
<preference name="prerendered-icon" value="true" />
<preference name="android-windowSoftInputMode" value="adjustPan" />
<preference name="SplashScreen" value="splash" />
<preference name="SplashScreenDelay" value="60000" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="FadeSplashScreen" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="android-minSdkVersion" value="15" />
<preference name="android-targetSdkVersion" value="22" />
<plugin name="cordova-plugin-geolocation" />
<plugin name="cordova-plugin-splashscreen" onload="true" />
<plugin name="cordova-plugin-whitelist" />
<plugin name="cordova-plugin-ios-longpress-fix" />
<plugin name="cordova-plugin-statusbar" onload="true" />
<plugin name="phonegap-plugin-push" spec="1.9.0"/>
<access origin="*" />
</widget>
config.xml 文件在项目 APP.mobile 中(不在 APP.shared 中)。我不明白为什么我可以为 Android 构建原生模板(而且它的工作原理很吸引人)而在 iOS 中却不行。
更新:这里总结了所有步骤:https://programmingistheway.wordpress.com/2017/07/19/devextremephonegap-how-to-manage-push-notifications-with-fcm/
【问题讨论】:
请使用cordova平台检查您的ios版本。可能是你的ios版本不支持插件需要ios版本。 解决了在 config.xml 中添加“senderID”参数的问题。我注意到它在这里对 Android 没用,但对 iOS 来说是强制性的。 是的,你也必须在 ios build 中写入 senderId。否则会产生错误。 【参考方案1】:要使用 FCM,您应该使用插件的 v2.x.x 版本
最新发布的版本是v2.0.0-rc5
,试试这个,或者甚至使用cordova plugin add https://github.com/phonegap/phonegap-plugin-push/
从github安装
在您的 config.xml 中,您必须像这样添加 google-services json 和 plist 文件
<platform name="android">
<resource-file src="google-services.json" target="google-services.json" />
</platform>
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
</platform>
在您的其他问题中,您似乎正在使用 github url,不确定您为什么回到 1.9.0
【讨论】:
我回到了 1.9.0,因为在最新版本中,它没有创建模板,给我一个错误。 DevExpress 我建议我使用 1.9.0,然后我就可以创建模板了。 如果你想在 iOS 上使用 FCM,你必须使用 v2.xx,在 Android 中,谷歌使 FCM 和 GCM 以某种方式兼容,因此它也适用于 1.9.0,但这不会在 iOS 上发生.您必须将 cli 设置为 7.0.1 ~ 和 ^ 是 semver 字符,~ 表示安装最后一个补丁版本 (1.10.x),^ 表示安装最后一个次要版本 (1.x.x),更多信息请参见 ***.com/questions/44547114/… 我还在度假,但刚刚看到这篇关于Phonegap build support 7.0.1 和push plugin 2.0.0 blog.phonegap.com/…的博文,也许对你有帮助 有一个注释但是 PGB 上的 iOS 4.4.0 (cli-7.0.1) 现在已经针对 CB-13112 进行了修补,所以现在应该可以使用 cli-7.0.1 推送 2.0.0 .以上是关于Phonegap 推送插件:构建 iOS 模板错误的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 上单击时,Phonegap 插件推送通知保留在托盘中