{"id":23139036,"url":"https://github.com/circuit/circuit-ios-sdk","last_synced_at":"2025-10-05T17:34:03.203Z","repository":{"id":56905941,"uuid":"96772776","full_name":"circuit/circuit-ios-sdk","owner":"circuit","description":"Circuit SDK for iOS","archived":false,"fork":false,"pushed_at":"2019-10-04T11:44:10.000Z","size":1632,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-08-30T18:29:46.325Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/circuit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-10T12:02:51.000Z","updated_at":"2019-10-04T11:44:11.000Z","dependencies_parsed_at":"2022-08-21T02:21:00.319Z","dependency_job_id":null,"html_url":"https://github.com/circuit/circuit-ios-sdk","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/circuit/circuit-ios-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-ios-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-ios-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-ios-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-ios-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circuit","download_url":"https://codeload.github.com/circuit/circuit-ios-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-ios-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278487588,"owners_count":25995214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-17T13:13:07.047Z","updated_at":"2025-10-05T17:34:03.154Z","avatar_url":"https://github.com/circuit.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub release](https://img.shields.io/badge/JSSDK-v1.2.6402-blue.svg)](https://github.com/circuit/circuit-sdk/releases/tag/1.2.6402)\n[![Version](https://img.shields.io/cocoapods/v/CircuitSDK.svg?style=flat)](http://cocoapods.org/pods/CircuitSDK)\n[![License](https://img.shields.io/cocoapods/l/CircuitSDK.svg?style=flat)](http://cocoapods.org/pods/CircuitSDK)\n[![Platform](https://img.shields.io/cocoapods/p/CircuitSDK.svg?style=flat)](http://cocoapods.org/pods/CircuitSDK)\n\n# Circuit iOS SDK\n\n## Introduction\nWelcome to the Circuit iOS SDK. You can use the provided SDK to build a text or media mobile application for iOS.\n\n## Prerequisites\n* Developer account on circuitsandbox.net. Get it for free at [developer registration](https://circuit.github.io/).\n* OAuth 2.0 `client_id` and optionally `client_secret`. Get if for free at [circuit.github.com/oauth](https://circuit.github.com/oauth).\n\n## Documentation\nAPIs description and more info at https://circuit.github.io/circuit-ios-sdk/\n\n## Installation\nGet the WebRTC dependency (Source/libCKTNavigator.a) via:\n\n```shell\ncurl -X GET -o \"Source/libCKTNavigator.a\" \"https://www.googleapis.com/storage/v1/b/circuit-ios-sdk/o/libCKTNavigator.a?alt=media\"\n```\n\nCircuitSDK is available through [CocoaPods](http://cocoapods.org).\n\n\n\nYou can easily try our sample app by running the following command in your terminal window:\n\n```shell\npod try CircuitSDK\n```\n\nTo use it simply add the following line to your Podfile:\n\n```ruby\npod 'CircuitSDK'\n```\n## Example\nYou can find the sample application in the [iOS Sample App](https://github.com/circuit/circuit-ios-sdk/tree/master/Example) directory. If you try to run the application, you won’t be able to logon. You must add your client id and client secret and install pods. In the terminal navigate to the CircuitKit folder and run the following command:\n\n```ruby\npod install\n```\n\nThis will install the pods and create a CircuitKit.xcworkspace, open that file instaead of the CircuitKit.xcodeproj. In the Sample/Resources folder open AppDelegate.swift, here you can add your client id and client secret. Press the run button\n\n## Authorization\nIf you do not have any client credentials first  sign up for a developer account [here](https://www.circuit.com/web/developers/registration)\n\nOnce your account is approved navigate to [Circuit App Registration](https://circuit.github.io/oauth.html) and follow the instructions to obtain the credentials\n\nOnce you receive them you are ready to run the sample application and create your own.\n\n## Here are some snippets to get you started.\n\n### initializeSDK\nIt's a good idea to initialize the SDK when the application launches,\nthis can be done in the AppDelegate file.\n\nApplication scope should be a comma delimited string that can contain any of\nthe following\n\n| SCOPE               |\n|---------------------|\n| ALL                 |\n| READ_USER_PROFILE   |\n| WRITE_USER_PROFILE  |\n| READ_CONVERSATIONS  |\n| WRITE_CONVERSATIONS |\n| READ_USER           |\n| CALLS               |\n\nWe use a framework called AppAuth to help with OAuth 2.0 authentication.\n\nAppAuth takes your client id and client secret and returns to you an access token,\nyou can the use this access token to logon.\n\nSee [AppAuth-iOS](https://github.com/openid/AppAuth-iOS) for examples using AppAuth\n\nRemember to set your redirectURI you created when registering your application,\nthis redirectURI tells AppAuth how to get back to your application after\nauthentication has completed.\n\n```objectivec\n[client initializeSDK:@\"ADD CLIENT_ID\"\n                    oAuthClientSecret:@\"ADD CLIENT SECRET\"\n                    oAuthScope:@\"ADD OAUTH SCOPE\"];\n```\n\n```swift\nCKTClient().initializeSDK(\"ADD CLIENT ID\",\n                            oAuthClientSecret:\"ADD CLIENT SECRET\",\n                            oAuthScope:\"ADD OAUTH SCOPE\")\n```\n\n### Event Handling\nEvent handling is already setup in the SDK. All you have to do to provide\nevent handling to your application is add some observers where you want to listen\nto specific events.\n\nEvent | Type |  Description\n--------- | ----------- | ---------\nCKTNotificationBasicSearchResults | string | Asynchronous search results for startUserSearch or startBasicSearch\nCKTNotificationCallEnded | string | Fired when a call is terminated.\nCKTNotificationCallIncoming | string | Fired when an incoming call is received.\nCKTNotificationCallStatus | string | Fired when the call state, or any other call attribute of a local or remote call changes.\nCKTNotificationConnectionStateChanged | string | Fired when the connection state changes.\nCKTNotificationConversationCreated | string | Fired when a new conversation is created for this user. This can be a brand new conversation, or being added to a conversation.\nCKTNotificationConversationUpdated | string | Fired when an existing conversation is updated.\nCKTNotificationItemAdded | string | Fired when a new conversation item is received. Note that the sender of an item will also receive this event.\nCKTNotificationItemUpdated | string | Fired when an existing conversation item is updated.\nCKTNotificationReconnectFailed | string | Fired when automatic reconnecting to the server fails.\nCKTNotificationRenewToken | string | Fired when token has been renewed after session expiry. Error included on failure.\nCKTNotificationSessionExpires | string | Fired when session expires.\nCKTNotificationUserPresenceChanged | string | Fired when the presence of a subscribed user changes.\nCKTNotificationUserSettingsChanged | string | Fired when one or more user settings for the logged on user change.\nCKTNotificationUserUpdated | string | Fired when the local user is updated.\n\n### Adding Observers\n\n```objective_c\n[[NSNotificationCenter defaultCenter] addObserver:self\n                                        selector:@selector(itemAddedToConversation)\n                                        name:CKTNotificationItemAdded object:nil];\n```\n\n```swift\nNSNotificationCenter.defaultCenter().addObserver(self,\n                            selector:#selector(itemAddedToConversation),\n                            name:CKTNotificationItemAdded, object: nil)\n\n```\n\nTo listen for events you need to add observers to your application logic. You\ndo this using Apple's Notification Center if you have never used NSNotificationCenter\nyou can find more information on it [here](https://developer.apple.com/reference/foundation/nsnotificationcenter)\n\nIn the example we are watching for an event called CKTNotificationItemAdded which when triggered\nwill fire a method called itemAddedToConversation\n\n\n\n## Terms of Use\nBy downloading and running this project, you agree to the license terms of the third party application software, Unify products, and components to be installed.\n\nThe third party software and products are provided to you by third parties. You are responsible for reading and accepting the relevant license terms for all software that will be installed. Unify grants you no rights to third party software.\n\n\n## License\nUnless otherwise mentioned, the samples are released under the Apache license.\n\n```\nCopyright 2017 Unify Software and Solutions GmbH \u0026 Co.KG.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n\n## Help us improve the SDK\nHelp us improve out samples by sending us a pull-request or opening a [GitHub Issue](https://github.com/circuit/circuit-ios-sdk/issues/new).\n\n\nCopyright (c) Unify, Inc. All rights reserved.  Licensed under the Apache license. See LICENSE file in the project root for full license information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircuit%2Fcircuit-ios-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcircuit%2Fcircuit-ios-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircuit%2Fcircuit-ios-sdk/lists"}