iOS SDK for the Box Content API

Overview

Box iOS SDK

Platforms License Swift Package Manager Carthage compatible CocoaPods compatible Build Status Coverage Status

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 been moved from the main branch to the objective-c-maintenance branch. Going forward, the main branch will contain the iOS SDK in Swift, starting with v3.0.0.

Box iOS SDK

Requirements

  • iOS 11.0+ / Mac OS X 10.13+ / tvOS 11.0+ / watchOS 4.0+
  • Xcode 10.0+

Installing the SDK

Carthage

Step 1: Add to your Cartfile

git "https://github.com/box/box-ios-sdk.git" ~> 5.0

Step 2: Update dependencies

$ carthage update --use-xcframeworks --platform iOS

Step 3: Drag the built xcframework from Carthage/Build into your project.

For more detailed instructions, please see the official documentation for Carthage.

CocoaPods

Step 1: Add to your Podfile

pod 'BoxSDK', '~> 5.0'

Step 2: Install pod by running the following command in the directory with the Podfile

$ pod install

For more detailed instructions, please see the official documentation for Cocoapods.

Swift Package Manager

Importing BoxSDK into Project

Step 1: Click on Xcode project file

Step 2: Click on Swift Packages and click on the plus to add a package

Step 3: Enter the following repository url https://github.com/box/box-ios-sdk.git and click next

Step 4: Leave the default settings to get the most recent release and click next to finish importing

The process should look like below:

Import Package

Adding BoxSDK as a Dependency

For detailed instructions, please see the official documentation for SPM.

Getting Started

To get started with the SDK, get a Developer Token from the Configuration page of your app in the Box Developer Console. You can use this token to make test calls for your own Box account.

import BoxSDK

let client = BoxSDK.getClient(token: "YOUR_DEVELOPER_TOKEN")
client.users.getCurrentUser() { result in
    switch result {
    case let .error(error):
        print("Error: \(error)")
    case let .success(user):
        print("\(user.name) (\(user.login)) is logged in")
    }
}

The usage docs that show how to make calls to the Box API with the SDK can be found here.

The Jazzy docs that show class, method, variable, etc definitions can be found here.

Sample Apps

OAuth2 Sample App

A sample app using OAuth2 Authentication can be found in the repository here. This app demonstrates how to use the SDK to make calls, and can be run directly by entering your own credentials to log in.

To execute the sample app:

Step 1: Run carthage

$ cd SampleApps/OAuth2SampleApp
$ carthage update --use-xcframeworks --platform iOS

Step 2: Open Xcode Project File

$ open OAuth2SampleApp.xcodeproj

Step 3: Insert your client ID and client secret

First, find your OAuth2 app's client ID and secret from the Box Developer Console. Then, add these values to the sample app in the Constants.swift file in the sample app:

static let clientId = "YOUR CLIENT ID GOES HERE"
static let clientSecret = "YOUR CLIENT SECRET GOES HERE"

Step 4: Set redirect URL

Using the same client ID from the previous step, set the redirect URL for your application in the Box Developer Console to boxsdk-<<YOUR CLIENT ID>>://boxsdkoauth2redirect, where <<YOUR CLIENT ID>> is replaced with your client ID. For example, if your client ID were vvxff7v61xi7gqveejo8jh9d2z9xhox5 the redirect URL should be boxsdk-vvxff7v61xi7gqveejo8jh9d2z9xhox5://boxsdkoauth2redirect

Step 5: Run the sample app

JWT Auth Sample App

A sample app using JWT Authentication can be found in the repository here. This app demonstrates how to set up JWT authentication with a remote authorization service, and will not run until you provide the code to retrieve tokens.

To execute the sample app:

Step 1: Run carthage

$ cd SampleApps/JWTSampleApp
$ carthage update --use-xcframeworks --platform iOS

Step 2: Open Xcode Project File

$ open JWTSampleApp.xcodeproj

Step 3: Insert your client ID and client secret

First, find your OAuth2 app's client ID and secret from the Box Developer Console. Then, add these values to the sample app in the Constants.swift file in the sample app:

static let clientId = "YOUR CLIENT ID GOES HERE"
static let clientSecret = "YOUR CLIENT SECRET GOES HERE"

Step 4: Add code for retrieving access tokens

In the ViewController.swift file in the sample app, edit the obtainJWTTokenFromExternalSources() method:

func obtainJWTTokenFromExternalSources() -> DelegatedAuthClosure {
    return { uniqueID, completion in
        #error("Obtain a JWT Token from your own service or a Developer Token for your app in the Box Developer Console at https://app.box.com/developers/console and return it in the completion.")
        // The code below is an example implementation of the delegate function
        // Please provide your own implementation
        
        // ...
    }
}

Step 5: Run the sample app

Release Definitions

Starting Oct 19th, 2019 the Box Swift SDK for iOS will be available for general use. This implies all Box developers will be able to use the SDK to build native iOS applications on Box. Between now and the next couple of months, we will be making frequent updates to the SDK based on feedback from our customers, and this document aims to set expectations with respect to:

  1. the various release types you will see over the next few months, what they mean and how to identify them
  2. support policy for each of the release types

Between now and the next couple of months, the Box Swift SDK for iOS releases will be one of the following types:

Release Candidate (RC)

The initial releases of the SDK starting Oct 19th will be Release Candidate (RC). This means (1) the core functionality is present and tested, (2) additional functionality from this point on will be considered improvements or enhancements based on customer feedback. RC releases are usually more frequent (every few weeks), followed shortly by a current release. If you plan to use an RC release, we recommend:

  • that you don't use it for production workloads (If that is unavoidable, we recommend upgrading to the Current Release version once it's ready.)
  • that you create a plan to keep your application on the latest RC release version at all times (since older RC releases are considered "out of support" as soon as a new RC release is released)

