MendeleyKitiOS 3.6.2

MendeleyKitiOS 3.6.2

Vincent TourraineAaron Tunney 维护。



  • Mendeley iOS

[弃用] 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]