{"id":17605944,"url":"https://github.com/magicbell/embedded-provision","last_synced_at":"2025-06-29T17:03:46.339Z","repository":{"id":258085634,"uuid":"873725909","full_name":"magicbell/embedded-provision","owner":"magicbell","description":"Handy helpers for reading values from an applications embedded provision profile","archived":false,"fork":false,"pushed_at":"2024-12-18T12:55:59.000Z","size":963,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-26T09:50:16.127Z","etag":null,"topics":["codesigning","ios","swift","xcode"],"latest_commit_sha":null,"homepage":"https://www.magicbell.com","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magicbell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-10-16T16:02:31.000Z","updated_at":"2024-12-18T12:56:01.000Z","dependencies_parsed_at":"2025-03-09T03:31:55.355Z","dependency_job_id":"c21e1fc7-b023-45e2-a9b4-ebaa25585522","html_url":"https://github.com/magicbell/embedded-provision","commit_stats":null,"previous_names":["magicbell/embedded-provision"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/magicbell/embedded-provision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fembedded-provision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fembedded-provision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fembedded-provision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fembedded-provision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magicbell","download_url":"https://codeload.github.com/magicbell/embedded-provision/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fembedded-provision/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262632322,"owners_count":23340212,"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","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":["codesigning","ios","swift","xcode"],"created_at":"2024-10-22T15:12:27.053Z","updated_at":"2025-06-29T17:03:46.312Z","avatar_url":"https://github.com/magicbell.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Embedded Provision\n\n[![Version](https://img.shields.io/cocoapods/v/EmbeddedProvision.svg?style=flat)](http://cocoapods.org/pods/embeddedprovision)\n[![License](https://img.shields.io/cocoapods/l/EmbeddedProvision.svg?style=flat)](./LICENSE)\n[![Platform](https://img.shields.io/cocoapods/p/EmbeddedProvision.svg?style=flat)](http://cocoapods.org/pods/embeddedprovision)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/magicbell/embedded-provision?tab=readme-ov-file#carthage)\n[![SwiftPM compatible](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg)](https://github.com/magicbell/embedded-provision?tab=readme-ov-file#swift-package-manager)\n[![Swift Tests](https://github.com/magicbell/embedded-provision/actions/workflows/spm-test.yml/badge.svg)](https://github.com/magicbell/embedded-provision/actions/workflows/spm-test.yml)\n\n✨ Handy helpers for reading values from an applications embedded provision profile.\n\nEmbedded provision profiles can answer many questions about where and how an iOS or macOS application is running, like:\n- Is this app deployed to the AppStore or distributed internally?\n- Which push notification environment is the application signed for?\n- What's the Apple developer team ID that was used to sign the app?\n\n... and more!\n\n\n## Quick Start\n\nYou can take a look at the provided example project, or simply play with yourself.\n\n```swift\nimport EmbeddedProvision\n\ndo {\n  if let provision = try EmbeddedProvision.load() {\n    print(\"Your app was signed with \\(provision.name).\")\n  } else {\n    print(\"Your app is likely running in a Simulator right now.\")\n  }\n}\ncatch EmbeddedProvisionError.decodingError {\n  fatalError(\"Decoding errors should not happen. Please file an issue.\")\n}\ncatch {\n  fatalError(\"Generally errors are very unexpected, and so is this: \\(error) \")\n}\n```\n\n## Table of Contents\n\n\u003c!-- TOC --\u003e\n\n- [Quick Start](#quick-start)\n- [Table of Contents](#table-of-contents)\n- [API](#api)\n    - [Properties](#properties)\n    - [Entitlements](#entitlements)\n- [Installation](#installation)\n    - [CocoaPods](#cocoapods)\n    - [Swift Package Manager](#swift-package-manager)\n    - [Carthage](#carthage)\n- [FAQ](#faq)\n    - [What is an embedded provision profiles?](#what-is-an-embedded-provision-profiles)\n    - [Why is there no provision profile embedded in my app?](#why-is-there-no-provision-profile-embedded-in-my-app)\n    - [Does this library support macOS?](#does-this-library-support-macos)\n- [Contributing](#contributing)\n\n\u003c!-- /TOC --\u003e\n\n## API\n\nYou can load your applications embedded provisioning profile by using `EmbeddedProvision.load()`. This will look for the profile inside your apps bundle under `embedded.mobileprovision` (on iOS) or `Contents/embedded.provisionprofile` (on macOS).\n\n### Properties\n\nOnce you have an instance of `EmbeddedProvision` at hand you have access to the following properties that are more about describing the profile itself:\n\n| Property         | Signature      | Discussion                                                              |\n| ---------------- | -------------- | ----------------------------------------------------------------------- |\n| `name`           | `String`       | The name of the profile that was used to sign your app                  |\n| `appIDName`      | `String`       | The name of the app ID (as provided in the developer portal)            |\n| `platform`       | `[String]`     | A list of supported platforms (i.e. `iOS`, `visionOS`, `xrOS` and more) |\n| `isXcodeManaged` | `Bool?`        | Wether the profile is managed by Xcode                                  |\n| `creationDate`   | `Date`         | When the profile was created                                            |\n| `expirationDate` | `Date`         | When the profile will expire                                            |\n| `entitlements`   | `Entitlements` | The actual content of the profile. See the below.                       |\n\n\n### Entitlements\n\nApple supports [a lot of different entitlements](https://developer.apple.com/documentation/bundleresources/entitlements). This library is at the moment only decoding a minimum of them. If you need any other entitlement, please add it and [open a PR](#contributing).\n\n| Entitlement            | Signature         | Discussion                                                                                                          |\n| ---------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------- |\n| `keychainAccessGroups` | `[String]`        | A list of application IDs (including wildcards) of keychains this app can access                                    |\n| `getTaskAllow`         | `Bool`            | Wether a debugger can attach to the running app. Should be `false` for distributed builds                           |\n| `apsEnvironment`       | `APSEnvironment?` | If the app supports push notifications, this property tells you which APNs (formerly APS) environment to use        |\n| `teamId`               | `String`          | The identifier of the developer team this app was signed for. This impacts i.e. which APNs push keys should be used |\n\n\n## Installation\n\n### CocoaPods\n\nTo install MagicBell using [CocoaPods](https://cocoapods.org), add this entry to your `Podfile`:\n\n```ruby\npod 'EmbeddedProvision', '\u003e=1.1.1'\n```\n\n**IMPORTANT**: Make sure you specify `use_frameworks!` in your `Podfile`.\n\nThen, run `pod install`.\n\n### Swift Package Manager\n\nTo install the library using [Swift Package Manager](https://www.swift.org/package-manager/), just add the dependency as follows to your project:\n\n```swift\ndependencies: [\n    .package(url: \"https://github.com/magicbell/embedded-provision\", .upToNextMajor(from: \"1.1.1\"))\n]\n```\n\n### Carthage\n\nTo install the library using [Carthage](https://github.com/Carthage/Carthage), add the following dependency to the Carfile :\n\n```ruby\ngithub \"magicbell/embedded-provision\" \"1.1.1\"\n```\n\nThen, run `carthage update --use-xcframeworks --platform [iOS|macOS] --no-use-binaries` (selecting the desired platform) to resolve dependencies.\n\nAdd the `EmbeddedProvision.xcframework` to your project-linked frameworks, together with the other dependencies resolved by Carthage.\n\n## FAQ\n\n### What is an embedded provision profiles?\n\nI short, they are Apples way to allow your app to run on their platforms. They are a codesigned definition of where you're app can run, what it can do. But nobody explains it better than Applie itself in \n[TN3125 - Provisioning profile fundamentals](https://developer.apple.com/documentation/technotes/tn3125-inside-code-signing-provisioning-profiles#Provisioning-profile-fundamentals).\n\n### Why is there no provision profile embedded in my app?\n\nIf the app is not signed to run on a device, there won't be a profile. This typically happens when the app is running in a Simulator.\n\n### Does this library support macOS?\n\nIt should! It wasn't extensively tested though. Please [file an issue](https://github.com/magicbell/embedded-provision/issues/new) if you run into any problems.\n\n## Contributing\n\n[Contributions of any kind are welcome.](./CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicbell%2Fembedded-provision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagicbell%2Fembedded-provision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicbell%2Fembedded-provision/lists"}