- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将一个大型 iOS 应用程序模块化,比如将 MyAppWithDatabase
分成两个模块(即项目)。因此,我将在同一工作区 MyApp.xcworkspace
下将一个主项目 MyApp
作为主机,并将链接的 MyDataPlatform
作为框架。当SQLCipher
pod已针对目标 MyAppWithDatabase
集成,它工作得很好,但由于在重构中所有数据库相关代码都被移至 MyDataPlatform
框架中,我想集成 SQLCipher
code> pod 仅用于框架,以保持内部加密机制从主机应用程序中抽象出来。现在,当我集成框架时,它开始产生以下构建错误。
Implicit declaration of function ‘sqlite3_key’ is invalid in C99
请注意,此问题是由 MyApp
源代码的一条语句作为警告产生的,但 Xcode 构建将其视为错误,
sqlite3_key(_db, [password UTF8String], (int)password.length);
我的上述行仍然保留在 MyApp
中,因为将数据库相关代码逐渐移至 MyDataPlatform
需要时间,并且我假设 SQLCipher header 仍然可用在主机应用程序中作为链接中的相关框架。
我已经经历了许多建议solutions在互联网上,但它们都不适合我的情况。我怀疑大多数解决方案是否仅针对主机应用程序集成SQLCipher
。当我遇到框架错误时,我该怎么办?
下面是我的 pod 文件的结构(重构后),
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
workspace 'MyApp.xcworkspace'
target 'MyApp' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
pod 'Google/Analytics'
pod 'GoogleMaps'
# ...
target 'MyAppTests' do
inherit! :search_paths
end
end
target 'MyDataPlatform' do
project 'MyDataPlatform/MyDataPlatform.xcodeproj'
pod 'SQLCipher', '~>3.4.2'
#https://discuss.zetetic.net/t/ios-11-xcode-issue-implicit-declaration-of-function-sqlite3-key-is-invalid-in-c99/2198/53
post_install do | installer |
print "SQLCipher: link Pods/Headers/sqlite3.h"
system "mkdir -p Pods/Headers/Private && ln -s ../../SQLCipher/sqlite3.h Pods/Headers/Private"
end
end
以前 SQLCipher
集成在 MyAppWithDatabase
下,即
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
target 'MyAppWithDatabase' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
pod 'Google/Analytics'
pod 'GoogleMaps'
pod 'SQLCipher', '~>3.4.2'
# ...
target 'MyAppWithDatabaseTests' do
inherit! :search_paths
end
end
最佳答案
在应用程序中定义SQLITE_HAS_CODEC
后,我的问题得到了解决,
MyApp -> Build Settings -> Other C Flags
在应用程序中添加 SQLITE_HAS_CODEC=1
后,另一个解决方案也可以工作,
MyApp -> Build Settings -> Preprocessor Macros
关于ios - Xcode 构建错误 - "Implicit declaration of function ‘sqlite3_key’ 在 C99 中无效”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525583/
我在 ArangoDB 中有一个图表。如何创建具有指定_key值的边?我的代码: edge_attributes = {"_key": "ab", "count": 0} graph.createEd
如何使用 AQL 查询在 ArangoDB 中接收最后插入的 _key? 我将项目放入集合中,以下元素必须包含 _key 创建的元素。我如何获得这个_key? 最佳答案 关于这个问题的更新: 从 Ar
我在名为 test 的集合中有以下文档: [ { "_key": "2469", "_id": "test/2469", "_rev": "_Ujegqfu---",
我正在使用 Arangodb 和 Node.js。我正在尝试使用数据库中的edgecollection。我已经从 npm 下载了 arangojs 并尝试了示例代码。 // ## Assigning
我遇到编译错误, required from 'std::pair, bool> std::_Rb_tree::_M_insert_unique(_Arg&&) [with _Arg = Soluti
我是一名优秀的程序员,十分优秀!