6e69b0a987
Revert "another attempt" This reverts commit adfd562f02defc8d1e031b7a007d352f69eeb274. Revert "sigh" This reverts commit de6296d2814165c59d100f18af23df5b94ceb7c4. sigh another attempt okay maybe a solid solution change some things and....try again try again sigh...only support iphone fix app config remove unused files temp eas update cleanup plugin get app clip working progress add more to plugin start working on build plugin rename setup app clip fix created at oops, wrong workflow temp workflow edit add a bunch of libs to exclusion drop the fork rm manual config for clip fix name as well fix target name
270 lines
8.2 KiB
JavaScript
270 lines
8.2 KiB
JavaScript
const pkg = require('./package.json')
|
|
|
|
const SPLASH_CONFIG = {
|
|
backgroundColor: '#ffffff',
|
|
image: './assets/splash.png',
|
|
resizeMode: 'cover',
|
|
}
|
|
const DARK_SPLASH_CONFIG = {
|
|
backgroundColor: '#001429',
|
|
image: './assets/splash-dark.png',
|
|
resizeMode: 'cover',
|
|
}
|
|
|
|
const SPLASH_CONFIG_ANDROID = {
|
|
backgroundColor: '#0c7cff',
|
|
image: './assets/splash.png',
|
|
resizeMode: 'cover',
|
|
}
|
|
const DARK_SPLASH_CONFIG_ANDROID = {
|
|
backgroundColor: '#0f141b',
|
|
image: './assets/splash-dark.png',
|
|
resizeMode: 'cover',
|
|
}
|
|
|
|
const ASSOCIATED_DOMAINS = ['applinks:bsky.app', 'applinks:staging.bsky.app']
|
|
|
|
module.exports = function (config) {
|
|
/**
|
|
* App version number. Should be incremented as part of a release cycle.
|
|
*/
|
|
const VERSION = pkg.version
|
|
|
|
/**
|
|
* Uses built-in Expo env vars
|
|
*
|
|
* @see https://docs.expo.dev/build-reference/variables/#built-in-environment-variables
|
|
*/
|
|
const PLATFORM = process.env.EAS_BUILD_PLATFORM
|
|
|
|
const IS_DEV = process.env.EXPO_PUBLIC_ENV === 'development'
|
|
const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight'
|
|
const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production'
|
|
|
|
const UPDATES_CHANNEL = IS_TESTFLIGHT
|
|
? 'testflight'
|
|
: IS_PRODUCTION
|
|
? 'production'
|
|
: undefined
|
|
const UPDATES_ENABLED = !!UPDATES_CHANNEL
|
|
|
|
const SENTRY_DIST = `${PLATFORM}.${VERSION}.${IS_TESTFLIGHT ? 'tf' : ''}${
|
|
IS_DEV ? 'dev' : ''
|
|
}`
|
|
|
|
return {
|
|
expo: {
|
|
version: VERSION,
|
|
name: 'Bluesky',
|
|
slug: 'bluesky',
|
|
scheme: 'bluesky',
|
|
owner: 'blueskysocial',
|
|
runtimeVersion: {
|
|
policy: 'appVersion',
|
|
},
|
|
orientation: 'portrait',
|
|
icon: './assets/icon.png',
|
|
userInterfaceStyle: 'automatic',
|
|
splash: SPLASH_CONFIG,
|
|
// hsl(211, 99%, 53%), same as palette.default.brandText
|
|
primaryColor: '#1083fe',
|
|
ios: {
|
|
supportsTablet: false,
|
|
bundleIdentifier: 'xyz.blueskyweb.app',
|
|
config: {
|
|
usesNonExemptEncryption: false,
|
|
},
|
|
infoPlist: {
|
|
UIBackgroundModes: ['remote-notification'],
|
|
NSCameraUsageDescription:
|
|
'Used for profile pictures, posts, and other kinds of content.',
|
|
NSMicrophoneUsageDescription:
|
|
'Used for posts and other kinds of content.',
|
|
NSPhotoLibraryAddUsageDescription:
|
|
'Used to save images to your library.',
|
|
NSPhotoLibraryUsageDescription:
|
|
'Used for profile pictures, posts, and other kinds of content',
|
|
},
|
|
associatedDomains: ASSOCIATED_DOMAINS,
|
|
splash: {
|
|
...SPLASH_CONFIG,
|
|
dark: DARK_SPLASH_CONFIG,
|
|
},
|
|
entitlements: {
|
|
'com.apple.security.application-groups': 'group.app.bsky',
|
|
},
|
|
privacyManifests: {
|
|
NSPrivacyAccessedAPITypes: [
|
|
{
|
|
NSPrivacyAccessedAPIType:
|
|
'NSPrivacyAccessedAPICategoryFileTimestamp',
|
|
NSPrivacyAccessedAPITypeReasons: ['C617.1', '3B52.1', '0A2A.1'],
|
|
},
|
|
{
|
|
NSPrivacyAccessedAPIType: 'NSPrivacyAccessedAPICategoryDiskSpace',
|
|
NSPrivacyAccessedAPITypeReasons: ['E174.1', '85F4.1'],
|
|
},
|
|
{
|
|
NSPrivacyAccessedAPIType:
|
|
'NSPrivacyAccessedAPICategorySystemBootTime',
|
|
NSPrivacyAccessedAPITypeReasons: ['35F9.1'],
|
|
},
|
|
{
|
|
NSPrivacyAccessedAPIType:
|
|
'NSPrivacyAccessedAPICategoryUserDefaults',
|
|
NSPrivacyAccessedAPITypeReasons: ['CA92.1', '1C8F.1'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
androidStatusBar: {
|
|
barStyle: 'light-content',
|
|
backgroundColor: '#00000000',
|
|
},
|
|
// Dark nav bar in light mode is better than light nav bar in dark mode
|
|
androidNavigationBar: {
|
|
barStyle: 'light-content',
|
|
backgroundColor: DARK_SPLASH_CONFIG_ANDROID.backgroundColor,
|
|
},
|
|
android: {
|
|
icon: './assets/icon.png',
|
|
adaptiveIcon: {
|
|
foregroundImage: './assets/icon-android-foreground.png',
|
|
monochromeImage: './assets/icon-android-foreground.png',
|
|
backgroundImage: './assets/icon-android-background.png',
|
|
backgroundColor: '#1185FE',
|
|
},
|
|
googleServicesFile: './google-services.json',
|
|
package: 'xyz.blueskyweb.app',
|
|
intentFilters: [
|
|
{
|
|
action: 'VIEW',
|
|
autoVerify: true,
|
|
data: [
|
|
{
|
|
scheme: 'https',
|
|
host: 'bsky.app',
|
|
},
|
|
IS_DEV && {
|
|
scheme: 'http',
|
|
host: 'localhost:19006',
|
|
},
|
|
],
|
|
category: ['BROWSABLE', 'DEFAULT'],
|
|
},
|
|
],
|
|
splash: {
|
|
...SPLASH_CONFIG_ANDROID,
|
|
dark: DARK_SPLASH_CONFIG_ANDROID,
|
|
},
|
|
},
|
|
web: {
|
|
favicon: './assets/favicon.png',
|
|
},
|
|
updates: {
|
|
url: 'https://updates.bsky.app/manifest',
|
|
enabled: UPDATES_ENABLED,
|
|
fallbackToCacheTimeout: 30000,
|
|
codeSigningCertificate: UPDATES_ENABLED
|
|
? './code-signing/certificate.pem'
|
|
: undefined,
|
|
codeSigningMetadata: UPDATES_ENABLED
|
|
? {
|
|
keyid: 'main',
|
|
alg: 'rsa-v1_5-sha256',
|
|
}
|
|
: undefined,
|
|
checkAutomatically: 'NEVER',
|
|
channel: UPDATES_CHANNEL,
|
|
},
|
|
plugins: [
|
|
'expo-localization',
|
|
Boolean(process.env.SENTRY_AUTH_TOKEN) && 'sentry-expo',
|
|
[
|
|
'expo-build-properties',
|
|
{
|
|
ios: {
|
|
deploymentTarget: '14.0',
|
|
newArchEnabled: false,
|
|
},
|
|
android: {
|
|
compileSdkVersion: 34,
|
|
targetSdkVersion: 34,
|
|
buildToolsVersion: '34.0.0',
|
|
kotlinVersion: '1.8.0',
|
|
newArchEnabled: false,
|
|
},
|
|
},
|
|
],
|
|
[
|
|
'expo-notifications',
|
|
{
|
|
icon: './assets/icon-android-notification.png',
|
|
color: '#1185fe',
|
|
sounds: PLATFORM === 'ios' ? ['assets/dm.aiff'] : ['assets/dm.mp3'],
|
|
},
|
|
],
|
|
'./plugins/starterPackAppClipExtension/withStarterPackAppClip.js',
|
|
'./plugins/withAndroidManifestPlugin.js',
|
|
'./plugins/withAndroidManifestFCMIconPlugin.js',
|
|
'./plugins/withAndroidStylesWindowBackgroundPlugin.js',
|
|
'./plugins/withAndroidStylesAccentColorPlugin.js',
|
|
'./plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js',
|
|
'./plugins/shareExtension/withShareExtensions.js',
|
|
'./plugins/notificationsExtension/withNotificationsExtension.js',
|
|
].filter(Boolean),
|
|
extra: {
|
|
eas: {
|
|
build: {
|
|
experimental: {
|
|
ios: {
|
|
appExtensions: [
|
|
{
|
|
targetName: 'Share-with-Bluesky',
|
|
bundleIdentifier: 'xyz.blueskyweb.app.Share-with-Bluesky',
|
|
entitlements: {
|
|
'com.apple.security.application-groups': [
|
|
'group.app.bsky',
|
|
],
|
|
},
|
|
},
|
|
{
|
|
targetName: 'BlueskyNSE',
|
|
bundleIdentifier: 'xyz.blueskyweb.app.BlueskyNSE',
|
|
entitlements: {
|
|
'com.apple.security.application-groups': [
|
|
'group.app.bsky',
|
|
],
|
|
},
|
|
},
|
|
{
|
|
targetName: 'BlueskyClip',
|
|
bundleIdentifier: 'xyz.blueskyweb.app.AppClip',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
projectId: '55bd077a-d905-4184-9c7f-94789ba0f302',
|
|
},
|
|
},
|
|
hooks: {
|
|
postPublish: [
|
|
/*
|
|
* @see https://docs.expo.dev/guides/using-sentry/#app-configuration
|
|
*/
|
|
{
|
|
file: 'sentry-expo/upload-sourcemaps',
|
|
config: {
|
|
organization: 'blueskyweb',
|
|
project: 'react-native',
|
|
release: VERSION,
|
|
dist: SENTRY_DIST,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
}
|
|
}
|