Also, RC releases may carry breaking changes from the previous release and we advise developers to test their application adequately with the new RC release before adopting it.

The idea behind releasing RC releases is to rapidly iterate on the SDK (bug fixes, feature tweaks, etc.) to get it to a production-ready state, and typically we don't expect to have the SDK in the RC phase for more than a month.

Support for RC releases

A RC release

  • is Considered Active when released
  • transitions to End-of-life when the next release becomes Active

Current Release

A Current Release is considered more stable that a Release Candidate Release and for that reason we expect less frequent releases of a Current Release. We typically expect to refresh Current Releases approximately every 3 months (could be shorter or longer depending on the criticality of the contents of the release).

A new Current Release will usually carry new functionality, bug fixes and may contain breaking changes. We will call out all breaking changes (if any) in the Release Notes section of every Current Release, and we advise developers to test their application adequately before adopting in for production use. 

A Current release is on the leading edge of our SDK development, and is intended for customers who are in active development and want the latest and greatest features.  Current releases are not intended for long-term use, and will only receive enough support after the next release becomes available to allow for a smooth transition to the new version. 

Support for Current Release

A Current Release

  • is Considered Active when released
  • transitions to Maintenance 3 months after it becomes Active, or when the next release becomes Active, whichever is later
  • reaches End-of-life 6 months after it becomes Active, or 3 months after the next release becomes Active, whichever is later

Long Term Support

A Long-Term Support (LTS) release is one which we plan to guarantee compatibility with for an extended period of time.  The public interfaces of the SDK should not be changed in ways that would break customers’ application, and the release should continue to receive at least bug fixes for its entire lifecycle. We expect to refresh Long Term Release version every 18 - 24 months.

For the above reasons, we recommend all developers who do not intend to make frequent updates (~every 6 - 12 months) to their application, only use a Long Term Release version of the SDK. 

Support for Long Term Release

A Long Term Release

  • is considered Active when released
  • transitions to Maintenance 1 year after it becomes Active, or when the next release becomes Active, whichever is later
  • reaches End-of-life 2 years after it becomes Active, or 1 year after the next LTS release becomes Active, whichever is later

Support Phases

Active

Once a release is considered ready for release, a new version is cut and the release enters the Active phase.  However, new features may be added to the SDK, including support for new API endpoints. 

Maintenance

After a time, the release is no longer under active development, but customers may still be depending on it.  At this time, we consider the release to be in Maintenance phase; generally, only bug fixes will be considered for inclusion in new versions.  We may of course opt to include new functionality based on customer demand, but in general customers should expect that the SDK feature set will be mostly frozen for the remainder of its lifecycle.

End-of-life

After a release is no longer being supported by Box, it enters End-of-life (EOL) and no further changes should be expected by customers.  Customers must upgrade to a newer release if they want to receive support.

Copyright and License

