Bluesky app fork with some witchin' additions 💫

Android build (#24)

authored by nonbinary.computer and committed by GitHub 1712bb64 1fa1cd8b

+1 -1
Makefile
··· 1 2 - SHELL = /bin/bash 3 .SHELLFLAGS = -o pipefail -c 4 5 .PHONY: help
··· 1 2 + SHELL = /usr/bin/env bash 3 .SHELLFLAGS = -o pipefail -c 4 5 .PHONY: help
+6 -4
app.config.js
··· 44 slug: 'deer', 45 scheme: ['bluesky', 'deer'], 46 // owner: 'blueskysocial', 47 runtimeVersion: { 48 policy: 'appVersion', 49 }, ··· 52 primaryColor: '#1083fe', 53 ios: { 54 supportsTablet: false, 55 - bundleIdentifier: 'xyz.blueskyweb.app', 56 config: { 57 usesNonExemptEncryption: false, 58 }, ··· 66 'Used to save images to your library.', 67 NSPhotoLibraryUsageDescription: 68 'Used for profile pictures, posts, and other kinds of content', 69 - CFBundleSpokenName: 'Blue Sky', 70 CFBundleLocalizations: [ 71 'en', 72 'an', ··· 156 backgroundColor: '#1185FE', 157 }, 158 googleServicesFile: './google-services.json', 159 - package: 'xyz.blueskyweb.app', 160 intentFilters: [ 161 { 162 action: 'VIEW', ··· 400 }, 401 }, 402 }, 403 - projectId: '55bd077a-d905-4184-9c7f-94789ba0f302', 404 }, 405 }, 406 },
··· 44 slug: 'deer', 45 scheme: ['bluesky', 'deer'], 46 // owner: 'blueskysocial', 47 + owner: 'neema.brown', 48 runtimeVersion: { 49 policy: 'appVersion', 50 }, ··· 53 primaryColor: '#1083fe', 54 ios: { 55 supportsTablet: false, 56 + bundleIdentifier: 'com.deersocial', 57 config: { 58 usesNonExemptEncryption: false, 59 }, ··· 67 'Used to save images to your library.', 68 NSPhotoLibraryUsageDescription: 69 'Used for profile pictures, posts, and other kinds of content', 70 + CFBundleSpokenName: 'Deer Social', 71 CFBundleLocalizations: [ 72 'en', 73 'an', ··· 157 backgroundColor: '#1185FE', 158 }, 159 googleServicesFile: './google-services.json', 160 + package: 'com.deersocial', 161 intentFilters: [ 162 { 163 action: 'VIEW', ··· 401 }, 402 }, 403 }, 404 + //projectId: '55bd077a-d905-4184-9c7f-94789ba0f302', 405 + projectId: '7fdb5d99-3996-4a6c-bdf5-b4c1698aa7e6', 406 }, 407 }, 408 },
+111 -2
flake.lock
··· 1 { 2 "nodes": { 3 "nixpkgs": { 4 "locked": { 5 "lastModified": 1743583204, 6 "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", 7 "owner": "NixOS", ··· 18 }, 19 "root": { 20 "inputs": { 21 - "nixpkgs": "nixpkgs", 22 - "systems": "systems" 23 } 24 }, 25 "systems": { 26 "locked": { 27 "lastModified": 1681028828, 28 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
··· 1 { 2 "nodes": { 3 + "android-nixpkgs": { 4 + "inputs": { 5 + "devshell": "devshell", 6 + "flake-utils": "flake-utils", 7 + "nixpkgs": "nixpkgs" 8 + }, 9 + "locked": { 10 + "lastModified": 1745266877, 11 + "narHash": "sha256-MOEwZIhu3EXSBrtHML04kbb0gII6irVf9YJEMy8MGsU=", 12 + "owner": "tadfisher", 13 + "repo": "android-nixpkgs", 14 + "rev": "3e3987cb51c9ffbd38e62dba0f793940b55a9c07", 15 + "type": "github" 16 + }, 17 + "original": { 18 + "owner": "tadfisher", 19 + "repo": "android-nixpkgs", 20 + "type": "github" 21 + } 22 + }, 23 + "devshell": { 24 + "inputs": { 25 + "nixpkgs": [ 26 + "android-nixpkgs", 27 + "nixpkgs" 28 + ] 29 + }, 30 + "locked": { 31 + "lastModified": 1741473158, 32 + "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", 33 + "owner": "numtide", 34 + "repo": "devshell", 35 + "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", 36 + "type": "github" 37 + }, 38 + "original": { 39 + "owner": "numtide", 40 + "repo": "devshell", 41 + "type": "github" 42 + } 43 + }, 44 + "flake-utils": { 45 + "inputs": { 46 + "systems": "systems" 47 + }, 48 + "locked": { 49 + "lastModified": 1731533236, 50 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 51 + "owner": "numtide", 52 + "repo": "flake-utils", 53 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 54 + "type": "github" 55 + }, 56 + "original": { 57 + "owner": "numtide", 58 + "repo": "flake-utils", 59 + "type": "github" 60 + } 61 + }, 62 + "flake-utils_2": { 63 + "inputs": { 64 + "systems": "systems_2" 65 + }, 66 + "locked": { 67 + "lastModified": 1731533236, 68 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 69 + "owner": "numtide", 70 + "repo": "flake-utils", 71 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 72 + "type": "github" 73 + }, 74 + "original": { 75 + "owner": "numtide", 76 + "repo": "flake-utils", 77 + "type": "github" 78 + } 79 + }, 80 "nixpkgs": { 81 "locked": { 82 + "lastModified": 1744932701, 83 + "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", 84 + "owner": "NixOS", 85 + "repo": "nixpkgs", 86 + "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", 87 + "type": "github" 88 + }, 89 + "original": { 90 + "owner": "NixOS", 91 + "ref": "nixos-unstable", 92 + "repo": "nixpkgs", 93 + "type": "github" 94 + } 95 + }, 96 + "nixpkgs_2": { 97 + "locked": { 98 "lastModified": 1743583204, 99 "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", 100 "owner": "NixOS", ··· 111 }, 112 "root": { 113 "inputs": { 114 + "android-nixpkgs": "android-nixpkgs", 115 + "flake-utils": "flake-utils_2", 116 + "nixpkgs": "nixpkgs_2" 117 } 118 }, 119 "systems": { 120 + "locked": { 121 + "lastModified": 1681028828, 122 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 123 + "owner": "nix-systems", 124 + "repo": "default", 125 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 126 + "type": "github" 127 + }, 128 + "original": { 129 + "owner": "nix-systems", 130 + "repo": "default", 131 + "type": "github" 132 + } 133 + }, 134 + "systems_2": { 135 "locked": { 136 "lastModified": 1681028828, 137 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+45 -12
flake.nix
··· 1 { 2 inputs = { 3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 - systems.url = "github:nix-systems/default"; 5 }; 6 7 outputs = 8 - { nixpkgs, systems, ... }: 9 let 10 - forAllSystems = 11 - function: nixpkgs.lib.genAttrs (import systems) (system: function nixpkgs.legacyPackages.${system}); 12 in 13 { 14 - packages = forAllSystems (pkgs: { 15 - default = pkgs.callPackage ./default.nix { }; 16 - }); 17 - devShells = forAllSystems (pkgs: { 18 default = 19 - with pkgs; 20 - mkShell { 21 packages = [ 22 just 23 fastmod 24 nodejs 25 yarn 26 crowdin-cli 27 28 typescript 29 typescript-language-server 30 ]; 31 }; 32 - }); 33 - }; 34 }
··· 1 { 2 inputs = { 3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 + flake-utils.url = "github:numtide/flake-utils"; 5 + android-nixpkgs.url = "github:tadfisher/android-nixpkgs"; 6 }; 7 8 outputs = 9 + { nixpkgs, flake-utils, android-nixpkgs, ... }: 10 + flake-utils.lib.eachDefaultSystem (system: 11 let 12 + pkgs = import nixpkgs { 13 + inherit system; 14 + config = { 15 + android_sdk.accept_license = true; 16 + allowUnfree = true; 17 + }; 18 + }; 19 + pinnedJDK = pkgs.jdk17; 20 + androidSdk = android-nixpkgs.sdk.${system} (sdkPkgs: with sdkPkgs; [ 21 + cmdline-tools-latest 22 + build-tools-35-0-0 23 + build-tools-34-0-0 24 + platform-tools 25 + platforms-android-35 26 + emulator 27 + cmake-3-22-1 28 + ndk-26-1-10909125 29 + ndk-28-0-13004108 30 + ]); 31 in 32 + with pkgs; 33 { 34 + packages = { 35 + default = callPackage ./default.nix { }; 36 + }; 37 + devShells = { 38 default = 39 + mkShell rec { 40 + buildInputs = [ 41 + androidSdk 42 + pinnedJDK 43 + ]; 44 + 45 + JAVA_HOME = pinnedJDK; 46 + ANDROID_HOME = "${androidSdk}/share/android-sdk"; 47 + ANDROID_SDK_ROOT = "${androidSdk}/share/android-sdk"; 48 + 49 + GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/35.0.0/aapt2"; 50 + 51 packages = [ 52 just 53 fastmod 54 nodejs 55 yarn 56 crowdin-cli 57 + eas-cli 58 59 typescript 60 typescript-language-server 61 + 62 ]; 63 + 64 }; 65 + }; 66 + }); 67 }
+1 -1
package.json
··· 3 "version": "1.101.0", 4 "private": true, 5 "engines": { 6 - "node": ">=20" 7 }, 8 "packageManager": "yarn@1.22.22", 9 "scripts": {
··· 3 "version": "1.101.0", 4 "private": true, 5 "engines": { 6 + "node": ">=18" 7 }, 8 "packageManager": "yarn@1.22.22", 9 "scripts": {
+1 -1
scripts/bundleUpdate.sh
··· 1 - #!/bin/bash 2 set -o errexit 3 set -o pipefail 4 set -o nounset
··· 1 + #!/usr/bin/env bash 2 set -o errexit 3 set -o pipefail 4 set -o nounset
+1 -1
scripts/setGitHubOutput.sh
··· 1 - #!/bin/bash 2 outputIos=$(eas build:version:get -p ios) 3 outputAndroid=$(eas build:version:get -p android) 4 BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - }
··· 1 + #!/usr/bin/env bash 2 outputIos=$(eas build:version:get -p ios) 3 outputAndroid=$(eas build:version:get -p android) 4 BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - }
+1 -1
scripts/updateExtensions.sh
··· 1 - #!/bin/bash 2 IOS_SHARE_EXTENSION_DIRECTORY="./ios/Share-with-Bluesky" 3 IOS_NOTIFICATION_EXTENSION_DIRECTORY="./ios/BlueskyNSE" 4 IOS_APP_CLIP_DIRECTORY="./ios/BlueskyClip"
··· 1 + #!/usr/bin/env bash 2 IOS_SHARE_EXTENSION_DIRECTORY="./ios/Share-with-Bluesky" 3 IOS_NOTIFICATION_EXTENSION_DIRECTORY="./ios/BlueskyNSE" 4 IOS_APP_CLIP_DIRECTORY="./ios/BlueskyClip"
+1 -1
scripts/useBuildNumberEnv.sh
··· 1 - #!/bin/bash 2 outputIos=$(eas build:version:get -p ios) 3 outputAndroid=$(eas build:version:get -p android) 4 BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - }
··· 1 + #!/usr/bin/env bash 2 outputIos=$(eas build:version:get -p ios) 3 outputAndroid=$(eas build:version:get -p android) 4 BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - }
+1 -2
scripts/useBuildNumberEnvWithBump.sh
··· 1 - #!/bin/bash 2 outputIos=$(eas build:version:get -p ios) 3 outputAndroid=$(eas build:version:get -p android) 4 currentIosVersion=${outputIos#*buildNumber - } ··· 8 BSKY_ANDROID_VERSION_CODE=$((currentAndroidVersion+1)) 9 10 bash -c "BSKY_IOS_BUILD_NUMBER=$BSKY_IOS_BUILD_NUMBER BSKY_ANDROID_VERSION_CODE=$BSKY_ANDROID_VERSION_CODE $*" 11 -
··· 1 + #!/usr/bin/env bash 2 outputIos=$(eas build:version:get -p ios) 3 outputAndroid=$(eas build:version:get -p android) 4 currentIosVersion=${outputIos#*buildNumber - } ··· 8 BSKY_ANDROID_VERSION_CODE=$((currentAndroidVersion+1)) 9 10 bash -c "BSKY_IOS_BUILD_NUMBER=$BSKY_IOS_BUILD_NUMBER BSKY_ANDROID_VERSION_CODE=$BSKY_ANDROID_VERSION_CODE $*"