Move production to beenvoice.app with migrated accounts, refreshed auth and timer UX, and expanded invoice flows.
Official URL migration preserves sessions, shortcuts prefs, and last clock-in client; auth screens match web with legal links; time clock and invoice editor/send flows are updated for the new domain and UI patterns. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+36
-11
@@ -15,6 +15,10 @@ const SWIFT_FILES = [
|
||||
"BeenVoiceShortcuts.swift",
|
||||
];
|
||||
|
||||
const SHORTCUT_REGISTRATION = `Task {
|
||||
await BeenVoiceShortcuts.updateAppShortcutParameters()
|
||||
}`;
|
||||
|
||||
/** @type {import('@expo/config-plugins').ConfigPlugin} */
|
||||
function withAppIntents(config) {
|
||||
const appIntentsSource = path.join(
|
||||
@@ -42,7 +46,6 @@ function withAppIntents(config) {
|
||||
const appDelegatePath = path.join(targetDir, "AppDelegate.swift");
|
||||
if (fs.existsSync(appDelegatePath)) {
|
||||
let appDelegate = fs.readFileSync(appDelegatePath, "utf8");
|
||||
const marker = "BeenVoiceShortcuts.updateAppShortcutParameters";
|
||||
|
||||
if (!appDelegate.includes("import AppIntents")) {
|
||||
appDelegate = appDelegate.replace(
|
||||
@@ -51,21 +54,29 @@ function withAppIntents(config) {
|
||||
);
|
||||
}
|
||||
|
||||
if (appDelegate.includes(marker)) {
|
||||
if (!appDelegate.includes("BeenVoiceShortcuts.updateAppShortcutParameters")) {
|
||||
appDelegate = appDelegate.replace(
|
||||
/if #available\(iOS 16\.0, \*\)/g,
|
||||
"if #available(iOS 18.0, *)",
|
||||
"return super.application(application, didFinishLaunchingWithOptions: launchOptions)",
|
||||
`${SHORTCUT_REGISTRATION}
|
||||
|
||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)`,
|
||||
);
|
||||
} else {
|
||||
appDelegate = appDelegate.replace(
|
||||
"return super.application(application, didFinishLaunchingWithOptions: launchOptions)",
|
||||
`if #available(iOS 18.0, *) {
|
||||
Task {
|
||||
await BeenVoiceShortcuts.updateAppShortcutParameters()
|
||||
}
|
||||
}
|
||||
/if #available\(iOS 1[68]\.0, \*\) \{\s*Task \{\s*await BeenVoiceShortcuts\.updateAppShortcutParameters\(\)\s*\}\s*\}/g,
|
||||
SHORTCUT_REGISTRATION,
|
||||
);
|
||||
}
|
||||
|
||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)`,
|
||||
if (!appDelegate.includes("applicationDidBecomeActive")) {
|
||||
appDelegate = appDelegate.replace(
|
||||
" // Linking API",
|
||||
` public override func applicationDidBecomeActive(_ application: UIApplication) {
|
||||
${SHORTCUT_REGISTRATION}
|
||||
super.applicationDidBecomeActive(application)
|
||||
}
|
||||
|
||||
// Linking API`,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -111,6 +122,20 @@ function withAppIntents(config) {
|
||||
}
|
||||
}
|
||||
|
||||
const configurations = project.pbxXCBuildConfigurationSection();
|
||||
for (const key of Object.keys(configurations)) {
|
||||
const buildConfig = configurations[key];
|
||||
if (
|
||||
typeof buildConfig !== "object" ||
|
||||
!buildConfig.buildSettings ||
|
||||
buildConfig.buildSettings.PRODUCT_BUNDLE_IDENTIFIER !== "com.beenvoice.app"
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
buildConfig.buildSettings.EXTRACT_APP_INTENTS_METADATA = "YES";
|
||||
}
|
||||
|
||||
return config;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user