在安装了cordova-mfp-push插件后,为什么我不能在真正的ios设备上运行cordova应用程序?

时间:2016-08-18 12:45:44

标签: ios iphone xcode cordova ibm-mobilefirst

环境: MAC EL Capitan 10.11.6,xCode版本7.3.1,节点版本:v5.5.0,Cordova版本:6.3.1,cordova-plugin-mfp-push 8.0.2016070407,MobileFirst Platform Foundation命令行界面(CLI):8.0。 0-2016070716

问题: 为什么我不能在安装cordova-mfp-push插件后在真正的ios设备上运行cordova应用程序? ios应用程序在ios模拟器中运行。 谁有同样的问题,你是怎么找到的?

底色: 我有一个使用mfp8 push的cordova应用程序。

由于Apple认证到期问题(https://developer.apple.com/support/certificates/expiration/),我不得不重新创建证书。

问题: 重新获得认证后,我试图在我的设备上运行该应用程序。 但是我得到了认证错误。基于此,我尝试在我的iOS设备上运行其他Cordova应用程序,这是可能的。

根据这一发现,我决定添加和删除cordova插件并检查,这个问题何时会出现。

查找 我的发现是:当我添加cordova-mfp-push插件时,认证问题出现在xcode中。

我想原因是cordova-mfp-push插件会自动打开功能“Backround Modes - >远程通知“

在这里,你可以看到ios app的两种情况:

  1. 在将cordova-mfp-push添加到cordova app之前:
  2. 在xCode中运行app ...确定无法找到MFP push lib,但这很清楚原因。

    enter image description here

    在xCode中没有启用其他选项

    enter image description here

    1. 将cordova-mfp-push添加到cordova应用程序后:
    2. 控制台输出

      IBMs-MBP:MobileClientV3 tsuedbroecker$ cordova plugin add cordova-plugin-mfp-push --save
      Fetching plugin "cordova-plugin-mfp-push" via npm
      Installing "cordova-plugin-mfp-push" for android
      Dependent plugin "cordova-plugin-mfp" already installed on android.
      Installing "cordova-plugin-mfp-push" for ios
      Dependent plugin "cordova-plugin-mfp" already installed on ios.
      Saved plugin info for "cordova-plugin-mfp-push" to config.xml
      IBMs-MBP:MobileClientV3 tsuedbroecker$ cordova prepare
      Running command: /Users/tsuedbroecker/Documents/tsuedbro/MobileBluemix/dev/mfp8beta/CheckApp/MobileClientV3/hooks/after_prepare/010_add_platform_class.js /Users/tsuedbroecker/Documents/tsuedbro/MobileBluemix/dev/mfp8beta/CheckApp/MobileClientV3
      add to body class: platform-android
      add to body class: platform-ios
      will push strings array {"name":"lang","titles":["English (US)","English (UK)"],"values":["en-us","en-gb"]}
      android preferences file was successfully generated
      ios settings bundle was successfully generated
      IBMs-MBP:MobileClientV3 tsuedbroecker$ cordova plugin list
      cordova-plugin-app-preferences 0.99.2 "AppPreferences"
      cordova-plugin-camera 2.2.0 "Camera"
      cordova-plugin-compat 1.0.0 "Compat"
      cordova-plugin-console 1.0.3 "Console"
      cordova-plugin-device 1.1.2 "Device"
      cordova-plugin-dialogs 1.2.1 "Notification"
      cordova-plugin-geolocation 2.2.0 "Geolocation"
      cordova-plugin-globalization 1.0.3 "Globalization"
      cordova-plugin-inappbrowser 1.4.0 "InAppBrowser"
      cordova-plugin-mfp 8.0.2016080320 "IBM MobileFirst Platform Foundation"
      cordova-plugin-mfp-push 8.0.2016070407 "IBM MobileFirst Platform Foundation - Push Notifications"
      cordova-plugin-okhttp 2.0.0 "OkHttp"
      cordova-plugin-spinner-dialog 1.3.1 "SpinnerDialog"
      

      在设备上运行时出现问题:

      enter image description here

      通过插件更改xCode中的配置:

      enter image description here

1 个答案:

答案 0 :(得分:0)

我想在旧的cordova项目已经

感谢致@Idan Adar和@Vivin K的反馈意见。

我做了以下步骤,再次推送,让ios设备上的cordova应用程序运行。

  1. 我在github.com/MobileFirst-Platform-Developer-Center/...上用cordova做了样本。此示例有效。

  2. 我将所有需要的插件添加到工作的cordova推送项目的副本中:

    IBMs-MBP:MobileClientV4 tsuedbroecker $ ./add-cordova-plugins.sh - >开始添加cordova插件     ****** app-preferences ********* 获取插件" cordova-plugin-app-preferences"通过npm 安装" cordova-plugin-app-preferences"对于ios 未找到app-settings.json:创建示例文件 保存了" cordova-plugin-app-preferences"的插件信息。到config.xml     ******相机********* 获取插件" cordova-plugin-camera"通过npm 安装" cordova-plugin-camera"对于ios 获取插件" cordova-plugin-compat"通过npm 安装" cordova-plugin-compat"对于ios 已保存的插件信息为" cordova-plugin-camera"到config.xml     ****** compat ********* 插件" cordova-plugin-compat"已安装在ios上。使它成为顶级。 已保存的插件信息为" cordova-plugin-compat"到config.xml     ****** 安慰 ********* 获取插件" cordova-plugin-console"通过npm 安装" cordova-plugin-console"对于ios 已保存的插件信息为" cordova-plugin-console"到config.xml     ******设备********* 插件" cordova-plugin-device"已安装在ios上。使它成为顶级。 保存了#34; cordova-plugin-device"的插件信息。到config.xml     ******对话********* 插件" cordova-plugin-dialogs"已安装在ios上。使它成为顶级。 保存了#34; cordova-plugin-dialogs"的插件信息。到config.xml     ******地理位置********* 获取插件" cordova-plugin-geolocation"通过npm 安装" cordova-plugin-geolocation"对于ios 依赖插件" cordova-plugin-compat"已安装在ios上。 已保存的插件信息为" cordova-plugin-geolocation"到config.xml     ****** 全球化 ********* 插件" cordova-plugin-globalization"已安装在ios上。使它成为顶级。 已保存的插件信息为" cordova-plugin-globalization"到config.xml     ****** inappbrowser ********* 获取插件" cordova-plugin-inappbrowser"通过npm 安装" cordova-plugin-inappbrowser"对于ios 已保存的插件信息为" cordova-plugin-inappbrowser"到config.xml     ****** spinner-dialog ********* 获取插件" cordova-plugin-spinner-dialog"通过npm 安装" cordova-plugin-spinner-dialog"对于ios 保存了#34; cordova-plugin-spinner-dialog"的插件信息。到config.xml     ****** okhttp ********* 获取插件" cordova-plugin-okhttp"通过npm 安装" cordova-plugin-okhttp"对于ios 已保存的插件信息为" cordova-plugin-okhttp"到config.xml     ****** list cordova插件********* cordova-plugin-app-preferences 0.99.2" AppPreferences" cordova-plugin-camera 2.2.0" Camera" cordova-plugin-compat 1.0.0" Compat" cordova-plugin-console 1.0.3" Console" cordova-plugin-device 1.1.2" Device" cordova-plugin-dialogs 1.2.1"通知" cordova-plugin-geolocation 2.2.0" Geolocation" cordova-plugin-globalization 1.0.3"全球化" cordova-plugin-inappbrowser 1.4.0" InAppBrowser" cordova-plugin-mfp 8.0.2016080320" IBM MobileFirst Platform Foundation" cordova-plugin-mfp-push 8.0.2016070407" IBM MobileFirst Platform Foundation - 推送通知" cordova-plugin-okhttp 2.0.0" OkHttp" cordova-plugin-spinner-dialog 1.3.1" SpinnerDialog" cordova-plugin-splashscreen 3.2.2" Splashscreen" cordova-plugin-whitelist 1.2.2" Whitelist"     ****** cordova准备********* ios设置包已成功生成 - >添加cordova插件DONE!

  3. 我将旧项目中的 www 资源文件夹复制到工作的cordova项目中。

  4. 我还将 Ionic项目文件从我的旧项目复制到了工作的cordova项目中。

  5. 结果如下:

  6. *********步骤***********

    1. 步骤 - >从xCode
    2. 启动应用

      enter image description here

      1. 步骤 - >去配置推送
      2. enter image description here

        1. 步骤 - >检查推送支持
        2. enter image description here

          1. 步骤 - >注册设备
          2. enter image description here

            1. 步骤 - >将推送从mfp服务器发送到已注册的移动设备
            2. enter image description here