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