diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/withAppDelegateReferrer.js | 46 | ||||
-rw-r--r-- | plugins/withNoBundleCompression.js | 70 |
2 files changed, 23 insertions, 93 deletions
diff --git a/plugins/withAppDelegateReferrer.js b/plugins/withAppDelegateReferrer.js index de773df07..69feec57d 100644 --- a/plugins/withAppDelegateReferrer.js +++ b/plugins/withAppDelegateReferrer.js @@ -1,41 +1,41 @@ const {withAppDelegate} = require('@expo/config-plugins') const {mergeContents} = require('@expo/config-plugins/build/utils/generateCode') -const path = require('path') -const fs = require('fs') -module.exports = config => { - // eslint-disable-next-line no-shadow - return withAppDelegate(config, async config => { - const delegatePath = path.join( - config.modRequest.platformProjectRoot, - 'AppDelegate.mm', - ) +module.exports = config => + withAppDelegate(config, config => { + let contents = config.modResults.contents - let newContents = config.modResults.contents - newContents = mergeContents({ - src: newContents, + contents = mergeContents({ + src: contents, anchor: '// Linking API', newSrc: ` - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults setObject:options[UIApplicationOpenURLOptionsSourceApplicationKey] forKey:@"referrerApp"];\n`, - offset: 2, + // @generated begin referrer info – deep links + let defaults = UserDefaults.standard + defaults.set( + options[.sourceApplication] as? String, + forKey: "referrerApp" + ) + // @generated end referrer info – deep links +`, + offset: 6, tag: 'referrer info - deep links', comment: '//', }).contents - newContents = mergeContents({ - src: newContents, + contents = mergeContents({ + src: contents, anchor: '// Universal Links', newSrc: ` - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults setURL:userActivity.referrerURL forKey:@"referrer"];\n`, - offset: 2, + // @generated begin referrer info – universal links + let defaults = UserDefaults.standard + defaults.set(userActivity.referrerURL, forKey: "referrer") + // @generated end referrer info – universal links +`, + offset: 6, tag: 'referrer info - universal links', comment: '//', }).contents - config.modResults.contents = newContents - + config.modResults.contents = contents return config }) -} diff --git a/plugins/withNoBundleCompression.js b/plugins/withNoBundleCompression.js deleted file mode 100644 index 73e571633..000000000 --- a/plugins/withNoBundleCompression.js +++ /dev/null @@ -1,70 +0,0 @@ -const {withAppBuildGradle} = require('@expo/config-plugins') - -/** - * A Config Plugin to disable bundle compression in Android build.gradle. - * @param {import('@expo/config-plugins').ConfigPlugin} config - * @returns {import('@expo/config-plugins').ConfigPlugin} - */ -module.exports = function withNoBundleCompression(config) { - return withAppBuildGradle(config, androidConfig => { - let buildGradle = androidConfig.modResults.contents - - const hasAndroidResources = buildGradle.includes('androidResources {') - const hasNoCompress = buildGradle.includes('noCompress') - - if (hasAndroidResources) { - if (hasNoCompress) { - if ( - buildGradle.includes('noCompress += ["bundle"]') || - buildGradle.includes("noCompress += 'bundle'") || - buildGradle.includes('noCompress += "bundle"') - ) { - return androidConfig - } - - const lines = buildGradle.split('\n') - const modifiedLines = lines.map(line => { - if (line.trim().startsWith('noCompress')) { - if (line.includes('+=')) { - return line.replace(/\]/, ', "bundle"]') - } else if (line.includes('=')) { - return line.replace('=', '+= ["bundle",') + ']' - } - } - return line - }) - androidConfig.modResults.contents = modifiedLines.join('\n') - } else { - const androidResources = buildGradle.indexOf('androidResources {') - if (androidResources === -1) { - throw new Error( - `Cannot find androidResources { block in build.gradle!`, - ) - } - const insertPosition = buildGradle.indexOf('\n', androidResources) + 1 - const newContent = - buildGradle.slice(0, insertPosition) + - ' noCompress += ["bundle"]\n' + - buildGradle.slice(insertPosition) - - androidConfig.modResults.contents = newContent - } - } else { - const androidBlock = buildGradle.indexOf('android {') - if (androidBlock === -1) { - throw new Error(`Cannot find android { block in build.gradle!`) - } - const insertPosition = buildGradle.indexOf('\n', androidBlock) + 1 - const newContent = - buildGradle.slice(0, insertPosition) + - ' androidResources {\n' + - ' noCompress += ["bundle"]\n' + - ' }\n' + - buildGradle.slice(insertPosition) - - androidConfig.modResults.contents = newContent - } - - return androidConfig - }) -} |