Bluesky app fork with some witchin' additions 馃挮 witchsky.app
bluesky fork
at main 2.6 kB view raw
1const {withXcodeProject, IOSConfig} = require('@expo/config-plugins') 2const path = require('path') 3const PBXFile = require('xcode/lib/pbxFile') 4 5const withXcodeTarget = ( 6 config, 7 {extensionName, controllerName, soundFiles}, 8) => { 9 // eslint-disable-next-line no-shadow 10 return withXcodeProject(config, config => { 11 let pbxProject = config.modResults 12 13 const target = pbxProject.addTarget( 14 extensionName, 15 'app_extension', 16 extensionName, 17 ) 18 pbxProject.addBuildPhase([], 'PBXSourcesBuildPhase', 'Sources', target.uuid) 19 pbxProject.addBuildPhase( 20 [], 21 'PBXResourcesBuildPhase', 22 'Resources', 23 target.uuid, 24 ) 25 const pbxGroupKey = pbxProject.pbxCreateGroup(extensionName, extensionName) 26 pbxProject.addFile(`${extensionName}/Info.plist`, pbxGroupKey) 27 pbxProject.addSourceFile( 28 `${extensionName}/${controllerName}.swift`, 29 {target: target.uuid}, 30 pbxGroupKey, 31 ) 32 33 for (const file of soundFiles) { 34 pbxProject.addSourceFile( 35 `${extensionName}/${file}`, 36 {target: target.uuid}, 37 pbxGroupKey, 38 ) 39 } 40 41 var configurations = pbxProject.pbxXCBuildConfigurationSection() 42 for (var key in configurations) { 43 if (typeof configurations[key].buildSettings !== 'undefined') { 44 var buildSettingsObj = configurations[key].buildSettings 45 if ( 46 typeof buildSettingsObj.PRODUCT_NAME !== 'undefined' && 47 buildSettingsObj.PRODUCT_NAME === `"${extensionName}"` 48 ) { 49 buildSettingsObj.CLANG_ENABLE_MODULES = 'YES' 50 buildSettingsObj.INFOPLIST_FILE = `"${extensionName}/Info.plist"` 51 buildSettingsObj.CODE_SIGN_ENTITLEMENTS = `"${extensionName}/${extensionName}.entitlements"` 52 buildSettingsObj.CODE_SIGN_STYLE = 'Automatic' 53 buildSettingsObj.CURRENT_PROJECT_VERSION = `"${config.ios?.buildNumber}"` 54 buildSettingsObj.GENERATE_INFOPLIST_FILE = 'YES' 55 buildSettingsObj.MARKETING_VERSION = `"${config.version}"` 56 buildSettingsObj.PRODUCT_BUNDLE_IDENTIFIER = `"${config.ios?.bundleIdentifier}.${extensionName}"` 57 buildSettingsObj.SWIFT_EMIT_LOC_STRINGS = 'YES' 58 buildSettingsObj.SWIFT_VERSION = '5.0' 59 buildSettingsObj.TARGETED_DEVICE_FAMILY = `"1,2"` 60 buildSettingsObj.DEVELOPMENT_TEAM = 'B3LX46C5HS' 61 } 62 } 63 } 64 65 pbxProject.addTargetAttribute( 66 'DevelopmentTeam', 67 'B3LX46C5HS', 68 extensionName, 69 ) 70 pbxProject.addTargetAttribute('DevelopmentTeam', 'B3LX46C5HS') 71 72 return config 73 }) 74} 75 76module.exports = {withXcodeTarget}