Enable App Store builds without EAS, iOS 18 App Intents plugins, and signing fixes for distribution export. Add mobile invoice PDF preview, compact line items, and more reliable shortcut deep-link handling. Co-authored-by: Cursor <cursoragent@cursor.com>
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
// @ts-check
|
|
const { withXcodeProject } = require("@expo/config-plugins");
|
|
|
|
const RELEASE_SIGN_KEY = '"CODE_SIGN_IDENTITY[sdk=iphoneos*]"';
|
|
|
|
/**
|
|
* RN / Expo sets Release CODE_SIGN_IDENTITY to "iPhone Developer", which forces
|
|
* development-signed archives. Remove it so automatic signing picks Distribution
|
|
* for App Store archives.
|
|
*/
|
|
/** @type {import('@expo/config-plugins').ConfigPlugin} */
|
|
function withAppStoreSigning(config) {
|
|
return withXcodeProject(config, (config) => {
|
|
const project = config.modResults;
|
|
const configurations = project.pbxXCBuildConfigurationSection();
|
|
|
|
for (const key of Object.keys(configurations)) {
|
|
const buildConfig = configurations[key];
|
|
if (!buildConfig || typeof buildConfig !== "object" || !buildConfig.buildSettings) {
|
|
continue;
|
|
}
|
|
|
|
if (buildConfig.name !== "Release") {
|
|
continue;
|
|
}
|
|
|
|
const identity = buildConfig.buildSettings[RELEASE_SIGN_KEY];
|
|
if (
|
|
identity === "iPhone Developer" ||
|
|
identity === '"iPhone Developer"' ||
|
|
identity === "Apple Distribution" ||
|
|
identity === '"Apple Distribution"'
|
|
) {
|
|
delete buildConfig.buildSettings[RELEASE_SIGN_KEY];
|
|
}
|
|
}
|
|
|
|
return config;
|
|
});
|
|
}
|
|
|
|
module.exports = withAppStoreSigning;
|