[弃用] MendeleyKit — Mendeley SDK for Objective-C/Swift
此框架已弃用且不再受支持。
最终版本:2021年2月(3.6.2)
关于 MendeleyKit 3.x
MendeleyKit 是一个独立框架,它为在 iOS 和 macOS 应用程序中使用 Mendeley API 提供方便的函数和方法。
自 2014 年 10 月发布以来,MendeleyKit 经历了许多变化和改进。SDK 的第 3 版为 iOS 和 macOS 动态框架提供构建。最新版本也支持静态库(需要 Xcode 9)。除此之外,还引入了某些 API 的添加(例如,Mendeley 功能 API 旨在启用远程功能)。
SDK 中的大部分代码仍基于 Objective-C。然而,在接下来的几个月里,我们将逐步迁移到 Swift(4.2 或更高版本)。
最低要求
- Xcode 8
- iOS 11.0 或更高
- macOS 10.13 或更高
安装(CocoaPods)
在项目中包含MendeleyKit最简单的方式是使用CocoaPods。共有3个模块:一个是跨平台的,可以用作静态库;其余的是针对特定平台的,可以用作动态框架
MendeleyKit.podspec
:iOS/macOS静态库(需要Xcode 9和CocoaPods 1.5)MendeleyKitiOS.podspec
:iOS动态框架MendeleyKitOSX.podspec
:macOS动态框架
CocoaPods针对框架的安装
使用iOS框架的客户Podfile
在Podfile中使用以下命令
use_frameworks!
pod 'MendeleyKitiOS'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'MendeleyKitiOSFramework']
#add any other build settings
end
end
end
(对于小于0.38版本的CocoaPods,使用 installer.project.targets.each
而不是 installer.pods_project.targets.each
)
注意:使用 use_frameworks!
意味着所有包含的依赖项都将被视为框架。在此阶段,CocoaPods中没有提供选项来分别标记某些模块为框架和其他为静态库。
操作完成后,执行
pod install
注意:CocoaPods在其Pods文件夹中生成一个umbrella header。这已知的在编译或进行 pod lint MendeleyKitiOS.podspec
时会引起问题。错误消息是 '...include of non-modular header in framework...'。CocoaPods有一整套针对此问题的信息,该问题首次出现在Xcode 7.1中。下面的行是一个解决方案,它基本上注释掉了pod生成的umbrella header中的 #include "MendeleyKitiOS.h"
行。这似乎解决了问题。下面的示例显示了如何在Podfile中的post-install指令中使用它。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'MendeleyKitiOSFramework']
config.build_settings['ARCHS'] = '$(ARCHS_STANDARD)'
end
end
`sed -i '' 's,\#import \"MendeleyKitiOS.h\",\/\/#import \"MendeleyKitiOS.h\",g' 'Pods/Target Support Files/MendeleyKitiOS/MendeleyKitiOS-umbrella.h'`
end
或者,您也可以从我们的GitHub仓库克隆公共MendeleyKit。
从旧的MendeleyKit版本升级
更新 Objective-C 框架中的 headers/import
使用 MendeleyKitiOS 框架意味着你需要更改你的 headers。MendeleyKit 中的所有公共 headers 都包含在框架的根头文件 MendeleyKitiOS.h
中。请将代码中所有显式的 MendeleyKit 导入替换为这一个头文件。
#import <MendeleyKitiOS/MendeleyKitiOS.h>
你可能希望使用更现代的语法
@import MendeleyKitiOS;
为静态库使用更新 headers/import
注意:如果你使用的是 MendeleyKit 的静态库版本,需要使用以下语法(因为工作空间已启用模块在构建设置中)
#import <MendeleyKit/MendeleyKit.h>
客户端构建设置
- 客户端应将
启用模块
设置为是
- MendeleyKit 当前出于向后兼容的考虑,在设置中禁用了位码生成。你可能需要在使用 MendeleyKit 框架/库的客户端中也这样做。
入门
MendeleyKit Xcode 工作区包括一个 MendeleyKitExample 项目。该项目演示了基本功能,例如与 Mendeley 服务器进行身份验证、获取文档、文件和组列表。
建议查阅 MendeleyKitExample 项目中包含的类。
此外,GitHub 仓库还包含一个 MendeleyKitHelp.zip
文件。该文件包含 HTML 和 Docset 格式的完整参考集。
在运行 MendeleyKitExample 应用时,请确保你有
- 客户端 ID
- 客户端密钥
- 重定向 URI
它们需要在 ViewController.h
文件中输入。注意:包含客户端 ID、客户端密钥、重定向 URI 的代码将不会在拉取请求中接受!
Mendeley API 提供创建应用客户端 ID、密钥和重定向 URI 的链接。
使用Mendeley开发者门户注册客户端
与服务器通信的每个客户端都需要在Mendeley开发者门户进行注册 Mendeley API。
注册快速、简单且免费。这将为您使用MendeleyKit在您的应用中提供所需的3个基本要素。
- 客户端 ID
- 客户端密钥
- 重定向 URI
这些值必须与开发门户中的值 完全一致。重定向URI应该是完整的URL,例如 https:///myredirect
(而不是只是 localhost/myredirect
)。这可以避免在UIWebView中出现任何陷阱或“框架加载中断”消息。
如何提交代码
我们欢迎您的想法和建议。如果您想做出积极贡献,例如代码更改/添加
- 代码提交仅应通过拉取请求(pull requests)发送到
Development
分支。 - 您可以从
Development
创建自己的子分支并随时提交。但是,如果要将其合并到Development
,则需要创建拉取请求。 - 注意:包含客户端ID、客户端密钥、重定向URI的代码将被拒绝在拉取请求中!
软件发布
MendeleyKit的所有官方版本都是基于master
的标记版本。Mendeley保留将Development
中做出的更改合并到master
中的权利。每个版本将包含一个描述更改的RELEASE
文本文件。
问题报告
请使用GitHub上的“问题”功能报告您在使用MendeleyKit时遇到的任何问题。对于反馈/建议,请联系:[email protected]