42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
const { withInfoPlist } = require("expo/config-plugins");
|
|
|
|
module.exports = function withCustomScheme(config) {
|
|
return withInfoPlist(config, (config) => {
|
|
// Ensure CFBundleURLTypes exists
|
|
if (!config.modResults.CFBundleURLTypes) {
|
|
config.modResults.CFBundleURLTypes = [];
|
|
}
|
|
|
|
// Find or create our custom scheme entry
|
|
let customSchemeEntry = config.modResults.CFBundleURLTypes.find((entry) =>
|
|
entry.CFBundleURLSchemes?.includes("com.alertesecours.alertesecours"),
|
|
);
|
|
|
|
if (!customSchemeEntry) {
|
|
customSchemeEntry = {
|
|
CFBundleURLName: "com.alertesecours.alertesecours",
|
|
CFBundleURLSchemes: ["com.alertesecours.alertesecours"],
|
|
};
|
|
config.modResults.CFBundleURLTypes.push(customSchemeEntry);
|
|
} else if (!customSchemeEntry.CFBundleURLName) {
|
|
customSchemeEntry.CFBundleURLName = "com.alertesecours.alertesecours";
|
|
}
|
|
|
|
// Find or create Expo scheme entry
|
|
let expoSchemeEntry = config.modResults.CFBundleURLTypes.find((entry) =>
|
|
entry.CFBundleURLSchemes?.includes("exp+alerte-secours"),
|
|
);
|
|
|
|
if (!expoSchemeEntry) {
|
|
expoSchemeEntry = {
|
|
CFBundleURLName: "com.alertesecours.alertesecours.expo",
|
|
CFBundleURLSchemes: ["exp+alerte-secours"],
|
|
};
|
|
config.modResults.CFBundleURLTypes.push(expoSchemeEntry);
|
|
} else if (!expoSchemeEntry.CFBundleURLName) {
|
|
expoSchemeEntry.CFBundleURLName = "com.alertesecours.alertesecours.expo";
|
|
}
|
|
|
|
return config;
|
|
});
|
|
};
|