0

我遇到了 Worklight 推送通知的问题。

我遵循了 Worklight 5.0.5,Module_41_-_Push_Notifications 的所有步骤。PDF 文件,并做了 Push 演示。

我面临一个错误,说明:

[错误] 无法订阅,通知令牌未在服务器上更新

尽管在控制台上它确实显示了设备 ID。我的假设是WL.Client.Push.onReadyToSubscribe没有被解雇。

有人有类似的问题。 https://www.ibm.com/developerworks/forums/thread.jspa?threadID=456501

我已经设定

<pushSender password="Your_Password"/> 

并多次重新生成和部署应用程序,但没有任何好处。

欢迎任何帮助或建议。

Environment:
WL 5.0.5 & 5.0.6
Xcode 4.2
iPhone (iOS 5.1 and 6.1)

我在本地 Mac 上再次尝试,通过 iPhone 4、iOS 5.1 进行测试。通过设备运行并连接到 Studio 码头时。我越来越低了。

Mar 27 11:23:49 Appsdev-iPhone PushApplication[211] <Warning>: Applications are expected to have a root view controller at the end of application launch
Mar 27 11:23:49 Appsdev-iPhone PushApplication[211] <Warning>: Web resources integrity test is disabled.
Mar 27 11:23:49 Appsdev-iPhone kernel[0] <Debug>: launchd[211] Builtin profile: container (sandbox)
Mar 27 11:23:49 Appsdev-iPhone kernel[0] <Debug>: launchd[211] Container: /private/var/mobile/Applications/5DA837C4-F039-4795-9509-C98383E40C68 [69] (sandbox)
Mar 27 11:23:49 Appsdev-iPhone PushApplication[211] <Warning>: Multi-tasking -> Device: YES, App: YES
Mar 27 11:23:51 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] ondeviceready event dispatched
Mar 27 11:23:51 Appsdev-iPhone PushApplication[211] <Warning>: {
        appVersionPref = "1.0";
        freeSpace = 14291787776;
        wlSkinLoaderChecksum = "(null)";
        wlSkinName = default;
    }
Mar 27 11:23:51 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] wlclient init started
Mar 27 11:23:51 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Read cookies: null
Mar 27 11:23:51 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] CookieMgr read cookies: {}
Mar 27 11:23:51 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Request [http://172.20.10.2:8080/apps/services/api/PushApplication/iphone/init]
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Request [login]
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Request [http://172.20.10.2:8080/apps/services/api/PushApplication/iphone/init]
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: DeviceAuthManager:getWorklightUniqueDeviceId --> returning UUID from the keychain
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Request [http://172.20.10.2:8080/apps/services/api/PushApplication/iphone/init]
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Clearing notification subscriptions.
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] Send new server notification token id.
Mar 27 11:24:12 Appsdev-iPhone SpringBoard[15] <Warning>: No valid 'aps-environment' entitlement string found for application 'PushApplication': (null). Notifications will not be delivered.
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] response [http://172.20.10.2:8080/apps/services/api/PushApplication/iphone/init] success: /*-secure-
    {"userPrefs":{},"WL-Authentication-Success":{"wl_remoteDisableRealm":{"userId":"null","attributes":{},"isUserAuthenticated":1,"displayName":"null"},"PushAppRealm":{"userId":"aahad","attributes":{},"isUserAuthenticated":1,"displayName":"aahad"},"wl_antiXSRFRealm":{"userId":"3l6ap8g9t4h9uk5rb1fmqfok15","attributes":{},"isUserAuthenticated":1,"displayName":"3l6ap8g9t4h9uk5rb1fmqfok15"},"wl_deviceNoProvisioningRealm":{"userId":"57B167E4-1258-4AD7-9DA1-92DC66A0451E","attributes":{"mobileClientData":"com.worklight.core.auth.impl.MobileClientData@6a76de98"},"isUserAuthenticated":1,"displayName":"57B167E4-1258-4AD7-9DA1-92DC66A0451E"}},"notificationSubscriptionState":{},"gadgetProps":{"directUpdate":{"updateUnpackedSize":1014255,"availableSkins":["default"],"checksum":4077143359,"updateSize":290080},"ENVIRONMENT":"iphone"},"userInfo":{"wl_authenticityRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"SampleAppRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_remoteDisableRealm":{"userId":"null","attributes":{},"isUserAuthenticated":1,"displayName":"null"},"PushAppRealm":{"userId":"aahad","attributes":{},"isUserAuthenticated":1,"displayName":"aahad"},"wl_antiXSRFRealm":{"userId":"3l6ap8g9t4h9uk5rb1fmqfok15","attributes":{},"isUserAuthenticated":1,"displayName":"3l6ap8g9t4h9uk5rb1fmqfok15"},"WorklightConsole":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_deviceAutoProvisioningRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_deviceNoProvisioningRealm":{"userId":"57B167E4-1258-4AD7-9DA1-92DC66A0451E","attributes":{"mobileClientData":"com.worklight.core.auth.impl.MobileClientData@6a76de98"},"isUserAuthenticated":1,"displayName":"57B167E4-1258-4AD7-9DA1-92DC66A0451E"},"myserver":{"userId":"aahad","attributes":{},"isUserAuthenticated":1,"displayName":"aahad"},"wl_anonymousUserRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null}}}*/

Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] wlclient connect success
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] before: app init onSuccess
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] after: app init onSuccess
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [LOG] wlclient init success
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: Could not register for remote notifications: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0xfeafba0 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}
Mar 27 11:24:12 Appsdev-iPhone PushApplication[211] <Warning>: [ERROR] Error while trying to retrieve device token from the mobile operating system.

请参阅附加的快照。在此处输入图像描述 在此处输入图像描述

生成APNS的步骤:

  • 登录 Apple Account 选择 App ID -> 配置 -> 启用推送

  • 选定的开发推送 SSL 证书

  • 先生成新的 CSR,然后获得证书
  • 双击证书并从钥匙串中选择这个新证书及其私钥,然后右键单击并导出并保存为 apns-certificate-sandbox.p12
  • 复制到 Worklight 中,位于 application-descriptor.xml 同一级别的 App 文件夹的根目录中

  • 提供 pushSender 密码和 securityTest

谢谢

4

2 回答 2

1

@伊丹,

现在解决了。有两个原因:

  1. 在 worklight App 文件夹中复制 APNS 证书后,您必须重新生成和部署所有证书。然后,您必须在 WL 控制台上部署 wlapp ......这是不做的。
  2. 我为 iPhone 环境使用了错误的自定义安全领域,阻止了 WL 服务器响应设备。

希望这些信息能帮助其他面临类似问题的人。

谢谢

于 2013-04-06T08:08:28.470 回答
0

确保您拥有:

  1. 将 iPhone 环境添加到 application-descriptor.xml(使用 Worklight 提供的向导)
  2. 将移动安全测试添加到 iphone 环境(查看它是如何为 Android 环境完成的;复制它)
  3. 将 .p12 证书放在应用程序文件夹中(与环境文件夹同级)
  4. 证书的名称是“apns-certificate-sandbox.p12”(用于开发)或“apns-certificate-production.p12”(用于生产)
  5. 在 pushSender 元素中添加了正确的密码

登录应用程序后,您应该会收到一条警报,说明您可以订阅。

为确保您已正确设置开发环境,请遵循本指南:了解和设置在开发环境中使用 iOS 设备和 Apple 推送通知服务 (APNS) 所需的工件

于 2013-03-27T10:58:48.563 回答