[弃用] MendeleyKit —用于Objective-C/Swift的Mendeley SDK
此框架已弃用,不再受支持。
最终发布:2021年2月(3.6.2)
MendeleyKit 3.x 简介
MendeleyKit是一个独立的框架,提供了iOS和macOS应用程序中使用Mendeley API的便捷方法和类。
自从2014年10月推出以来,MendeleyKit经历了很多变化和改进。SDK的3.0版提供了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用于框架
在您的客户端Podfile中使用iOS框架
请在您的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
时出现问题。错误信息是'...在框架中包含非模块头文件...'。CocoaPods为该问题提供了一条完整的消息跟踪,该问题最初出现在Xcode 7.1中。下面的行是一个解决方案,基本上是将生成的pod umbrella header中的#include "MendeleyKitiOS.h"
行注释掉。这似乎可以解决问题。下面的示例演示了如何在Podfile的安装后指令中使用它
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由于其向后兼容性原因,在设置中已经禁用了bitcode生成。您可能需要在使用MendeleyKit框架/库的客户端中进行同样的设置。
入门
MendeleyKit Xcode工作空间包含一个MendeleyKitExample项目。该项目演示了基本功能,例如与Mendeley服务器进行身份验证,获取文档、文件和组的列表。
建议您查阅MendeleyKitExample项目中的类。
此外,GitHub存储库还包括一个MendeleyKitHelp.zip
文件。该文件包含了一个完整的HTML和Docset格式的参考集。
在运行MendeleyKitExample应用程序时,请确保您有
- 客户端ID
- 客户端密钥
- 重定向URI
它们需要在ViewController.h
文件中输入。注意:包含客户端ID、客户端密钥、重定向URI的代码将不接受在拉取请求中!
Mendeley API提供创建您的应用程序客户端ID、密钥和重定向URI的链接。
使用 Mendeley Dev 门户注册客户端
每个与服务器通信的客户端都必须在 Mendeley 开发者门户网站Mendeley API中注册。
注册快速、简单且免费。它将为您提供在您的应用程序中使用 MendeleyKit 时所需的3个基本成分。
- 客户端ID
- 客户端密钥
- 重定向URI
这些值需要与开发者门户中的值完全匹配。重定向 URI 应该是一个完整的 URL,例如 https:///myredirect
(而不是只是 localhost/myredirect
)。这可以避免任何陷阱或「UIWebView 加载中断」消息。
提交代码的方法
我们欢迎您的想法和建议。如果您想做出积极的贡献,例如代码更改/添加
- 代码提交应仅通过拉取请求发送到
Development
分支。 - 您可以从
Development
创建您自己的子分支并发送至该分支。但是,如果您想将其合并到Development
,则需要创建一个拉取请求。 - 注意:包含客户端 ID、客户端密钥、重定向 URI 的代码将不会被接受到拉取请求中!
软件发布
MendeleyKit 的所有官方版本都是在 master
上的标记版本。Mendeley 保留将 Development
中做出的更改合并到 master
的权利。每个版本将包含一个概述更改的 RELEASE
文本文件。
问题报告
请使用 GitHub 上的“问题”功能报告您在使用 MendeleyKit 时遇到的任何问题。有关反馈/建议,请联系:[联系邮箱地址,请不要在此处展示真实的邮箱地址,请替换为你的联系邮箱或使用保护服务]