1

在 MyUnicity iOS 项目中尝试同时使用 mobilefirst 平台 SDK 和 IBM Bluemix 通知 SDK 时,我们遇到了一些问题。MFP 和 IMFCore 库之间存在许多重复符号,并且我们的项目构建在链接阶段失败(请参见下面的示例:我们总共得到“121 个重复符号用于架构 arm64”)。iOS 上的 Bluemix 推送通知需要 IMFCore 和 IMFPush 功能:

重复符号 _OBJC_IVAR_$_WLAFQueryStringPair._field 在:...重复符号 _WLAFQueryStringPairsFromDictionary 在:...重复符号 _OBJC_CLASS_$_WLDeviceAuthManager 在:... ... ld:架构 arm64 的 121 个重复符号 clang:错误:链接器命令失败并退出代码 1(使用 -v 查看调用)

我们已经看到移动优先平台 SDK 和 IBM 本地化 SDK 发生了类似的情况(参见:https ://developer.ibm.com/answers/questions/176115/ibmlocation-ios-sdk-worklight-api-duplicate-symbol .html)。在这种情况下,答案是使用来自移动优先平台的推送通知,但在我们的例子中,这是不可能的,因为推送通知服务由位于移动优先平台之外的 MACM 使用。

有一些一般性的建议可以解决这个问题,但这些解决方案看起来更像是 hack,或者涉及可能难以在其他开发环境中复制的步骤:

1)从静态库中手动删除符号

2)使用命名空间依赖项(涉及访问相关库)

3) 其他链接选项的使用

还有一个替代解决方案:在 MACM 中将 xtify 用于推送通知,而不是使用 bluemix 推送通知(MACM 支持 Bluemix Push 或 Xtify 作为推送通知解决方案)。

这里最好的做法是什么?

谢谢

4

2 回答 2

0

开发团队一直在为 Bluemix 移动服务开发一个 Swift SDK,它应该允许集成到 MFPF 而不会出现重复符号错误。

SDK 和示例仍在开发中,但您可以开始试验我们目前正在开发的使用新的 Swift SDK 的 Bluemix Push Notification 示例。请查看bms-samples-swift-hellopush存储库的开发分支。

我能够将 MFPF SDK 集成到此示例中,而不会出现您引用的重复符号错误。请注意,SDK 处于预发布阶段,因此仍处于试验阶段。当 SDK 发布时,我会及时通知您。

于 2016-03-18T16:25:55.743 回答
0

我认为最好的选择是最适合您的项目需求、时间框架和实现它的技术复杂性的选择。

于 2016-03-08T09:06:03.527 回答