A simple package for storing as well as showing app infos.
Add the following dependency to your Package.swift
:
.package(url: "https://github.com/sersoft-gmbh/app-information", from: "1.0.0"),
Or add it via Xcode (as of Xcode 11).
To use this package, you can use the AppInfo
and AppInfo.AppleID
models to store app information.
For SwiftUI applications, there's an environment value appInfo
that by default returns the current app's information.
The following information is stored in the AppInfo
(incl. where it's read from):
identifier
: ->Bundle.bundleIdentifier
orProcessInfo.processIdentifier
names.unlocalized.base
->Bundle.infoDictionary["CFBundleName"]
orProcessInfo.processName
names.unlocalized.display
->Bundle.infoDictionary["CFBundleDisplayName"]
names.localized.base
->Bundle.localizedInfoDictionary["CFBundleName"]
names.localized.display
->Bundle.localizedInfoDictionary["CFBundleDisplayName"]
versioning.version
->Bundle.infoDictionary["CFBundleShortVersionString"]
or"1.0.0"
versioning.build
->Bundle.infoDictionary["CFBundleVersion"]
or"1"
copyright
->"NSHumanReadableCopyright"
in either the localized or unlocalized info dictionary of theBundle
.appleID
->Bundle.infoDictionary["AppInformationAppleID"]
The AppInfo.AppleID
model can be used to e.g. generate app store page urls for showing the app in the app store or directly linking to the page where the user can write a review.
While not yet integrated, the following features might provide added value and could make it into this package in the future:
- Potentially read more values.
The API is documented using header doc. If you prefer to view the documentation as a webpage, there is an online version available for you.
If you find a bug / like to see a new feature in this package there are a few ways of helping out:
- If you can fix the bug / implement the feature yourself please do and open a PR.
- If you know how to code (which you probably do), please add a (failing) test and open a PR. We'll try to get your test green ASAP.
- If you can do neither, then open an issue. While this might be the easiest way, it will likely take the longest for the bug to be fixed / feature to be implemented.
See LICENSE file.