Evernote Cloud SDK for iOS

Overview

Evernote Logo

Evernote Cloud SDK 3.0 for iOS

This is the official Evernote SDK for iOS. To get started, follow the instructions bellow. Additional information can be found in the Getting Started Guide.

More information about our developer program can be found here: Evernote Developers

Installation

Cocoapods

pod 'EvernoteSDK', '~> 3.0'

Manually

Drag & Drop evernote-sdk-ios.xcodeproj into your project.

Now open your target's Build Phases and add the following items to your Link Binary With Libraries section:

  • EvernoteSDKiOS.framework
  • MobileCoreServices.framework
  • libxml2.dylib

Configuration

Users will have the fastest OAuth experience in your app if they already have the Evernote app installed. When this is the case, the authentication process will bounce to the Evernote app and authenticate without the user needing to enter their credentials at all. To enable this add following two properties to your Info.plist:

Note When your app is in development and uses the "sandbox" environment, authentication will always use web-based OAuth, even if you have the Evernote app installed. After upgrading to a production consumer key, be sure to test authentication again with the Evernote app.

Usage

API Token

Register for an Evernote API key (and secret)...

You can do this on the Evernote Developers portal page. Most applications will want to do this-- it's easy and instant. During development, you will point your app at Evernote's "sandbox" development environment. When you are ready to test on production, we will upgrade your key. (You can create test accounts on sandbox by just going to sandbox.evernote.com).

...or get a Developer Token

You can also just test-drive the SDK against your personal production Evernote account, if you're afraid of commitment or are building a one-off tool for yourself. Get a developer token here. Make sure to then use the alternate setup instructions given in the "Key Setup" section below.

Import

Simply import the SDK inside your project:

import EvernoteSDK
#import <EvernoteSDK/EvernoteSDK.h>

API Key Setup

ENSession.setSharedSessionConsumerKey(<Consumer Key>, consumerSecret:<Consumer Secret>, optionalHost: ENSessionHostSandbox)

// using a developer token:
// ENSession.setSharedSessionDeveloperToken(<Dev Token>, noteStoreUrl: <Note Store URL>)
[ENSession setSharedSessionConsumerKey:<Consumer Key> consumerSecret:<Consumer Secret> optionalHost:ENSessionHostSandbox];

Authentication

ENSession.shared.authenticate(with: self, preferRegistration: false, completion: { (_error: Error?) in

})
[[ENSession sharedSession] authenticateWithViewController:self preferRegistration:NO completion:^(NSError *authenticateError) {

}];

Documentation

