Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
5fa0a2e4eb
commit
f230aeb0d9
@ -626,9 +626,10 @@
|
|||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = BusinessCard/Info.plist;
|
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_CFBundleDisplayName = "$(PRODUCT_NAME)";
|
||||||
INFOPLIST_KEY_NSContactsUsageDescription = "BusinessCard can save shared cards to your Apple Contacts when you choose to add them.";
|
INFOPLIST_KEY_NSCameraUsageDescription = "$(PRODUCT_NAME) uses your camera to scan QR cards and take profile, cover, or logo photos for your card.";
|
||||||
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "BusinessCard uses your photo library so you can add profile, cover, and logo images to 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_UIApplicationSceneManifest_Generation = YES;
|
||||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
INFOPLIST_KEY_UILaunchScreen_BackgroundColor = LaunchBackground;
|
INFOPLIST_KEY_UILaunchScreen_BackgroundColor = LaunchBackground;
|
||||||
@ -663,9 +664,10 @@
|
|||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = BusinessCard/Info.plist;
|
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_CFBundleDisplayName = "$(PRODUCT_NAME)";
|
||||||
INFOPLIST_KEY_NSContactsUsageDescription = "BusinessCard can save shared cards to your Apple Contacts when you choose to add them.";
|
INFOPLIST_KEY_NSCameraUsageDescription = "$(PRODUCT_NAME) uses your camera to scan QR cards and take profile, cover, or logo photos for your card.";
|
||||||
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "BusinessCard uses your photo library so you can add profile, cover, and logo images to 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_UIApplicationSceneManifest_Generation = YES;
|
||||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
INFOPLIST_KEY_UILaunchScreen_BackgroundColor = LaunchBackground;
|
INFOPLIST_KEY_UILaunchScreen_BackgroundColor = LaunchBackground;
|
||||||
|
|||||||
@ -7,17 +7,17 @@
|
|||||||
<key>BusinessCard.xcscheme_^#shared#^_</key>
|
<key>BusinessCard.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>2</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>BusinessCardClip.xcscheme_^#shared#^_</key>
|
<key>BusinessCardClip.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>2</integer>
|
<integer>3</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>BusinessCardWatch Watch App.xcscheme_^#shared#^_</key>
|
<key>BusinessCardWatch Watch App.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>3</integer>
|
<integer>1</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
|||||||
@ -10,7 +10,7 @@ struct BundleAppMetadataProvider: AppMetadataProviding {
|
|||||||
var appName: String {
|
var appName: String {
|
||||||
bundle.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
|
bundle.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
|
||||||
?? bundle.object(forInfoDictionaryKey: "CFBundleName") as? String
|
?? bundle.object(forInfoDictionaryKey: "CFBundleName") as? String
|
||||||
?? "BusinessCard"
|
?? "App"
|
||||||
}
|
}
|
||||||
|
|
||||||
var appVersion: String {
|
var appVersion: String {
|
||||||
|
|||||||
@ -13,6 +13,7 @@ struct OnboardingView: View {
|
|||||||
@State private var contactsStatus: OnboardingPermissionStatus = .notRequested
|
@State private var contactsStatus: OnboardingPermissionStatus = .notRequested
|
||||||
|
|
||||||
private let totalSteps = 3
|
private let totalSteps = 3
|
||||||
|
private let appName = BundleAppMetadataProvider().appName
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationStack {
|
NavigationStack {
|
||||||
@ -75,7 +76,7 @@ struct OnboardingView: View {
|
|||||||
.foregroundStyle(Color.Accent.red)
|
.foregroundStyle(Color.Accent.red)
|
||||||
|
|
||||||
VStack(alignment: .leading, spacing: Design.Spacing.small) {
|
VStack(alignment: .leading, spacing: Design.Spacing.small) {
|
||||||
Text("Welcome to BusinessCard")
|
Text("Welcome to \(appName)")
|
||||||
.typography(.title)
|
.typography(.title)
|
||||||
.bold()
|
.bold()
|
||||||
.foregroundStyle(Color.Text.primary)
|
.foregroundStyle(Color.Text.primary)
|
||||||
|
|||||||
@ -15,6 +15,7 @@ struct SettingsView: View {
|
|||||||
@Environment(\.openURL) private var openURL
|
@Environment(\.openURL) private var openURL
|
||||||
@State private var settingsState = SettingsState()
|
@State private var settingsState = SettingsState()
|
||||||
@State private var showingResetOnboardingConfirmation = false
|
@State private var showingResetOnboardingConfirmation = false
|
||||||
|
private let appName = BundleAppMetadataProvider().appName
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationStack {
|
NavigationStack {
|
||||||
@ -213,7 +214,8 @@ struct SettingsView: View {
|
|||||||
title: "Send Feedback",
|
title: "Send Feedback",
|
||||||
subtitle: "Email support"
|
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)
|
openURL(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,7 +349,7 @@ struct SettingsView: View {
|
|||||||
subtitle: "Generate and save app icon to Files",
|
subtitle: "Generate and save app icon to Files",
|
||||||
backgroundColor: .clear
|
backgroundColor: .clear
|
||||||
) {
|
) {
|
||||||
IconGeneratorView(config: .businessCard, appName: "BusinessCard")
|
IconGeneratorView(config: .businessCard, appName: appName)
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsDivider(color: AppBorder.subtle)
|
SettingsDivider(color: AppBorder.subtle)
|
||||||
@ -360,7 +362,7 @@ struct SettingsView: View {
|
|||||||
BrandingPreviewView(
|
BrandingPreviewView(
|
||||||
iconConfig: .businessCard,
|
iconConfig: .businessCard,
|
||||||
launchConfig: .businessCard,
|
launchConfig: .businessCard,
|
||||||
appName: "BusinessCard"
|
appName: appName
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user