diff --git a/BusinessCard.xcodeproj/project.pbxproj b/BusinessCard.xcodeproj/project.pbxproj
index b88fc36..7251f64 100644
--- a/BusinessCard.xcodeproj/project.pbxproj
+++ b/BusinessCard.xcodeproj/project.pbxproj
@@ -626,9 +626,10 @@
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = BusinessCard/Info.plist;
- INFOPLIST_KEY_NSCameraUsageDescription = "BusinessCard uses your camera to scan QR cards and take profile, cover, or logo photos for your card.";
- INFOPLIST_KEY_NSContactsUsageDescription = "BusinessCard can save shared cards to your Apple Contacts when you choose to add them.";
- INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "BusinessCard uses your photo library so you can add profile, cover, and logo images to your card.";
+ INFOPLIST_KEY_CFBundleDisplayName = "$(PRODUCT_NAME)";
+ INFOPLIST_KEY_NSCameraUsageDescription = "$(PRODUCT_NAME) uses your camera to scan QR cards and take profile, cover, or logo photos for your card.";
+ INFOPLIST_KEY_NSContactsUsageDescription = "$(PRODUCT_NAME) can save shared cards to your Apple Contacts when you choose to add them.";
+ INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "$(PRODUCT_NAME) uses your photo library so you can add profile, cover, and logo images to your card.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_BackgroundColor = LaunchBackground;
@@ -663,9 +664,10 @@
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = BusinessCard/Info.plist;
- INFOPLIST_KEY_NSCameraUsageDescription = "BusinessCard uses your camera to scan QR cards and take profile, cover, or logo photos for your card.";
- INFOPLIST_KEY_NSContactsUsageDescription = "BusinessCard can save shared cards to your Apple Contacts when you choose to add them.";
- INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "BusinessCard uses your photo library so you can add profile, cover, and logo images to your card.";
+ INFOPLIST_KEY_CFBundleDisplayName = "$(PRODUCT_NAME)";
+ INFOPLIST_KEY_NSCameraUsageDescription = "$(PRODUCT_NAME) uses your camera to scan QR cards and take profile, cover, or logo photos for your card.";
+ INFOPLIST_KEY_NSContactsUsageDescription = "$(PRODUCT_NAME) can save shared cards to your Apple Contacts when you choose to add them.";
+ INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "$(PRODUCT_NAME) uses your photo library so you can add profile, cover, and logo images to your card.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_BackgroundColor = LaunchBackground;
diff --git a/BusinessCard.xcodeproj/xcuserdata/mattbruce.xcuserdatad/xcschemes/xcschememanagement.plist b/BusinessCard.xcodeproj/xcuserdata/mattbruce.xcuserdatad/xcschemes/xcschememanagement.plist
index 849d755..43dc255 100644
--- a/BusinessCard.xcodeproj/xcuserdata/mattbruce.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/BusinessCard.xcodeproj/xcuserdata/mattbruce.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -7,17 +7,17 @@
BusinessCard.xcscheme_^#shared#^_
orderHint
- 1
+ 2
BusinessCardClip.xcscheme_^#shared#^_
orderHint
- 2
+ 3
BusinessCardWatch Watch App.xcscheme_^#shared#^_
orderHint
- 3
+ 1
diff --git a/BusinessCard/Services/BundleAppMetadataProvider.swift b/BusinessCard/Services/BundleAppMetadataProvider.swift
index 4dfc310..7ae486c 100644
--- a/BusinessCard/Services/BundleAppMetadataProvider.swift
+++ b/BusinessCard/Services/BundleAppMetadataProvider.swift
@@ -10,7 +10,7 @@ struct BundleAppMetadataProvider: AppMetadataProviding {
var appName: String {
bundle.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
?? bundle.object(forInfoDictionaryKey: "CFBundleName") as? String
- ?? "BusinessCard"
+ ?? "App"
}
var appVersion: String {
diff --git a/BusinessCard/Views/OnboardingView.swift b/BusinessCard/Views/OnboardingView.swift
index e26d348..f29794c 100644
--- a/BusinessCard/Views/OnboardingView.swift
+++ b/BusinessCard/Views/OnboardingView.swift
@@ -13,6 +13,7 @@ struct OnboardingView: View {
@State private var contactsStatus: OnboardingPermissionStatus = .notRequested
private let totalSteps = 3
+ private let appName = BundleAppMetadataProvider().appName
var body: some View {
NavigationStack {
@@ -75,7 +76,7 @@ struct OnboardingView: View {
.foregroundStyle(Color.Accent.red)
VStack(alignment: .leading, spacing: Design.Spacing.small) {
- Text("Welcome to BusinessCard")
+ Text("Welcome to \(appName)")
.typography(.title)
.bold()
.foregroundStyle(Color.Text.primary)
diff --git a/BusinessCard/Views/SettingsView.swift b/BusinessCard/Views/SettingsView.swift
index c2bb2bc..484a225 100644
--- a/BusinessCard/Views/SettingsView.swift
+++ b/BusinessCard/Views/SettingsView.swift
@@ -15,6 +15,7 @@ struct SettingsView: View {
@Environment(\.openURL) private var openURL
@State private var settingsState = SettingsState()
@State private var showingResetOnboardingConfirmation = false
+ private let appName = BundleAppMetadataProvider().appName
var body: some View {
NavigationStack {
@@ -213,7 +214,8 @@ struct SettingsView: View {
title: "Send Feedback",
subtitle: "Email support"
) {
- guard let url = URL(string: "mailto:info@topdoglabs.com?subject=BusinessCard%20Support") else { return }
+ let subject = "\(appName) Support".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? "Support"
+ guard let url = URL(string: "mailto:info@topdoglabs.com?subject=\(subject)") else { return }
openURL(url)
}
@@ -347,7 +349,7 @@ struct SettingsView: View {
subtitle: "Generate and save app icon to Files",
backgroundColor: .clear
) {
- IconGeneratorView(config: .businessCard, appName: "BusinessCard")
+ IconGeneratorView(config: .businessCard, appName: appName)
}
SettingsDivider(color: AppBorder.subtle)
@@ -360,7 +362,7 @@ struct SettingsView: View {
BrandingPreviewView(
iconConfig: .businessCard,
launchConfig: .businessCard,
- appName: "BusinessCard"
+ appName: appName
)
}
}