Copyright 2019 Box, Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Comments
  • Get Representation does not work for word and excel

    Get Representation does not work for word and excel

    BOXRepresentationHints API - has only 3 options - extern const BOXRepresentationHints BOXRepresentationHintsDefaultThumbnails; /// A good preview for most file types. Maybe more than one preview representation /// (currently at least the first available of PDF, HLS, MP4, MP3 or JPG) extern const BOXRepresentationHints BOXRepresentationHintsDefaultPreview; /// Both thumbnails and the preview defined above extern const BOXRepresentationHints BOXRepresentationHintsDefaultThumbnailsandPreview;

    I need to show high quality image and pdf, word and excel's first page - the option selected - BOXRepresentationHintsDefaultPreview works for images and PDF but doesnot work for word and excel . Is their any way or API which gives me all of these options

    opened by ManasaMS85 19
  • SHA_DIGEST_LENGTH Problem with iOS 12

    SHA_DIGEST_LENGTH Problem with iOS 12

    Hello,

    I install the box-is-sdk over cocoapods. It works fine with iOS 11 and under iOS 12 I get this error message in BoxHashHelper.m:

    /Users/RWarnecke/repos/XCode/ios/Sprit-Rechner-Plus/Pods/box-ios-sdk/BoxContentSDK/BoxContentSDK/External/HashHelper/BOXHashHelper.m:131:26: Use of undeclared identifier 'SHA_DIGEST_LENGTH'

    I found the issue #536, but the merged pull request doesn't assign to the cocoapods installation. Please can you fix it.

    opened by RWarnecke 18
  •  BOXContentClient.accessTokenDelegate Can not be setted in 2.0.2

    BOXContentClient.accessTokenDelegate Can not be setted in 2.0.2

    We use appUser to present a box file content, and manage accesstoken for our own. In elder verison, I use BOXContentClient.default().authenticate() and wait the callback func: func fetchAccessToken(completion: ((String?, Date?, Error?) -> Void)!) In this func, I will return the accessToken and expiredDate to pass the authentication. But in v2.0.2 , the authenticate() didn't call this fetchAccessToken anymore. Search in source code, I found that the accessTokenDelegate didn't has a setter. Only a getter in BOXContentClient.m : image

    When debuging my code, I found that even if I set the delegate , this var still nil . image Is that a error for the BOX? Or how could I use appuser to present a box file?

    bug objective-c stale 
    opened by wangqiwei66 14
  • Missing progress callback for uploads

    Missing progress callback for uploads

    ℹ Please fill out this template when filing an issue. All lines beginning with an ℹ symbol instruct you with what info we expect. You can delete those lines once you've filled in the info.

    Per our *CONTRIBUTING guidelines, we use GitHub for bugs and feature requests, not general support. Other issues should be opened on Stack Overflow with the tag BoxSDK.

    Please remove this line and everything above it before submitting.

    What did you do?

    ℹ Working to migrate from version 2.x to version 3.0

    What did you expect to happen?

    ℹ The documentation states that there should me a method to upload a file that has a progress callback: https://github.com/box/box-ios-sdk/blob/master/docs/usage/files.md#upload-file indicates that there is a method that should support progress monitoring

    What happened instead?

    ℹ The upload methods in the source code provide a completion handler but not one for progress. Don't know if this is coming in a later version, but this is a feature in the old SDK that would be very useful to had in the newer SDK. The same functionality in the download would also be great. Don't know if I missing something, but I wanted to file this as a request as I won't be able to move to the newer SDK until that functionality exists.

    BoxSDK Environment

    **BoxSDK version:2.0 **Xcode version:11 Swift version: Platform(s) running BoxSDK: macOS version running Xcode:

    Demo Project

    ℹ Please link to or upload a project we can download that reproduces the issue.

    bug enhancement 
    opened by robgtsoftware 10
  • Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Problem deleting current dictionary.' into ios

    Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Problem deleting current dictionary.' into ios

    Hi guys.

    I have crash into lib when run my app on simulator with iOS 10 after auth into box

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Problem deleting current dictionary.' *** First throw call stack: ( 0 CoreFoundation 0x000000010bda534b exceptionPreprocess + 171 1 libobjc.A.dylib 0x000000010b80621e objc_exception_throw + 48 2 CoreFoundation 0x000000010bda9442 +[NSException raise:format:arguments:] + 98 3 Foundation 0x000000010b39cedd -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195 4 My Project 0x000000010716473b -[BOXKeychainItemWrapper resetKeychainItem] + 427 5 My Project 0x00000001070f04cc -[BOXAbstractSession storeCredentialsToKeychain] + 364 6 My Project 0x0000000107171826 __85-[BOXOAuth2Session performAuthorizationCodeGrantWithReceivedURL:withCompletionBlock:]_block_invoke_2 + 358 7 My Project 0x0000000107188290 __47-[BOXUserRequest performRequestWithCompletion:]_block_invoke_2 + 48 8 My Project 0x00000001071336e3 +[BOXDispatchHelper callCompletionBlock:onMainThread:] + 195 9 My Project 0x00000001071881ef __47-[BOXUserRequest performRequestWithCompletion:]_block_invoke + 511 10 My Project 0x00000001070f6ba6 -[BOXAPIJSONOperation performCompletionCallback] + 310 11 My Project 0x00000001070ff38f -[BOXAPIOperation finish] + 143 12 My Project 0x00000001070fff30 -[BOXAPIOperation connectionDidFinishLoading:] + 128 13 CFNetwork 0x0000000107ce5dd8 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke + 72 14 CFNetwork 0x0000000107ce5cea -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 199 15 CFNetwork 0x0000000107ce5c11 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 48 16 CFNetwork 0x0000000107cea1b6 ___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 104 17 CFNetwork 0x0000000107f09cd5 ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 100 18 libdispatch.dylib 0x000000010c5ea0cd _dispatch_client_callout + 8 19 libdispatch.dylib 0x000000010c5c49f7 _dispatch_block_invoke_direct + 567 20 CFNetwork 0x0000000107ce5adc _ZN19RunloopBlockContext13_invoke_blockEPKvPv + 24 21 CoreFoundation 0x000000010bcf6014 CFArrayApplyFunction + 68 22 CFNetwork 0x0000000107ce59d5 _ZN19RunloopBlockContext7performEv + 137 23 CFNetwork 0x0000000107ce586e _ZN17MultiplexerSource7performEv + 282 24 CFNetwork 0x0000000107ce5690 _ZN17MultiplexerSource8_performEPv + 72 25 CoreFoundation 0x000000010bd4a311 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 26 CoreFoundation 0x000000010bd2f59c CFRunLoopDoSources0 + 556 27 CoreFoundation 0x000000010bd2ea86 __CFRunLoopRun + 918 28 CoreFoundation 0x000000010bd2e494 CFRunLoopRunSpecific + 420 29 Foundation 0x000000010b2e9080 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 274 30 Foundation 0x000000010b2e8f5b -[NSRunLoop(NSRunLoop) run] + 76 31 My Project 0x00000001070fe799 +[BOXAPIOperation globalAPIOperationNetworkThreadEntryPoint:] + 105 32 Foundation 0x000000010b2f8f74 __NSThread__start + 1243 33 libsystem_pthread.dylib 0x000000010c99399d _pthread_body + 131 34 libsystem_pthread.dylib 0x000000010c99391a _pthread_body + 0 35 libsystem_pthread.dylib 0x000000010c991351 thread_start + 13 ) libc++abi.dylib: terminating with uncaught exception of type NSException

    2016-08-18_1035
    opened by scorovit 10
  • Calls run but completions are never returned?

    Calls run but completions are never returned?

    • [ x] I have checked that the SDK documentation doesn't solve my issue.
    • [ x] I have checked that the API documentation doesn't solve my issue.
    • [ x] I have searched the Box Developer Forums and my issue isn't already reported (or if it has been reported, I have attached a link to it, for reference).
    • [ x] I have searched Issues in this repo and my issue isn't already reported.

    Description of the Issue

    When using client.files.upload the call runs and can even show progress but the completion is never returned. We've tried this in a fresh program with box using the example calls from the box api reference for iOS, and using sdk 5.0.0. The call seems to run and send the file to box but the completion never calls success and no body is returned from the call.

    let task: BoxUploadTask = client.files.upload(data: data, name: "Test File.txt", parentId: self.fileId) { (result: Result<File, BoxSDKError>) in guard case let .success(file) = result else { print("Error uploading file") return }

    print("File \(file.name) was uploaded at \(file.createdAt) into \"\(file.parent.name)\"")
    

    }

    Steps to Reproduce

    Running this code in a new program with our token and client authenticated provides this return

    ▷ POST https://upload.box.com/api/2.0/files/content ▷ Headers: ▷ X-Box-UA, Value: agent=box-swift-sdk/5.0.0; env=iPhone XS/15.1 ▷ Authorization, Value: Bearer ***removed but auth header was valid ▷ Body: Multipart

    This is the last response

    Expected Behavior

    Error Message, Including Stack Trace

    No error message file lands in box but the completion doesn't return and we cannot see what the box file id for the file that submitted was.

    Screenshots

    Versions Used

    iOS SDK: using iOS sdk 5.0.0 iOS Preview SDK: iOS: iOS 15.1 Xcode: Xcode 13.1

    question 
    opened by BenQF 9
  • BOXContentClient logout

    BOXContentClient logout

    is their a specific method to logout - when using the appuser - instantiating a client using Server-to-Server auth. i am doing if let boxContentClientDefault = BOXContentClient.default() { boxContentClientDefault.logOut() } But this doesn't seem to logout the appuser . Is their anything i am missing in logout.

    My boxsdk instantiation is : boxContentClient = BOXContentClient(for: authUser, initialToken: nil, fetchTokenBlockInfo: nil, fetchTokenBlock: fetchToken)!

    objective-c stale 
    opened by ManasaMS85 9
  • Having trouble getting the .enterprise value from BoxUser with BOXUserRequest to differenciate between enterprise and personal account

    Having trouble getting the .enterprise value from BoxUser with BOXUserRequest to differenciate between enterprise and personal account

    The .enterprise flag always comes in as nil using both my company's test account. One is personal the other is enterprise. I do have the requestAllUserFields property of the request set to YES.

    What am I missing? Thanks.

    opened by MaximeBoulat 9
  • switch UIWebView to WKWebView.

    switch UIWebView to WKWebView.

    Hi @PJSimon, I need your help. When I upload my App to AppStore, Apple staff email me that they will forbid UIWebView in the future. So I have to change the code. but BOX server tell me that something went wrong. can you help me to complete the migrating?

    And this issue is mentioned in #669 and #647, and I don't like Swift.

    objective-c 
    opened by OneSecure 8
  • Login page not open on first launch

    Login page not open on first launch

    There seems to be a problem with this app

    Error: Invalid client

    Show Error Details responce_type=code redirectUri= boxsdk-(null)://boxsdkoauth2redirect state=z0wu.......djr8= cle=ient_id=(null)

    comes when launch app first time ,after killing app it works fine. My code is in swift and setting client id secret as documented here.

    question objective-c stale 
    opened by suniljakhar 8
  • fetchAccessTokenWithCompletion loop

    fetchAccessTokenWithCompletion loop

    Hi there!,

    I'm trying to authenticate using access token fetched from my backend, using the following:

    - (void)fetchAccessTokenWithCompletion:(void (^)(NSString *, NSDate *, NSError *))completion

    Everything goes ok if I'm able to get the token but if for some reason I get an error, connection issues or anything then I will try to call the completion block with error something like:

    completion(nil, nil, [[NSError alloc] initWithDomain:@"" code:40000 userInfo:nil]);

    The problem is that I enter in a loop, the controller BOXFolderViewController will try to get the token over and over again for ever, how can I stop the BOXContentClient to ask indefinitely for the token?

    opened by ed-mejia 8
  • chore(deps): bump nokogiri from 1.13.9 to 1.13.10

    chore(deps): bump nokogiri from 1.13.9 to 1.13.10

    Bumps nokogiri from 1.13.9 to 1.13.10.

    Release notes

    Sourced from nokogiri's releases.

    1.13.10 / 2022-12-07

    Security

    • [CRuby] Address CVE-2022-23476, unchecked return value from xmlTextReaderExpand. See GHSA-qv4q-mr5r-qprj for more information.

    Improvements

    • [CRuby] XML::Reader#attribute_hash now returns nil on parse errors. This restores the behavior of #attributes from v1.13.7 and earlier. [#2715]

    sha256 checksums:

    777ce2e80f64772e91459b943e531dfef387e768f2255f9bc7a1655f254bbaa1  nokogiri-1.13.10-aarch64-linux.gem
    b432ff47c51386e07f7e275374fe031c1349e37eaef2216759063bc5fa5624aa  nokogiri-1.13.10-arm64-darwin.gem
    73ac581ddcb680a912e92da928ffdbac7b36afd3368418f2cee861b96e8c830b  nokogiri-1.13.10-java.gem
    916aa17e624611dddbf2976ecce1b4a80633c6378f8465cff0efab022ebc2900  nokogiri-1.13.10-x64-mingw-ucrt.gem
    0f85a1ad8c2b02c166a6637237133505b71a05f1bb41b91447005449769bced0  nokogiri-1.13.10-x64-mingw32.gem
    91fa3a8724a1ce20fccbd718dafd9acbde099258183ac486992a61b00bb17020  nokogiri-1.13.10-x86-linux.gem
    d6663f5900ccd8f72d43660d7f082565b7ffcaade0b9a59a74b3ef8791034168  nokogiri-1.13.10-x86-mingw32.gem
    81755fc4b8130ef9678c76a2e5af3db7a0a6664b3cba7d9fe8ef75e7d979e91b  nokogiri-1.13.10-x86_64-darwin.gem
    51d5246705dedad0a09b374d09cc193e7383a5dd32136a690a3cd56e95adf0a3  nokogiri-1.13.10-x86_64-linux.gem
    d3ee00f26c151763da1691c7fc6871ddd03e532f74f85101f5acedc2d099e958  nokogiri-1.13.10.gem
    
    Changelog

    Sourced from nokogiri's changelog.

    1.13.10 / 2022-12-07

    Security

    • [CRuby] Address CVE-2022-23476, unchecked return value from xmlTextReaderExpand. See GHSA-qv4q-mr5r-qprj for more information.

    Improvements

    • [CRuby] XML::Reader#attribute_hash now returns nil on parse errors. This restores the behavior of #attributes from v1.13.7 and earlier. [#2715]
    Commits
    • 4c80121 version bump to v1.13.10
    • 85410e3 Merge pull request #2715 from sparklemotion/flavorjones-fix-reader-error-hand...
    • 9fe0761 fix(cruby): XML::Reader#attribute_hash returns nil on error
    • 3b9c736 Merge pull request #2717 from sparklemotion/flavorjones-lock-psych-to-fix-bui...
    • 2efa87b test: skip large cdata test on system libxml2
    • 3187d67 dep(dev): pin psych to v4 until v5 builds in CI
    • a16b4bf style(rubocop): disable Minitest/EmptyLineBeforeAssertionMethods
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • OAuth and 2FA not working

    OAuth and 2FA not working

    Description of the Issue

    Authorization flow returns error for accounts with 2FA enabled. The test can be run on a sample app, which accompanies BoxSDK.

    Steps to Reproduce

    1. Create test app in Developer Console
    2. Follow the guide https://github.com/box/box-java-sdk/ and setup client_id, secret and URL scheme in the sample app "OAuth2SampleApp"
    3. Login with account that has 2FA enabled
    4. See error as on the attached screenshot.

    Expected Behavior

    Authorization flow completed without error

    Screenshots

    2fa_error

    Versions Used

    iOS SDK: 4.3.0 iOS: 14.3 Xcode: 12.3

    bug dontstale 
    opened by theli 10
  • Deserialize Chunk Size in Box Responses

    Deserialize Chunk Size in Box Responses

    Is your feature request related to a problem? Please describe.

    Getting enterprise events returns chunk size but is never deserialized

    Describe the solution you'd like

    The chunk size should be included in the deserialized response

    enhancement 
    opened by stevebingsoo 4
  • macOS support?

    macOS support?

    What did you do?

    I attempted to integrate a macOS app with the Box SDK.

    What did you expect to happen?

    I realize that the name of the SDK is box-ios-sdk, but osx is listed as one of the supported platforms. As such, I expected the SDK to work with a Mac app.

    Screen Shot 2020-01-31 at 11 03 40 AM

    What happened instead?

    The project links against the SDK without error, but then things start failing silently. I attempted using sample code to authenticate via OAuth and the call never returns. In looking at obtainAuthorizationCodeFromWebSession, I discovered that the code simply bails if not iOS. This is a silent fail without any console log if running on another platform.

        func obtainAuthorizationCodeFromWebSession(completion: @escaping Callback<String>) {
            let authorizeURL = makeAuthorizeURL(state: nonce)
            #if os(iOS)
                ... iOS goodness here...
            #endif
        }
    

    My preference would be for the SDK to work with Mac (like Dropbox does). If Box chooses to not go that direction, the code should be updated to log a console message and/or return an error in the callback and documentation should be updated so others don't spend time going down this same path.

    BoxSDK Environment

    BoxSDK version: 3.1.1

    Xcode version: 11.3.1

    Swift version: 5

    Platform(s) running BoxSDK: macOS

    macOS version running Xcode: 10.15.2

    Demo Project

    clouduploader.zip Client secrets and IDs scrubbed from the above for both Box and Dropbox.

    enhancement 
    opened by joshsloat 8
  • Add experimental OS X support

    Add experimental OS X support

    • Exclude ALAsset-related code
    • Exclude AppToApp authentication
    • Add OS X target and scheme, OS X unit test target and scheme
    • Updates to handle some differences in keychain behavior on OS X vs. iOS
    • Replace UIImage with NSImage on OS X
    • Add OS X specific user agent
    • Update podspec to support OS X

    To do:

    • Authentication
    • User-friendly names for Mac models to include in user agent
    objective-c 
    opened by chrisvasselli 6
