{"id":32405065,"url":"https://github.com/buresdv/applicationinspector","last_synced_at":"2026-07-10T17:31:25.009Z","repository":{"id":318395579,"uuid":"1071106342","full_name":"buresdv/ApplicationInspector","owner":"buresdv","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-01T19:08:57.000Z","size":23,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T09:08:04.863Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"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/buresdv.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2025-10-06T21:53:05.000Z","updated_at":"2026-02-16T14:40:19.000Z","dependencies_parsed_at":"2025-10-07T00:20:10.713Z","dependency_job_id":"faed323f-3fcd-4f5e-9d91-67fd3424c18b","html_url":"https://github.com/buresdv/ApplicationInspector","commit_stats":null,"previous_names":["buresdv/applicationinspector"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/buresdv/ApplicationInspector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buresdv%2FApplicationInspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buresdv%2FApplicationInspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buresdv%2FApplicationInspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buresdv%2FApplicationInspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buresdv","download_url":"https://codeload.github.com/buresdv/ApplicationInspector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buresdv%2FApplicationInspector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35338653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"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":"2025-10-25T11:55:08.451Z","updated_at":"2026-07-10T17:31:25.002Z","avatar_url":"https://github.com/buresdv.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# .app Bundles the Swift Way\n\nHave you ever wanted to read an `.app`'s data, but it was too annoying?\n\nEnter `ApplicationInspector`, the one-stop-shop for reading Application Bundles.\n\n\u003e [!NOTE]\n\u003e This library is still in development. We recommend that you use of the version tags to pin the version you will be using to prevent broken behavior.\n\n## Usage\n\nThe library provides two objects, an `Application` struct, which represents an Application Bundle, and an `ApplicationInspector` class, which is used for reading all installed Applications.\n\n### Initializing a standalone Application structure\n\nTo initialize and `Application` struct, use the provided initializer, passing in the complete URL of the Application Bundle:\n\n```swift\ntry Application.init(from: URL)\n```\n\nThe initializer for `Application` is throwable and provides the following errors:\n\n```swift\n/// The provided URL does not exist in the filesystem\ncase providedURLDoesNotExist(checkedPath: String)\n\n/// The provided URL is not readable, there might be misconfigured permissions\ncase applicationExecutableNotReadable(checkedPath: String)\n\n/// The provided URL exists and whatever it points to is readable, but it is not an Application Bundle\ncase couldNotReadBundle(applicationPath: String)\n\n/// Could not read the information dictionary from the provided App Bundle. Either it is not readable, or it is not formatted correctly\ncase couldNotGetInfoDictionary\n\n/// Could not get the name of the app from the provided Application Bundle\ncase couldNotGetMandatoryAppInformation(_ mandatoryInformation: MandatoryAppInformation)\n```\n\nOnce an `Application` object is created, you gain access to the following metadata about the application:\n\n- `name`: The name of the app\n- `iconPath` (optional): Full path to the app's icon\n- `iconImage` (optional): The app's icon in SwiftUI's `Image` format\n\n### Reading the entire Applications folder\n\nTo read the entire Applications folder, initialize the `ApplicationInspector` class. You can specify whether to exclude system apps, like *Music*, *Mail*, and others, by specifying `excludeSystemApps` in the initializer:\n\n```swift\nlet testApplicationInspector: ApplicationInspector = try await .init(excludeSystemApps: Bool)\n```\n\nThe `ApplicationInspector` class defines a `installedApplications` property, which contains an array of the loaded Applications, represented by a `ApplicationsListingResult` typealias. This typealias contains an `Application` if the reading of that Application was successful, or an `Application.ApplicationInitializationError` if the reading of that application failed.\n\nThe initializer for `ApplicationInspector` is throwable and provides the following errors:\n\n```swift\n/// The library does not have permissions to read the Applications directory\ncase couldNotReadContentsOfApplicationsDirectory(error: Error)\n```\n\n## License\n\nUnless otherwise specified or given my explicit permission, this software is licensed under [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fburesdv%2Fapplicationinspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fburesdv%2Fapplicationinspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fburesdv%2Fapplicationinspector/lists"}