deer social fork for personal usage. but you might see a use idk. github mirror
at main 14 kB view raw
1const pkg = require('./package.json') 2 3module.exports = function (_config) { 4 /** 5 * App version number. Should be incremented as part of a release cycle. 6 */ 7 const VERSION = pkg.version 8 9 /** 10 * Uses built-in Expo env vars 11 * 12 * @see https://docs.expo.dev/build-reference/variables/#built-in-environment-variables 13 */ 14 const PLATFORM = process.env.EAS_BUILD_PLATFORM 15 16 const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight' 17 const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production' 18 const IS_DEV = 19 process.env.EXPO_PUBLIC_ENV === 'development' || 20 (!IS_TESTFLIGHT && !IS_PRODUCTION) 21 22 const ASSOCIATED_DOMAINS = [ 23 'applinks:deer.aylac.top', 24 'applinks:deer-social-ayla.pages.dev', 25 // When testing local services, enter an ngrok (et al) domain here. It must use a standard HTTP/HTTPS port. 26 ...(IS_DEV || IS_TESTFLIGHT ? [] : []), 27 ] 28 29 // const UPDATES_CHANNEL = IS_TESTFLIGHT 30 // ? 'testflight' 31 // : IS_PRODUCTION 32 // ? 'production' 33 // : undefined 34 // const UPDATES_ENABLED = !!UPDATES_CHANNEL 35 const UPDATES_ENABLED = IS_TESTFLIGHT || IS_PRODUCTION 36 37 return { 38 expo: { 39 version: VERSION, 40 name: IS_DEV ? 'Deer (dev)' : 'Deer', 41 slug: 'deer', 42 scheme: ['bluesky', 'deer'], 43 // owner: 'blueskysocial', 44 // owner: 'neema.brown', 45 runtimeVersion: { 46 policy: 'appVersion', 47 }, 48 icon: IS_DEV 49 ? './assets/app-icons/ios_icon_dev.png' 50 : './assets/app-icons/ios_icon_default_light.png', 51 userInterfaceStyle: 'automatic', 52 primaryColor: '#4b9b6c', 53 newArchEnabled: false, 54 ios: { 55 supportsTablet: false, 56 bundleIdentifier: IS_DEV ? 'dev.top.aylac.deer' : 'top.aylac.deer', 57 config: { 58 usesNonExemptEncryption: false, 59 }, 60 infoPlist: { 61 UIBackgroundModes: ['remote-notification'], 62 NSCameraUsageDescription: 63 'Used for profile pictures, posts, and other kinds of content.', 64 NSMicrophoneUsageDescription: 65 'Used for posts and other kinds of content.', 66 NSPhotoLibraryAddUsageDescription: 67 'Used to save images to your library.', 68 NSPhotoLibraryUsageDescription: 69 'Used for profile pictures, posts, and other kinds of content', 70 CFBundleSpokenName: 'Deer', 71 CFBundleLocalizations: [ 72 'en', 73 'an', 74 'ast', 75 'ca', 76 'cy', 77 'da', 78 'de', 79 'el', 80 'eo', 81 'es', 82 'eu', 83 'fi', 84 'fr', 85 'fy', 86 'ga', 87 'gd', 88 'gl', 89 'hi', 90 'hu', 91 'ia', 92 'id', 93 'it', 94 'ja', 95 'km', 96 'ko', 97 'ne', 98 'nl', 99 'pl', 100 'pt-BR', 101 'pt-PT', 102 'ro', 103 'ru', 104 'sv', 105 'th', 106 'tr', 107 'uk', 108 'vi', 109 'yue', 110 'zh-Hans', 111 'zh-Hant', 112 ], 113 UIDesignRequiresCompatibility: true, 114 }, 115 associatedDomains: ASSOCIATED_DOMAINS, 116 entitlements: { 117 'com.apple.developer.kernel.increased-memory-limit': true, 118 'com.apple.developer.kernel.extended-virtual-addressing': true, 119 'com.apple.security.application-groups': 'group.top.aylac.deer', 120 }, 121 privacyManifests: { 122 NSPrivacyAccessedAPITypes: [ 123 { 124 NSPrivacyAccessedAPIType: 125 'NSPrivacyAccessedAPICategoryFileTimestamp', 126 NSPrivacyAccessedAPITypeReasons: ['C617.1', '3B52.1', '0A2A.1'], 127 }, 128 { 129 NSPrivacyAccessedAPIType: 'NSPrivacyAccessedAPICategoryDiskSpace', 130 NSPrivacyAccessedAPITypeReasons: ['E174.1', '85F4.1'], 131 }, 132 { 133 NSPrivacyAccessedAPIType: 134 'NSPrivacyAccessedAPICategorySystemBootTime', 135 NSPrivacyAccessedAPITypeReasons: ['35F9.1'], 136 }, 137 { 138 NSPrivacyAccessedAPIType: 139 'NSPrivacyAccessedAPICategoryUserDefaults', 140 NSPrivacyAccessedAPITypeReasons: ['CA92.1', '1C8F.1'], 141 }, 142 ], 143 }, 144 }, 145 androidStatusBar: { 146 barStyle: 'light-content', 147 }, 148 // Dark nav bar in light mode is better than light nav bar in dark mode 149 androidNavigationBar: { 150 barStyle: 'light-content', 151 }, 152 android: { 153 icon: IS_DEV 154 ? './assets/app-icons/android_icon_dev.png' 155 : './assets/app-icons/android_icon_default_light.png', 156 adaptiveIcon: { 157 foregroundImage: './assets/icon-android-foreground.png', 158 monochromeImage: './assets/icon-android-foreground.png', 159 backgroundImage: './assets/icon-android-background.png', 160 backgroundColor: '#4b9b6c', 161 }, 162 package: IS_DEV ? 'dev.top.aylac.deer' : 'top.aylac.deer', 163 intentFilters: [ 164 { 165 action: 'VIEW', 166 autoVerify: true, 167 data: [ 168 { 169 scheme: 'https', 170 host: 'deer-social-ayla.pages.dev', 171 }, 172 { 173 scheme: 'https', 174 host: 'deer.aylac.top', 175 }, 176 { 177 scheme: 'https', 178 host: 'deer.social', 179 }, 180 { 181 scheme: 'https', 182 host: 'bsky.app', 183 }, 184 IS_DEV && { 185 scheme: 'http', 186 host: 'localhost:19006', 187 }, 188 ], 189 category: ['BROWSABLE', 'DEFAULT'], 190 }, 191 ], 192 }, 193 web: { 194 favicon: './assets/favicon.png', 195 }, 196 // updates: { 197 // url: 'https://updates.bsky.app/manifest', 198 // enabled: UPDATES_ENABLED, 199 // fallbackToCacheTimeout: 30000, 200 // codeSigningCertificate: UPDATES_ENABLED 201 // ? './code-signing/certificate.pem' 202 // : undefined, 203 // codeSigningMetadata: UPDATES_ENABLED 204 // ? { 205 // keyid: 'main', 206 // alg: 'rsa-v1_5-sha256', 207 // } 208 // : undefined, 209 // checkAutomatically: 'NEVER', 210 // channel: UPDATES_CHANNEL, 211 // }, 212 updates: { 213 url: 'https://updates.bsky.app/manifest', 214 enabled: UPDATES_ENABLED, 215 fallbackToCacheTimeout: 30000, 216 codeSigningCertificate: UPDATES_ENABLED 217 ? './code-signing/certificate.pem' 218 : undefined, 219 codeSigningMetadata: UPDATES_ENABLED 220 ? { 221 keyid: 'main', 222 alg: 'rsa-v1_5-sha256', 223 } 224 : undefined, 225 checkAutomatically: 'NEVER', 226 }, 227 plugins: [ 228 'expo-video', 229 'expo-localization', 230 'expo-web-browser', 231 [ 232 'react-native-edge-to-edge', 233 {android: {enforceNavigationBarContrast: false}}, 234 ], 235 [ 236 'expo-build-properties', 237 { 238 ios: { 239 deploymentTarget: '15.1', 240 buildReactNativeFromSource: true, 241 }, 242 android: { 243 compileSdkVersion: 35, 244 targetSdkVersion: 35, 245 buildToolsVersion: '35.0.0', 246 }, 247 }, 248 ], 249 [ 250 'expo-notifications', 251 { 252 icon: './assets/icon-android-notification.png', 253 color: '#4b9b6c', 254 sounds: PLATFORM === 'ios' ? ['assets/dm.aiff'] : ['assets/dm.mp3'], 255 }, 256 ], 257 'react-native-compressor', 258 './plugins/starterPackAppClipExtension/withStarterPackAppClip.js', 259 './plugins/withGradleJVMHeapSizeIncrease.js', 260 './plugins/withAndroidManifestLargeHeapPlugin.js', 261 './plugins/withAndroidManifestIntentQueriesPlugin.js', 262 './plugins/withAndroidStylesAccentColorPlugin.js', 263 './plugins/withAndroidDayNightThemePlugin.js', 264 './plugins/withAndroidNoJitpackPlugin.js', 265 './plugins/shareExtension/withShareExtensions.js', 266 './plugins/notificationsExtension/withNotificationsExtension.js', 267 [ 268 'expo-font', 269 { 270 fonts: [ 271 './assets/fonts/inter/InterVariable.woff2', 272 './assets/fonts/inter/InterVariable-Italic.woff2', 273 // Android only 274 './assets/fonts/inter/Inter-Regular.otf', 275 './assets/fonts/inter/Inter-Italic.otf', 276 './assets/fonts/inter/Inter-Medium.otf', 277 './assets/fonts/inter/Inter-MediumItalic.otf', 278 './assets/fonts/inter/Inter-SemiBold.otf', 279 './assets/fonts/inter/Inter-SemiBoldItalic.otf', 280 './assets/fonts/inter/Inter-Bold.otf', 281 './assets/fonts/inter/Inter-BoldItalic.otf', 282 ], 283 }, 284 ], 285 [ 286 'expo-splash-screen', 287 { 288 ios: { 289 enableFullScreenImage_legacy: true, 290 backgroundColor: '#ffffff', 291 image: './assets/splash.png', 292 resizeMode: 'cover', 293 dark: { 294 enableFullScreenImage_legacy: true, 295 backgroundColor: '#03180c', 296 image: './assets/splash-dark.png', 297 resizeMode: 'cover', 298 }, 299 }, 300 android: { 301 backgroundColor: '#4b9b6c', 302 image: './assets/splash-android-icon.png', 303 imageWidth: 150, 304 dark: { 305 backgroundColor: '#01331a', 306 image: './assets/splash-android-icon-dark.png', 307 imageWidth: 150, 308 }, 309 }, 310 }, 311 ], 312 [ 313 '@mozzius/expo-dynamic-app-icon', 314 { 315 /** 316 * Default set 317 */ 318 default_light: { 319 ios: './assets/app-icons/ios_icon_default_light.png', 320 android: './assets/app-icons/android_icon_default_light.png', 321 prerendered: true, 322 }, 323 default_dark: { 324 ios: './assets/app-icons/ios_icon_default_dark.png', 325 android: './assets/app-icons/android_icon_default_dark.png', 326 prerendered: true, 327 }, 328 dev: { 329 ios: './assets/app-icons/ios_icon_dev.png', 330 android: './assets/app-icons/android_icon_dev.png', 331 prerendered: true, 332 }, 333 334 /** 335 * Bluesky+ core set 336 */ 337 // core_aurora: { 338 // ios: './assets/app-icons/ios_icon_core_aurora.png', 339 // android: './assets/app-icons/android_icon_core_aurora.png', 340 // prerendered: true, 341 // }, 342 // core_bonfire: { 343 // ios: './assets/app-icons/ios_icon_core_bonfire.png', 344 // android: './assets/app-icons/android_icon_core_bonfire.png', 345 // prerendered: true, 346 // }, 347 // core_sunrise: { 348 // ios: './assets/app-icons/ios_icon_core_sunrise.png', 349 // android: './assets/app-icons/android_icon_core_sunrise.png', 350 // prerendered: true, 351 // }, 352 // core_sunset: { 353 // ios: './assets/app-icons/ios_icon_core_sunset.png', 354 // android: './assets/app-icons/android_icon_core_sunset.png', 355 // prerendered: true, 356 // }, 357 // core_midnight: { 358 // ios: './assets/app-icons/ios_icon_core_midnight.png', 359 // android: './assets/app-icons/android_icon_core_midnight.png', 360 // prerendered: true, 361 // }, 362 // core_flat_blue: { 363 // ios: './assets/app-icons/ios_icon_core_flat_blue.png', 364 // android: './assets/app-icons/android_icon_core_flat_blue.png', 365 // prerendered: true, 366 // }, 367 // core_flat_white: { 368 // ios: './assets/app-icons/ios_icon_core_flat_white.png', 369 // android: './assets/app-icons/android_icon_core_flat_white.png', 370 // prerendered: true, 371 // }, 372 // core_flat_black: { 373 // ios: './assets/app-icons/ios_icon_core_flat_black.png', 374 // android: './assets/app-icons/android_icon_core_flat_black.png', 375 // prerendered: true, 376 // }, 377 // core_classic: { 378 // ios: './assets/app-icons/ios_icon_core_classic.png', 379 // android: './assets/app-icons/android_icon_core_classic.png', 380 // prerendered: true, 381 // }, 382 }, 383 ], 384 ['expo-screen-orientation', {initialOrientation: 'PORTRAIT_UP'}], 385 ].filter(Boolean), 386 extra: { 387 eas: { 388 build: { 389 experimental: { 390 ios: { 391 // appExtensions: [ 392 // { 393 // targetName: 'Share-with-Bluesky', 394 // bundleIdentifier: 'xyz.blueskyweb.app.Share-with-Bluesky', 395 // entitlements: { 396 // 'com.apple.security.application-groups': [ 397 // 'group.app.bsky', 398 // ], 399 // }, 400 // }, 401 // { 402 // targetName: 'BlueskyNSE', 403 // bundleIdentifier: 'xyz.blueskyweb.app.BlueskyNSE', 404 // entitlements: { 405 // 'com.apple.security.application-groups': [ 406 // 'group.app.bsky', 407 // ], 408 // }, 409 // }, 410 // { 411 // targetName: 'BlueskyClip', 412 // bundleIdentifier: 'xyz.blueskyweb.app.AppClip', 413 // }, 414 // ], 415 }, 416 }, 417 }, 418 projectId: '2be8925e-1389-44f9-89b9-d5159691e8af', 419 }, 420 }, 421 }, 422 } 423}