{"id":44254082,"url":"https://github.com/cascable/cascablecore-distribution","last_synced_at":"2026-02-10T16:02:02.617Z","repository":{"id":157964753,"uuid":"376505991","full_name":"Cascable/cascablecore-distribution","owner":"Cascable","description":"Distribution of CascableCore via Swift Package Manager.","archived":false,"fork":false,"pushed_at":"2025-10-15T15:55:35.000Z","size":301662,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-16T13:32:55.346Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developer.cascable.se/","language":"Objective-C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cascable.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-06-13T10:06:39.000Z","updated_at":"2025-10-15T15:55:27.000Z","dependencies_parsed_at":"2024-03-18T16:34:38.242Z","dependency_job_id":"e8bb3c19-f9a0-403d-a521-ddbc6a7eb549","html_url":"https://github.com/Cascable/cascablecore-distribution","commit_stats":null,"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/Cascable/cascablecore-distribution","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cascable%2Fcascablecore-distribution","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cascable%2Fcascablecore-distribution/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cascable%2Fcascablecore-distribution/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cascable%2Fcascablecore-distribution/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cascable","download_url":"https://codeload.github.com/Cascable/cascablecore-distribution/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cascable%2Fcascablecore-distribution/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29306436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T15:37:45.286Z","status":"ssl_error","status_checked_at":"2026-02-10T15:37:41.567Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-02-10T16:02:01.884Z","updated_at":"2026-02-10T16:02:02.608Z","avatar_url":"https://github.com/Cascable.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## CascableCore Distribution\n\nThis repository contains distribution builds of the CascableCore framework from version 10.0 for use with the Swift Package Manager (SPM).\n\nDespite the name of the distribution method, the framework is fully compatible with Objective-C. If you're using CascableCore with Swift, we recommend doing so via the [CascableCoreSwift](https://github.com/cascable/cascablecore-swift) package, which contains some great Swift-y additions to CascableCore.\n\nFor older releases of the framwork, see the [CascableCore Binaries](https://github.com/Cascable/cascablecore-binaries) repo.\n\n### Resources\n\n- For more information on the CascableCore product, including getting a trial license, see the [Cascable Developer Portal](https://developer.cascable.se/).\n\n- The best starting point for working with the SDK is by seeing CascableCore in action by checking out the [CascableCore Demo Projects](https://github.com/Cascable/cascablecore-demo) repository. You'll need a trial license for it to do anything useful!\n\n- Next, our [Getting Started With CascableCore](https://github.com/Cascable/cascablecore-demo/blob/master/Getting%20Started%20With%20CascableCore.md) document contains discussion about the CascableCore APIs and concepts in the order in which you're likely to encounter them. These APIs and concepts are equally important for both Objective-C and Swift developers.\n\n- The [CascableCore Simulated Camera Plugin](https://github.com/Cascable/cascablecore-simulated-camera/) lets you develop your app against CascableCore's APIs without having to have a real camera to hand at all times.\n\n- The [CascableCore GoPro Plugin](https://github.com/Cascable/cascablecore-gopro-plugin) adds support for GoPro cameras via USB and WiFi/Bluetooth to CascableCore.\n\n- API reference documentation for CascableCore can be found [here](https://cascable.github.io).\n\n### Preparing Your App for CascableCore\n\nTo add CascableCore to your project, simply it as you would any other SPM module. If you're using [CascableCoreSwift](https://github.com/cascable/cascablecore-swift), it will bring CascableCore in as a dependency for you.\n\nOnce the SDK(s) are added, a few more steps must be done to comply with App Store and sandboxing policies. Most of this work is done in your app's `Info.plist` file.\n\n#### Info.plist: App Transport Security\n\nIf your app is limited by App Transport Security, you need to allow CascableCore to talk to the cameras on your local network. To do this, set `NSAllowsLocalNetworking` to `YES` in your `Info.plist` App Transport Security settings.\n\n```xml\n\u003ckey\u003eNSAppTransportSecurity\u003c/key\u003e\n\u003cdict\u003e\n    \u003ckey\u003eNSAllowsLocalNetworking\u003c/key\u003e\n    \u003ctrue/\u003e\n\u003c/dict\u003e\n```\n\nCascableCore makes no attempt to communicate with the outside world via the Internet, so no domain-specific App Transport Security exemptions are needed.\n\nApple's documentation for App Transport Security can be found [here](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity).\n\n#### Info.plist: Local Network Usage Description\n\niOS 14 requires that permission is obtained from the user in order to use the local network. To do so, a usage description must be defined in your `Info.plist` via the `NSLocalNetworkUsageDescription` key.\n\n```xml\n\u003ckey\u003eNSLocalNetworkUsageDescription\u003c/key\u003e\n\u003cstring\u003eMyCoolApp needs access to the local network in order to communicate with cameras over WiFi.\u003c/string\u003e\n```\n\nYou can find Apple's documentation on this [here](https://developer.apple.com/news/?id=0oi77447).\n\n#### Info.plist: Bonjour Services\n\nIf your app is to work with cameras discovered using Bonjour (Canon EOS cameras in \"EOS Utility\" mode and some Nikon cameras), you should declare that you're resolving the PTP Bonjour service using the `NSBonjourServices` key. For example:\n\n```xml\n\u003ckey\u003eNSBonjourServices\u003c/key\u003e\n\u003carray\u003e\n    \u003cstring\u003e_ptp._tcp\u003c/string\u003e\n\u003c/array\u003e\n```\n\nYou can find Apple's documentation on this [here](https://developer.apple.com/news/?id=0oi77447).\n\n#### Entitlement: com.apple.developer.networking.multicast\n\nIf your app is to work with cameras discovered using SSDP (Canon cameras in \"Smartphone\" mode, some Sony cameras, and most Panasonic cameras), your app will need the `com.apple.developer.networking.multicast` entitlement.\n\nThis entitlement must be applied for manually from Apple using [this form](https://developer.apple.com/contact/request/networking-multicast). When explaining the need for this entitlement, language like this is appropriate: \n\n\u003e In some cases, we need to be able to send UDP SSDP discovery broadcasts in order for cameras to be able to discover _us_ and allow a connection. We also perform SSDP searches, and connect to various camera Bonjour services. \n\nApple's documentation for this entitlement can be found [here](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_networking_multicast).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcascable%2Fcascablecore-distribution","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcascable%2Fcascablecore-distribution","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcascable%2Fcascablecore-distribution/lists"}