Comments
  • CocoaPod import issue - ENSDK.h file not found

    CocoaPod import issue - ENSDK.h file not found

    Used latest CocoaPod (with use_frameworks!) & Xcode 6.4 with Swift, and when printing out any thing in LLDB, if I import ENSDK in the Swift-ObjC Bridging header like:

    import <ENSDK/ENSDK.h>

    I get the following errors:

    error: Error in auto-import: failed to get module 'Noter' from AST context: /Users/hyou/Dropbox/dev/iOS/Pendo/Noter-Bridging-Header.h:20:9: error: 'ENSDK/ENSDK.h' file not found

    import <ENSDK/ENSDK.h>

        ^
    

    failed to import bridging header '/Users/hyou/Dropbox/dev/iOS/Pendo/Noter-Bridging-Header.h'A fatal parse error has occurred. LLDB may become unstable; please restart your debug session as soon as possible.

    Otherwise, if I import ENSDK like:

    import "ENSDK.h"

    I get the following:

    error: Error in auto-import: failed to get module 'Noter' from AST context: /Users/hyou/Dropbox/dev/iOS/Pendo/Noter-Bridging-Header.h:19:9: note: while building module 'evernote_cloud_sdk_ios' imported from /Users/hyou/Dropbox/dev/iOS/Pendo/Noter-Bridging-Header.h:19:

    import "ENSDK.h"

        ^
    

    :1:9: note: in file included from :1:

    import "/Users/hyou/Dropbox/dev/iOS/Pendo/Pods/Target Support Files/evernote-cloud-sdk-ios/evernote-cloud-sdk-ios-umbrella.h"

        ^
    

    /Users/hyou/Dropbox/dev/iOS/Pendo/Pods/Target Support Files/evernote-cloud-sdk-ios/evernote-cloud-sdk-ios-umbrella.h:6:9: error: 'EDAMErrors.m' file not found

    import "EDAMErrors.m"

        ^
    

    /Users/hyou/Dropbox/dev/iOS/Pendo/Noter-Bridging-Header.h:19:9: error: could not build module 'evernote_cloud_sdk_ios'

    import "ENSDK.h"

        ^
    

    failed to import bridging header '/Users/hyou/Dropbox/dev/iOS/Pendo/Noter-Bridging-Header.h'A fatal parse error has occurred. LLDB may become unstable; please restart your debug session as soon as possible.

    opened by hyouuu 15
  • Auth in Evernote app broken?

    Auth in Evernote app broken?

    The functionality that authorises by switching to the Evernote app appears to be broken. Probably because of a bug in the Evernote app?

    The app switch happens but inside the Evernote app the option to grant access is never displayed. This happens for two apps that I have been working on and the same thing also happens with other apps such as Scanbot. The Evernote app is launched but then nothing more happens.

    I have tried on iOS 9 and iOS 10. Evernote app version is 8.3.356604

    opened by rolandpersson 10
  • CocoaPod import with swift doesn't work

    CocoaPod import with swift doesn't work

    I want to use the new evernote-cloud-sdk-ios as a framework with CocoaPods but it doesn't work.

    1. There are non-modular header file usages in ENXMLUtils.h and ENXMLSaxParser.h

      import <libxml/xmlstring.h>

      import <libxml/tree.h>

    2 The mysteries error of not building "Objective-C" module "evernote_cloud_sdk_ios"

    And yes, I have used CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES=YES

    bildschirmfoto 2015-10-07 um 06 25 59

    Please fix or give me hints for workarounds.

    opened by AndreClaassen1 10
  • Login view stopped showing password input recently.

    Login view stopped showing password input recently.

    Repro steps

    • Try to login with Evernote (ENSession.shared.authenticate(with:preferRegistration:completion:))
    • A login view controller is presented by the Evernote SDK
    • Input your email, then tap on Continue
    • It used to show the password form before, but now it turns into the white screen.

    Does anyone have the same issue?

    IMG_2261 IMG_2262

    opened by umekun123 9
  • Evernote iOS SDK crash at Re-authorise page

    Evernote iOS SDK crash at Re-authorise page

    I have implemented the SDK integration for my iOS app, where web view is pushed for login and authorise the account. In this screen user can select the authorisation time period in popover, selecting the option from list multiple time causing the app to crash with error,

    Application tried to represent an active popover presentation: <UIPopoverPresentationController: 0x18f66470>

    *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<UIPopoverPresentationController: 0x18f79b60>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'

    *** First throw call stack: (0x24e8d49f 0x32945c8b 0x289ee59f 0x2861ce03 0x2861badb 0x283c9a25 0x2834582b 0x24e53d95 0x24e51453 0x24e5185b 0x24d9f3c1 0x24d9f1d3 0x2c1740a9 0x283aefa1 0x2ee21 0x32ec5aaf) libc++abi.dylib: terminating with uncaught exception of type NSException

    opened by siva7sankar 9
  • How can i straightly to find specified one EDAMNote/ENNote?

    How can i straightly to find specified one EDAMNote/ENNote?

    I just need record note for my reading book,how can i repeatedly update this one note programmatically(point to a particular note in the Evernote service)?

    opened by yiwangwuqian 8
  • Unable to install SDK using CocoaPods

    Unable to install SDK using CocoaPods

    Creating a new project, and trying to install SDK using CocoaPods 1.2.0 gives me the following error.

    [!] Unable to satisfy the following requirements:
    
    - `evernote-cloud-sdk-ios (~> 3.0)` required by `Podfile`
    
    None of your spec sources contain a spec satisfying the dependency: `evernote-cloud-sdk-ios (~> 3.0)`.
    
    You have either:
     * out-of-date source repos which you can update with `pod repo update`.
     * mistyped the name or version.
     * not added the source repo that hosts the Podspec to your Podfile.
    
    Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.
    

    Running pod repo update doesn't help.

    opened by xinatanil 8
  • Shared Authentication with App Extension

    Shared Authentication with App Extension

    My app support App Extensions (Share/Action). In the main app user already logged in and the extension should just use the auth token from the main app.

    To enable this, I'd need to enable shared key chain. Currently Evernote SDK did not expose ENCredentials, ENCredentialStore and ENSSKeychain. Which make configure the key chain outside impossible.

    Also, ENSSKeychain seems to be an older vendored version of SSKeychain. Newer versions of SSKeychain support configuring the App group by using SSKeychainQuery.

    This probably a common scenario (as seen in #65). I'd love to send a PR to fix this. However I'm not sure where should I get started. Your input is greatly appreciated.

    opened by siuying 8
  • share ENSession with App Extension

    share ENSession with App Extension

    Hello, @everic,

    Is there a possibility to share [ENSession sharedSession] between my main app and my app extension?

    Otherwise I have to ask a user to login twice - once in the main app, second time with the first execution of my app extension?

    Thanks in advance, Ilia

    opened by ilia510 7
  • Get userStore from ENSession?

    Get userStore from ENSession?

    Is there any way to get the userStore from the ENSession? It looks like it's in the .m, but not exposed in the .h. Is there an easy way for me to get access to it from a sharedSession?

    opened by jgallen23 7
  • OAuth first step always get 401 statusCode

    OAuth first step always get 401 statusCode

    Now i debug by the developer token. But i need to switch call method: [ENSession setSharedSessionConsumerKey:consumerSecret:optionalHost:],and always get 401 statusCode,how to make it work?

    opened by yiwangwuqian 6
  • Evernote Account Deletion for iOS

    Evernote Account Deletion for iOS

    Corresponding to Apple rule : https://developer.apple.com/news/?id=mdkbobfo

    I'm using the Evernote pod in my iOS apps. When logging in to Evvernote, in the application can create account from your SDK. My Question: Can Evernote SDK support account deletion since it's required by Apple?

    Thank you in advance.

    opened by ivanpnn 0
  • Can't launch Evernote anymore using [[UIApplication sharedApplication] openURL:]

    Can't launch Evernote anymore using [[UIApplication sharedApplication] openURL:]

    This API is deprecated and thus any app trying to launch Evernote will not function as of last week. - (BOOL)openURL:(NSURL*)url API_DEPRECATED_WITH_REPLACEMENT("openURL:options:completionHandler:", ios(2.0, 10.0)) NS_EXTENSION_UNAVAILABLE_IOS(""); Thanks @zonabi @juanarzola

    opened by imougy 1
  • Google Sign-in is broken: 403 error disallowed user agent

    Google Sign-in is broken: 403 error disallowed user agent

    Repro steps

    • Try to login with Evernote (ENSession.shared.authenticate(with:preferRegistration:completion:))
    • A login view controller is presented by the Evernote SDK
    • Tap on Continue with Google
    • Observe error: "403 disallowed_useragent" Google can’t sign you in safely inside this app. You can use Google sign-in by visiting this app’s website in a browser like Safari or Chrome.

    This issue is affecting our app Genius Scan and I could also reproduce it with @agiletortoise Drafts App.

    Solution

    The problem is likely that the login must happen in a safari controller and not in a webview.

    opened by bvirlet 4
  • [iOS 13] When user use swipe-down-to-dismiss, they cannot login again

    [iOS 13] When user use swipe-down-to-dismiss, they cannot login again

    Repro steps

    • Try to login with Evernote (ENSession.shared.authenticate(with:preferRegistration:completion:))
    • A login view controller is presented by the Evernote SDK
    • Swipe down to dismiss this screen
    • Try to log in again
    • Observe error

    This issue is affecting our app Genius Scan.

    Easy fix

    The problem is due to this new "swipe down to dismiss" gesture on modal view controllers.

    https://stackoverflow.com/questions/56459329/disable-the-interactive-dismissal-of-presented-view-controller-in-ios-13

    opened by bvirlet 0
  • Evernote accounts using

    Evernote accounts using "Continue with Google" cannot use SDK to authenticate

    Evernote users which use a linked Google account to authenticate with the Evernote service (via "Continue with Google" can no longer authenticate using the Evernote SDK's authentication process.

    Because the SDK uses the deprecated UIWebView to present the authentication flow (see also issue #170 regarding pending App Store rejection over the use of UIWebView), when redirected to Google to sign in using the "Continue with Google" button, the user will receive a "403 Error: disallowed_useragent" message the authentication process will be halted.

    Additionally, Google provides the message:

    Google can't sign you in safely inside this app. You can use Google sign-in by visiting this app's website in a browser like Safari or Chrome.

    It is not possible to do so as part of the OAuth process, however.

    opened by agiletortoise 0
Releases(4.0.0)
Px-mobile-sdk-demo-app - PerimeterX Mobile SDK - Demo App

About PerimeterX PerimeterX is the leading provider of application security solu

PerimeterX 1 Nov 20, 2022
Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter 45 Nov 29, 2022
Cloud Drive(GoogleDrive/Dropbox/BaiduPan/OneDrive/pCloud) File Management

CloudServiceKit Easy to integrate cloud service using Oauth2. Supported platforms: AliyunDrive BaiduPan Box Dropbox Google Drive OneDrive pCloud Requi

null 18 Aug 10, 2022
Native iOS implementation of RadarCOVID tracing client using DP3T iOS SDK

RadarCOVID iOS App Introduction Native iOS implementation of RadarCOVID tracing client using DP3T iOS SDK Prerequisites These are the tools used to bu

Radar COVID 146 Nov 24, 2022
TelegramStickersImport — Telegram stickers importing SDK for iOS

TelegramStickersImport — Telegram stickers importing SDK for iOS TelegramStickersImport helps your users import third-party programaticaly created sti

null 35 Oct 26, 2022
Muxer used on top of Feed iOS SDK for airplay

FeedAirplayMuxer Muxer used on top of Feed iOS SDK for airplay purposes. Demo Project --> https://github.com/feedfm/AirplayDemo Feed Airplay Muxer is

Feed Media 0 May 6, 2022
Basispay IOS SDK Version 2

BasisPay-IOS-KIT BasisPay IOS Payment Gateway kit for developers INTRODUCTION This document describes the steps for integrating Basispay online paymen

null 0 Oct 21, 2021
Release repo for Gini Bank SDK for iOS

Gini Bank SDK for iOS The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips. By integra

Gini GmbH 1 Dec 6, 2022
Da Xue Zhang Platform Lvb iOS SDK

Cloud_Lvb_SDK iOS API Reference Dxz Meeting iOS SDK是为 iOS 平台用户音视频服务的开源 SDK。通过大学长开放平台自研RTC,RTM系统,为客户提供质量可靠的音视频服务。 类 类名 描述 CLS_PlatformManager SDK的音视频主要

null 8 Jan 10, 2022
PayPal iOS SDK

PayPal iOS SDK Welcome to PayPal's iOS SDK. This library will help you accept card, PayPal, Venmo, and alternative payment methods in your iOS app. Su

PayPal 25 Dec 14, 2022
Unofficial Notion API SDK for iOS & macOS

NotionSwift Unofficial Notion SDK for iOS & macOS. This is still work in progress version, the module interface might change. API Documentation This l

Wojciech Chojnacki 59 Jan 8, 2023
150,000+ stickers API & SDK for iOS Apps.

English | 한국어 Stipop UI SDK for iOS Stipop SDK provides over 150,000 .png and .gif stickers that can be easily integrated into mobile app chats, comme

Stipop, Inc. 19 Dec 20, 2022
Spotify SDK for iOS

Spotify iOS SDK Overview The Spotify iOS framework allows your application to interact with the Spotify app running in the background on a user's devi

Spotify 522 Jan 6, 2023
Headless iOS/Mac SDK for saving stuff to Pocket.

This SDK is deprecated Howdy all! ?? Thanks for checking out this repo. Your ?? mean a lot to us. ?? Unfortunately, this project is deprecated, and th

Pocket 230 Mar 18, 2022
iOS SDK for the Box Content API

Box iOS SDK Getting Started Docs: https://developer.box.com/guides/mobile/ios/quick-start/ NOTE: The Box iOS SDK in Objective-C (prior to v3.0.0) has

Box 112 Dec 19, 2022
OneDrive SDK for iOS

Get started with the OneDrive SDK for iOS Integrate the OneDrive API into your iOS app! 1. Installation Install via Cocoapods Install Cocoapods - Foll

OneDrive 101 Dec 19, 2022
Stripe iOS SDK

Stripe iOS SDK The Stripe iOS SDK makes it quick and easy to build an excellent payment experience in your iOS app. We provide powerful and customizab

Stripe 1.8k Jan 5, 2023
AWS SDK for iOS. For more information, see our web site:

AWS SDK for iOS The AWS SDK for iOS provides a library and documentation for developers to build connected mobile applications using AWS. Features / A

AWS Amplify 1.6k Dec 26, 2022
Zendesk Mobile SDK for iOS

⚠️ This Repository has been deprecated, please go to here for the Zendesk Support SDK ⚠️ Zendesk Mobile SDK for iOS Zendesk SDK for mobile is a quick,

Zendesk 113 Dec 24, 2022