IBM MobileFirst Platform Foundation(MFP)和Bluemix IMFCore SDK中的重复符号
尝试在MyUnicity iOS项目中同时使用mobilefirst平台SDK和IBM Bluemix通知SDK时,我们遇到了一些问题。 MFP和IMFCore库之间存在许多重复的符号,并且我们项目的构建在链接阶段失败(参见下面的示例:总共我们得到“121个架构arm64的重复符号”)。 iOS上的Bluemix Push通知需要IMFCore和IMFPushfunction:
重复符号_OBJC_IVAR _ $ _ WLAFQueryStringPair._field in:…复制符号_WLAFQueryStringPairsFromDictionary in:…重复符号_OBJC_CLASS _ $ _ WLDeviceAuthManager in:… … ld:121复制符号用于体系结构arm64 clang:错误:链接器命令失败并退出代码1(使用-v查看调用)
我们已经看到了移动第一平台SDK和IBM Localization SDK的类似情况(请参阅: https : //developer.ibm.com/answers/questions/176115/ibmlocation-ios-sdk-worklight-api-duplicate-symbol .html )。 在这种情况下,答案是使用来自移动第一平台的推送通知,但在我们的情况下,这是不可能的,因为推送通知服务由位于移动第一平台之外的MACM使用。
有一些一般性建议可以解决这个问题,但这些解决方案看起来更像是黑客或涉及可能难以在其他开发环境中复制的步骤:
1)手动删除静态库中的符号
2)使用命名空间依赖项(涉及访问相关库)
3)使用其他链接选项
还有一个替代解决方案:使用xtify在MACM中进行推送通知,而不是使用bluemix推送通知(MACM支持Bluemix Push或Xtify作为推送通知解决方案)。
这里最好的行动是什么?
谢谢
我认为最好的选择是最适合您的项目需求,时间框架和实现它的技术复杂性。
开发团队一直致力于为Bluemix Mobile Services开发Swift SDK,这应该允许集成到MFPF而不会出现重复的符号错误。
SDK和示例仍处于开发阶段,但您可以开始尝试我们当前正在开发的使用新Swift SDK的Bluemix Push Notification示例。 请查看bms-samples-swift-hellopush存储库的开发分支。
我能够将MFPF SDK集成到此示例中,而不会出现您引用的重复符号错误。 请注意,SDK处于预发布阶段,因此仍处于试验阶段。 SDK发布时,我可以让您及时了解最新信息。