Bluesky app fork with some witchin' additions 💫 witchsky.app
bluesky fork

Android build (#24)

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

+1 -1
Makefile
··· 1 1 2 - SHELL = /bin/bash 2 + SHELL = /usr/bin/env bash 3 3 .SHELLFLAGS = -o pipefail -c 4 4 5 5 .PHONY: help
+6 -4
app.config.js
··· 44 44 slug: 'deer', 45 45 scheme: ['bluesky', 'deer'], 46 46 // owner: 'blueskysocial', 47 + owner: 'neema.brown', 47 48 runtimeVersion: { 48 49 policy: 'appVersion', 49 50 }, ··· 52 53 primaryColor: '#1083fe', 53 54 ios: { 54 55 supportsTablet: false, 55 - bundleIdentifier: 'xyz.blueskyweb.app', 56 + bundleIdentifier: 'com.deersocial', 56 57 config: { 57 58 usesNonExemptEncryption: false, 58 59 }, ··· 66 67 'Used to save images to your library.', 67 68 NSPhotoLibraryUsageDescription: 68 69 'Used for profile pictures, posts, and other kinds of content', 69 - CFBundleSpokenName: 'Blue Sky', 70 + CFBundleSpokenName: 'Deer Social', 70 71 CFBundleLocalizations: [ 71 72 'en', 72 73 'an', ··· 156 157 backgroundColor: '#1185FE', 157 158 }, 158 159 googleServicesFile: './google-services.json', 159 - package: 'xyz.blueskyweb.app', 160 + package: 'com.deersocial', 160 161 intentFilters: [ 161 162 { 162 163 action: 'VIEW', ··· 400 401 }, 401 402 }, 402 403 }, 403 - projectId: '55bd077a-d905-4184-9c7f-94789ba0f302', 404 + //projectId: '55bd077a-d905-4184-9c7f-94789ba0f302', 405 + projectId: '7fdb5d99-3996-4a6c-bdf5-b4c1698aa7e6', 404 406 }, 405 407 }, 406 408 },
+111 -2
flake.lock
··· 1 1 { 2 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 + }, 3 80 "nixpkgs": { 4 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": { 5 98 "lastModified": 1743583204, 6 99 "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", 7 100 "owner": "NixOS", ··· 18 111 }, 19 112 "root": { 20 113 "inputs": { 21 - "nixpkgs": "nixpkgs", 22 - "systems": "systems" 114 + "android-nixpkgs": "android-nixpkgs", 115 + "flake-utils": "flake-utils_2", 116 + "nixpkgs": "nixpkgs_2" 23 117 } 24 118 }, 25 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": { 26 135 "locked": { 27 136 "lastModified": 1681028828, 28 137 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+45 -12
flake.nix
··· 1 1 { 2 2 inputs = { 3 3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 - systems.url = "github:nix-systems/default"; 4 + flake-utils.url = "github:numtide/flake-utils"; 5 + android-nixpkgs.url = "github:tadfisher/android-nixpkgs"; 5 6 }; 6 7 7 8 outputs = 8 - { nixpkgs, systems, ... }: 9 + { nixpkgs, flake-utils, android-nixpkgs, ... }: 10 + flake-utils.lib.eachDefaultSystem (system: 9 11 let 10 - forAllSystems = 11 - function: nixpkgs.lib.genAttrs (import systems) (system: function nixpkgs.legacyPackages.${system}); 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 + ]); 12 31 in 32 + with pkgs; 13 33 { 14 - packages = forAllSystems (pkgs: { 15 - default = pkgs.callPackage ./default.nix { }; 16 - }); 17 - devShells = forAllSystems (pkgs: { 34 + packages = { 35 + default = callPackage ./default.nix { }; 36 + }; 37 + devShells = { 18 38 default = 19 - with pkgs; 20 - mkShell { 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 + 21 51 packages = [ 22 52 just 23 53 fastmod 24 54 nodejs 25 55 yarn 26 56 crowdin-cli 57 + eas-cli 27 58 28 59 typescript 29 60 typescript-language-server 61 + 30 62 ]; 63 + 31 64 }; 32 - }); 33 - }; 65 + }; 66 + }); 34 67 }
+1 -1
package.json
··· 3 3 "version": "1.101.0", 4 4 "private": true, 5 5 "engines": { 6 - "node": ">=20" 6 + "node": ">=18" 7 7 }, 8 8 "packageManager": "yarn@1.22.22", 9 9 "scripts": {
+1 -1
scripts/bundleUpdate.sh
··· 1 - #!/bin/bash 1 + #!/usr/bin/env bash 2 2 set -o errexit 3 3 set -o pipefail 4 4 set -o nounset
+1 -1
scripts/setGitHubOutput.sh
··· 1 - #!/bin/bash 1 + #!/usr/bin/env bash 2 2 outputIos=$(eas build:version:get -p ios) 3 3 outputAndroid=$(eas build:version:get -p android) 4 4 BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - }
+1 -1
scripts/updateExtensions.sh
··· 1 - #!/bin/bash 1 + #!/usr/bin/env bash 2 2 IOS_SHARE_EXTENSION_DIRECTORY="./ios/Share-with-Bluesky" 3 3 IOS_NOTIFICATION_EXTENSION_DIRECTORY="./ios/BlueskyNSE" 4 4 IOS_APP_CLIP_DIRECTORY="./ios/BlueskyClip"
+1 -1
scripts/useBuildNumberEnv.sh
··· 1 - #!/bin/bash 1 + #!/usr/bin/env bash 2 2 outputIos=$(eas build:version:get -p ios) 3 3 outputAndroid=$(eas build:version:get -p android) 4 4 BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - }
+1 -2
scripts/useBuildNumberEnvWithBump.sh
··· 1 - #!/bin/bash 1 + #!/usr/bin/env bash 2 2 outputIos=$(eas build:version:get -p ios) 3 3 outputAndroid=$(eas build:version:get -p android) 4 4 currentIosVersion=${outputIos#*buildNumber - } ··· 8 8 BSKY_ANDROID_VERSION_CODE=$((currentAndroidVersion+1)) 9 9 10 10 bash -c "BSKY_IOS_BUILD_NUMBER=$BSKY_IOS_BUILD_NUMBER BSKY_ANDROID_VERSION_CODE=$BSKY_ANDROID_VERSION_CODE $*" 11 -