MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目
Posted
技术标签:
【中文标题】MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目【英文标题】:MobileFirst Platform CLI unable to build xcode 7.2 project with JSON Store 【发布时间】:2015-12-16 10:32:51 【问题描述】:我有一个包含 mfp JSON 存储的 cordova 项目。当我用 xcode 7.2 构建项目时(启用 Bitcode 设置为 false),它会遇到错误:
"_EVP_CIPHER_CTX_cleanup", referenced from:
+[JSONStoreSecurityUtils _doEncrypt:key:withIV:] in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreSecurityUtils.o)
+[JSONStoreSecurityUtils _doDecrypt:key:withIV:withCorrectIVConversion:withCorrectKeyConversion:] in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreSecurityUtils.o)
[...50 further errors...]
"_sqlite3_step", referenced from:
___36-[JSONStoreDatabaseManager execute:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)
___35-[JSONStoreDatabaseManager update:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)
___47-[JSONStoreDatabaseManager deleteFromDatabase:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)
___47-[JSONStoreDatabaseManager selectInto:withSQL:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)
___50-[JSONStoreDatabaseManager selectAllInto:withSQL:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)
___35-[JSONStoreDatabaseManager insert:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
看起来它没有架构 arm64 的相关 JSONStore 库。如果我尝试在模拟器上运行,它会失败并找不到架构 x86_64。
如果您想重现该问题,请按照以下步骤操作:
我使用了来自 mfp.help 的 project 添加了ios环境:mfp cordova platform add 多功能一体机推送 在 xcode 中打开项目,禁用 bitcode 并在设备/模拟器上运行mfp cordova 插件列表显示如下:
cordova-plugin-mfp 7.1.0 "IBM MobileFirst Platform Foundation"
cordova-plugin-mfp-jsonstore 7.1.0 "IBM MobileFirst Platform Foundation - JSONStore"
cordova-plugin-mfp-push 7.1.0 "IBM MobileFirst Platform Foundation - Push Notifications"
org.apache.cordova.device 0.2.13 "Device"
org.apache.cordova.dialogs 0.2.11 "Notification"
org.apache.cordova.geolocation 0.3.11 "Geolocation"
org.apache.cordova.globalization 0.3.3 "Globalization"
org.apache.cordova.inappbrowser 0.5.4 "InAppBrowser"
org.apache.cordova.network-information 0.2.14 "Network Information"
我尝试通过 mfp cordova plugin update 更新插件,但没有帮助。
我使用这个版本的 cli: $ mfp -v 7.1.0.00.20151023-1449
【问题讨论】:
【参考方案1】:请在此处找到如何解决问题的说明
https://www.dropbox.com/s/iiesbpgrd7bj0c8/iOSfix.mp4?dl=0
【讨论】:
【参考方案2】:使用相同的CLI版本,新建一个Cordova应用,添加iOS平台和JSONStore插件,Xcode 7.2中的构建过程顺利通过。这可能是所提供样本的特定问题。
由于您也是 IBM 员工,因此我建议您直接通过 Notes 联系 Andrii Vasylchenko,因为他会维护此示例并可能对其进行更新。
【讨论】:
我在我的机器上做了同样的事情,它也有效。所以,我想你是对的。我将与 Andrii 核对以修复样本。以上是关于MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目的主要内容,如果未能解决你的问题,请参考以下文章
MobileFirst Platform Studio 6.3.0 - 将 mobilefirst 应用程序部署到开发服务器期间出错
IBM MobileFirst Platform 中的证书固定
IBM MobileFirst Platform Operations Console:找不到运行时
在 IBM 容器上运行 IBM MobileFirst Platform Foundation