Releases(v5.4.0)
  • v5.4.0(Nov 8, 2022)

  • v5.3.0(Aug 19, 2022)

  • v5.2.1(Apr 22, 2022)

  • v5.2.0(Mar 18, 2022)

  • v5.1.0(Jan 17, 2022)

    New Features and Enhancements

    • Allow to customize URL for the OAuth2 authorization page (#811) (1901d29)
    • Events: Add support for admin_logs_streaming stream type (#800) (0a3118e)
    • RetentionPolicy: New API for get files and file versions under retention (#807) (38327f0)
    • SharedLink: add support for vanity_name (#799) (3ea6eb2)

    Bug Fixes

    • SignRequest: Fix encoding date_value to yyyy-mm-dd format in prefillTag (#806) (4f902a4)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Oct 28, 2021)

    Breaking Changes:

    • Update PagingIterator to return pages and simplify logic (#737)
    • Remove insensitive language field collaborationWhiteList in BoxClient. Use collaborationAllowList instead. (#790)

    New Features and Enhancements:

    • Replace insensitive event types (#785)
    • Add SignAPI support (#792)
    Source code(tar.gz)
    Source code(zip)
  • v4.4.0(Apr 20, 2021)

    Breaking Changes:

    New Features and Enhancements:

    • Add support for search param to get shared link items (#756)
    • Add support for folder lock functionality (#759)
    • Add support for copyInstanceOnItemCopy field for metadata templates (#763)
    • Add support for stream upload of new file versions and add support for 'If-Match' header when uploading new file versions (#766)
    • Add additional details field for Event model (#770)

    Bug Fixes:

    • Pass only a scheme to iOS Authentication APIs (#755)
    • Update listEnterpriseGroups() to use documented parameter for filtering by name (#757)
    • Fix bug for OAuth where the callback is not called if token has been revoked (#762)
    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Feb 1, 2021)

    Breaking Changes:

    New Features and Enhancements:

    • Add support for OAuth 2 custom callback URL (#746)
    • Add support for zip download (#749)

    Bug Fixes:

    • Update gems to patch kramdown vulnerability (#742)
    • Update gems to patch activesupport vulnerability (#745)
    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Nov 18, 2020)

    Breaking Changes:

    New Features and Enhancements:

    • Add error information to OAuth web session failures

    Bug Fixes:

    • Fix bug with creating collaboration
    • Fix bug with getting enterprise events
    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(May 15, 2020)

    Box iOS SDK

    Breaking Changes:

    New Features and Enhancements:

    • Add ability to cancel uploads and downloads
    • Add support for the uploader display name field for Files and File Versions
    • Add support for the classification field for Files and Folders
    • Add path parameter sanitization

    Bug Fixes:

    • Fix logging of API responses
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Feb 13, 2020)

    Box iOS SDK

    Breaking Changes:

    • Change status field for task assignments from a String to an Enum
    • Remove macOS, tvOS, and watchOS support

    New Features and Enhancements:

    • Make authentication session classes OAuth2Session, SingleTokenSession, and DelegatedAuthSession public
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Jan 10, 2020)

    Box iOS SDK

    Breaking Changes:

    New Features and Enhancements:

    • Add shared link downscoping
    • Add closure parameter for progress of uploads and downloads
    • Add marker based pagination to list users endpoint
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Nov 20, 2019)

  • v3.0.0-rc.3(Nov 15, 2019)

    Box iOS Swift SDK Release Candidate

    Notes:

    • The source code for this Box iOS Swift SDK is now open source and included in this release.
    • The releases will no longer have the Box iOS Swift SDK binaries attached, going forward.
    • In order to build the Box iOS Swift SDK project, clone the repo and then checkout the limited-beta-release branch. Then, refer to the Getting Started documentation.

    Disclaimer:

    • This is beta software. It has not been not fully tested, and may not be at a level of performance or compatibility of generally available software or services Box offers.
    • Any use of this software is governed by the attached Box SDK Beta Agreement. If you do not accept the terms of the Box SDK Beta Agreement, you may not use this software.
    • This beta software should not be used in live/production environments; it is for development / test only.
    • This beta software will be updated frequently and breaking changes should be expected
    • This limited beta is intended for select Box customers
    • Please send all feedback / questions to: [email protected]

    Breaking Changes:

    • For Module methods that returned a collection of objects, changed from returning a PaginationIterator to returning a PagingIterator in a completion.
    • Modules are now automatically instantiated with the BoxClient object and no longer allow the client app to instantiate them
    • Related RetentionPolicy classes no longer allow rawData to be set by the client app
    • UploadPartDescription made private
    • Fixed bug with exponential backoff and changed SDK configuration item "retryAfterTime" to "retryBaseInterval"

    New Features and Enhancements:

    • RetentionPolicyModule methods made public
    • Added additional supporting types
    • Improved support for logging to file, allow for custom file path, and fixed some related bugs
    • Improved console logging formatting
    • Updated Sample Apps to use new PagingIterator responses
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-rc.2(Oct 30, 2019)

    Box iOS Swift SDK Release Candidate

    Disclaimer:

    • This is beta software. It has not been not fully tested, and may not be at a level of performance or compatibility of generally available software or services Box offers.
    • Any use of this software is governed by the attached Box SDK Beta Agreement. If you do not accept the terms of the Box SDK Beta Agreement, you may not use this software.
    • This beta software should not be used in live/production environments; it is for development / test only.
    • This beta software will be updated frequently and breaking changes should be expected
    • This limited beta is intended for select Box customers
    • Please send all feedback / questions to: [email protected]

    Breaking Changes:

    • Changed SDK errors from customValue enum cases to specific enum cases

    New Features and Enhancements:

    • Added Xcode 11 + iOS 13 support to Travis CI
    Source code(tar.gz)
    Source code(zip)
    BoxSDK.framework.zip(12.98 MB)
  • v3.0.0-rc.1(Oct 19, 2019)

    Box iOS Swift SDK Release Candidate

    Disclaimer:

    • This is beta software. It has not been not fully tested, and may not be at a level of performance or compatibility of generally available software or services Box offers.
    • Any use of this software is governed by the attached Box SDK Beta Agreement. If you do not accept the terms of the Box SDK Beta Agreement, you may not use this software.
    • This beta software should not be used in live/production environments; it is for development / test only.
    • This beta software will be updated frequently and breaking changes should be expected
    • This limited beta is intended for select Box customers
    • Please send all feedback / questions to: [email protected]

    Breaking Changes:

    • Changed TaskAssignment.resolutionState from String to new AssignmentState enum type
    • Changed Group.groupType from String to new GroupType enum type
    • Changed Folder.allowedSharedLinkAccessLevels from [String] to new [SharedLinkAccess] enum type
    • Changed File.allowedInviteeRoles from [String] to new [CollaborationRole] enum type
    • Network responses with 4xx or 5xx status codes are now transformed into an API Error
    • CollaborationItem changed from class to enum
    • CommentItem changed from class to enum
    • FolderItem changed from class to enum
    • WebhookItem changed from class to enum
    • TaskItem changed from class to enum
    • JSON decoding errors now emit expected type
    • Public method names changed to a new convention in many of the "module" classes
    • Redesigned error classes and error hierarchy

    New Features and Enhancements:

    • Added Xcode 11 support (SDK builds still target iOS 11.0)

    • Removed AlamoFire dependency

    • Added support for Device Pins

    • Added SDK Configuration URL validation

    • Added SDK-level constants rootFolder and currentUser for convenience

    • Added support for Collaboration Whitelist endpoints

    • Added support for Retention Policy endpoints

    • Added support for Tasks endpoints

    • Added support for Webhooks endpoints

    • Added support for Groups and Group Membership endpoints

    • Added support for Legal Holds endpoints

    • Added support for Terms of Service endpoints

    • Added support for Terms of Service User Status endpoints

    • Added support for Watermarking endpoints

    • Added support for Storage Policy endpoints

    • Added support for Metadata Cascade Policy endpoints

    • Added support for User endpoints

    • Added support for Events endpoints

    • Added Error Views in Sample Apps

    • Improved structure and usability of Sample Apps

    Source code(tar.gz)
    Source code(zip)
    BoxSDK.framework.zip(13.01 MB)
  • v3.0.0-alpha.3(Aug 30, 2019)

    Box iOS Swift SDK for Limited Beta Release

    Disclaimer:

    • This is beta software. It has not been not fully tested, and may not be at a level of performance or compatibility of generally available software or services Box offers.
    • Any use of this software is governed by the attached Box SDK Beta Agreement. If you do not accept the terms of the Box SDK Beta Agreement, you may not use this software.
    • This beta software should not be used in live/production environments; it is for development / test only.
    • This beta software will be updated frequently and breaking changes should be expected
    • This limited beta is intended for select Box customers
    • Please send all feedback / questions to: [email protected]

    Breaking Changes:

    • Changed File Entry Container "entries" from optional to not optional

    New Features and Enhancements:

    • Added support for Web Links
    • Added support for Trash endpoints
    • Added support for Recent Items
    • Added support for File Version endpoints
    • Added support for Delete File endpoint
    • Added support for Chunked Upload Endpoints
    • Added support for upload preflight check
    • Added support for downloading a representation of a file
    • Added support for custom OAuth2 Callback URL
    • Added KeychainTokenStore for OAuth2SampleApp
    Source code(tar.gz)
    Source code(zip)
    BoxSDK.framework.zip(25.61 MB)
  • v3.0.0-alpha.2(Aug 9, 2019)

    Box iOS Swift SDK for Limited Beta Release

    Disclaimer:

    • This is beta software. It has not been not fully tested, and may not be at a level of performance or compatibility of generally available software or services Box offers.
    • Any use of this software is governed by the attached Box SDK Beta Agreement. If you do not accept the terms of the Box SDK Beta Agreement, you may not use this software.
    • This beta software should not be used in live/production environments; it is for development / test only.
    • This beta software will be updated frequently and breaking changes should be expected
    • This limited beta is intended for select Box customers
    • Please send all feedback / questions to: [email protected]

    Breaking Changes:

    • Moved some constants to different namespaces:
      • Box.rootFolder is now BoxSDK.Constants.rootFolder
      • Box.currentUser is now BoxSDK.Constants.currentUser
    • Updated the arguments that client.files.updateFileInfo() takes for consistency with the rest of the SDK
    • Changed the type of the expiresAt arguments in client.files.lockFile() from String to Date
    • Removed unused arguments from client.files.unlockFile()
    • Changed the type of the unsharedAt and password arguments of client.files.setSharedLink() and client.folders.setSharedLink() to accept .null values
    • Replaced the access, password, unsharedAt, and canDownload arguments of client.folders.updateFolder() with a single sharedLink argument to enable setting the entire shared link field to .null in order to remove the shared link
    • Replaced client.getFavoritesCollectionId() with client.collections.getFavoritesCollection()
    • Removed client.collections.addItemsToCollection() and client.collections.deleteItemsFromCollection()
    • Changed the result type for client.files.addFileToFavorites(), client.files.addFileToCollection(), client.files.removeFileFromFavorites(), and client.files.removeFileFromCollection() from Void to File
    • Changed the result type for client.folders.addFolderToFavorites(), client.folders.addFolderToCollection(), client.folders.removeFolderFromFavorites(), and client.folders.removeFolderFromCollection() from Void to Folder

    New Features and Enhancements:

    • Added support for token downscoping
    • Added a KeychainTokenStore implementation to enable persisting authentication state on the Keychain
    • The SDK now automatically clears the token store after destroying a client and revoking its tokens
    Source code(tar.gz)
    Source code(zip)
    BoxSDK.framework.zip(24.29 MB)
  • v3.0.0-alpha.1(Jul 26, 2019)

    Box iOS Swift SDK for Limited Beta Release

    Disclaimer:

    • This is beta software. It has not been not fully tested, and may not be at a level of performance or compatibility of generally available software or services Box offers.
    • Any use of this software is governed by the attached Box SDK Beta Agreement. If you do not accept the terms of the Box SDK Beta Agreement, you may not use this software.
    • This beta software should not be used in live/production environments; it is for development / test only.
    • This beta software will be updated frequently and breaking changes should be expected
    • This limited beta is intended for select Box customers
    • Please send all feedback / questions to: [email protected]
    Source code(tar.gz)
    Source code(zip)
    BoxSDK.framework.zip(24.44 MB)
  • v2.4.0(May 31, 2019)

  • v2.3.0(May 7, 2019)

    • Slightly updated App Auth interface to be more ergonomic
    • Added ability to get information for a User by ID
    • Allowed caching Item responses from shared link creation requests
    • Added the defaultInviteeRole field on BOXItem and the ability to request this field
    • Added a method to refresh the user avatar in a BOXUserAvatarImageView
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Dec 4, 2018)

    For details about 'App User' inplementation, please reference 'Multi-Account Mode' found in /doc/Authentication.md

    Using this release, you will have to migrate any code that reference BOXUser properties directly from BOXContentClient. The BOXUser model now conforms to the UniqueSDKUser protocol. In cases where you only support a single user or [BOXContentClient defaultClient], you can reference the BOXUser properties simply by casting. Please see the multi-account mode reference for support of multi-user accounts.

    /* The Box user associated with this SDK client. This will be nil if no user has been authenticated yet. */ @property (nonatomic, readonly, strong) id user;

    For code that referenced the BOXUser model properties directly from the BOXContentClient instance (defaultClient), you can cast the results to a BOXUser and reference the user properties.

    You may have had:

    BOXContentClient.defaultClient.user.modelID 
    

    To migrate your code, check for type and then proceed to cast for use

    if ([(id)self.client.user isKindOfClass:[BOXUserMini class]]) {
        NSString *currentUserID =((BOXUserMini*)self.client.user).modelID;
    } 
    

    Although BOXUserMini suffices, you can also check for class type against BOXUser.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Oct 26, 2018)

  • v2.0.0(Jun 26, 2018)

    Notable changes

    • Update sample app for build compatibility
    • Update original file url reference to use authenticated_download_url (#547)
    • Update reps interface in content SDK remove ns_options to enum and remove variadic list methods to use array list (#546)
    • undo commit 252e6e deprecating foreground uploads (#545)
    • IOS-15890 Video conversion in progress should check 'viewable' status as well as 'success' for reps status (#543)
    • Removing the set representation option method that used va_list parameters to support the swift bridge, changing the method to an NSSet parameter. For consitentcy we should follow up migrating the objc set represetation option method as well. (#541)
    • Support the ability to preview original file formats (#539)
    • Add digest check to representation file downloads (#538)
    • Replaces SHA_DIGEST_LENGTH to CC_SHA1_DIGEST_LENGTH
    • Minor cleanup in codebase.
    • Prefer hls video playback representations for iOS 11
    • Add md5 header to uploads and content processor to streaming multipart upload to calculate digest (#530)
    • Remove dicom representation since it is unused
    • Adding a swift compatible set representation options method to the file request class
    • Allow File Provider to use representations endpoints for download to retrieve assets with the addition of background tasks awareness.
    • IOS-15606: part 3 to register background/foreground notification instead of resign/active (#520)
    • IOS-15615 offline and preview of word documents representations error handling
    • IOS-15606: part 2 to fix sso login issue if app goes into background (#517) (#518)
    • IOS-15615 Offline, preview of video files hls v mp4 v content playback issue
    • IOS-15205: part2 make sure token request's associated access token is set correctly
    • IOS-15543 switching out authenticated_download_url to download_url
    • IOS-15543 Add static representation strings for a file
    • Add background task to fix potential SSO failure (#510)
    • add repsInfoRequest and model
    • IOS-15205-analytics: add analytics to verify the logout fix
    • IOS-15205: fix random logout by refreshing session's tokens if there is newer access token in keychain
    • fix representation test
    • Downgrade testApp to Xcode 8.3
    • Fix BOXContentSDK Tests. Added TestApp to fix keychain tests.
    • Fix parse and add tests.
    • Add new search func to included unified meta data template keys
    • Add unified metadata properties to boxItem and metadata search
    • Moving original document field request into the File Request from the default all fields
    • Addresses various CR responses
    • IOS-15063 Download the best available file format on demand
    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Apr 5, 2018)

    Notable changes

    • Fix a potential issue with putting the operation on the wrong queue.
    • Modify BOXMetadata model to support new API models.
    • Added new setting to toggle NSURL cache
    • Fixed a potential race condition when caching URLSession requests responses.
    • Removed unnecessary line in session task cancel request error handling
    • Update Cartfile
    • Update simulator used by travis CI
    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Jan 31, 2018)

    Notable changes

    • Correct BOX0Auth2Session Header comments names
    • Add headers for shared links
    • Add BOXLog support
    • Adds 1024, 2048 thumbnail sizes support
    • Update the UIDevice category to include the latest version and device information
    • Updated base URL path versioning
    • Be tolerant of null values for user created/modified dates. We would get those values from the API for special cases such as 'prior collboarator' and 'anonomyous user'.
    • Allow permanent deletes on trashed files and folders
    • Unversioned base URL support
    • Allow trashedFolderInfoRequest associatedID to be nullable
    • Remove unused schedule on runloop when serializing multipart request
    • Adding background session capabilities to file/folder restore item
    • Fix nullable warnings in BOXContentClient+Folder
    • Bug fix removing request serialization on main thread
    • Adding background session functionality to folder delete requests
    • Adding background tasks to delete and trash file requests
    • Add BOXUserAvatarImageView
    • Update cache protocol to provide the total item count for a paginated folder items request.
    • Don't try to load a nil user
    • Delay the keychain read in the case of a race condition, to be more confident that we'll recover.
    • Addressed code review comments.
    • Make sure we do not immediately logout in case of refresh token being invalidated by race condition.
    • Remove invalid entry in proj file for NSString+BOXURLHelper
    • Update the App Users documentation links
    • Add caching protocol for BOXUserAvatarRequest.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(May 10, 2017)

  • v1.0.15(May 9, 2017)

  • v1.0.11(Dec 21, 2015)

Owner
Box
Box, Inc.
Box
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
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
iOS SDK for access the OpenCage Geocoding API

OpenCageSDK Requirements OpenCageSDK works on iOS 9+ and requires ARC to build. It depends on the following Apple frameworks, which should already be

OpenCage GmbH 1 Jun 30, 2020
RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API.

RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API. The goal for development was to have a Swift SDK to get

Frank Gregor 2 Jun 20, 2022
Swift SDK for Blockfrost.io API

Swift5 API client for Blockfrost Swift 5 SDK for Blockfrost.io API. Installation • Usage • API Endpoints Installation Swift package manager dependenci

blockfrost.io 10 Dec 24, 2022
MpesaSDK - Swift SDK for the M-Pesa API (Mozambique)

M-Pesa SDK Swift package for M-Pesa API (Mozambique) Ready Methods/APIs C2B B2B

Algy Ali 16 Jul 29, 2022
Business-API - Business App an Application that show list business using the Yelp API

business-API Business App an Application that show list business using the Yelp

Edwin Niwarlangga 0 Jan 21, 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
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
Evernote Cloud SDK for iOS

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 b

Evernote 256 Oct 6, 2022