mirror of
https://github.com/status-im/status-mobile.git
synced 2025-01-15 11:14:26 +00:00
Jakub Sokołowski
8ec2f23203
Here the injection of OpenSea API key was done at compile time: https://github.com/status-im/status-mobile/commit/aa72ac57 But this makes `status-go` builds impure, and also prevents them from being extracted from `status-mobile` into `status-go` repo. Instead we pass the `OPENSEA_API_KEY` env variable to JS bundle at build time, which is then passed to `status-go` via the `Statusgo.saveAccountAndLogin` call in `saveAccountAndLogin`: https://github.com/status-im/status-mobile/blob/51174f84/modules/react-native-status/android/src/main/java/im/status/ethereum/module/StatusModule.java#L323-L327 Which sends `NodeConfig` that also contains `WalletConfig` which can include `OpenseaAPIKey`: ```go type WalletConfig struct { Enabled bool OpenseaAPIKey string `json:"OpenseaAPIKey"` } ``` https://github.com/status-im/status-go/blob/0135cc15/params/config.go#L510-L514 Signed-off-by: Jakub Sokołowski <jakub@status.im>
62 lines
1.9 KiB
Nix
62 lines
1.9 KiB
Nix
{ lib, utils, buildGoPackage
|
|
, androidPkgs, openjdk, gomobile, xcodeWrapper, removeReferencesTo
|
|
, meta
|
|
, source
|
|
, platform ? "android"
|
|
, platformVersion ? "23"
|
|
, targets ? [ "android/arm64" "android/arm" ]
|
|
, goBuildFlags ? [ ] # Use -v or -x for debugging.
|
|
, goBuildLdFlags ? [ ]
|
|
, outputFileName ? "status-go-${source.shortRev}-${platform}.aar" }:
|
|
|
|
let
|
|
inherit (lib) concatStringsSep optionalString optional;
|
|
in buildGoPackage {
|
|
pname = source.repo;
|
|
version = "${source.cleanVersion}-${source.shortRev}-${platform}";
|
|
|
|
inherit meta;
|
|
inherit (source) src goPackagePath;
|
|
|
|
extraSrcPaths = [ gomobile ];
|
|
nativeBuildInputs = [ gomobile removeReferencesTo ]
|
|
++ optional (platform == "android") openjdk
|
|
++ optional (platform == "ios") xcodeWrapper;
|
|
|
|
ldflags = concatStringsSep " " goBuildLdFlags;
|
|
|
|
ANDROID_HOME = optionalString (platform == "android") androidPkgs.sdk;
|
|
|
|
# Ensure XCode is present for iOS, instead of failing at the end of the build.
|
|
preConfigure = optionalString (platform == "ios") utils.enforceXCodeAvailable;
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
echo -e "\nBuilding $pname for: ${concatStringsSep "," targets}"
|
|
|
|
gomobile bind \
|
|
${concatStringsSep " " goBuildFlags} \
|
|
-ldflags="$ldflags" \
|
|
-target=${concatStringsSep "," targets} \
|
|
${optionalString (platform == "android") "-androidapi=${platformVersion}"} \
|
|
${optionalString (platform == "ios") "-iosversion=${platformVersion}"} \
|
|
-o ${outputFileName} \
|
|
${source.goPackagePath}/mobile
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -r ${outputFileName} $out/
|
|
'';
|
|
|
|
# Drop govers from disallowedReferences.
|
|
dontRenameImports = true;
|
|
# Replace hardcoded paths to go package in /nix/store.
|
|
preFixup = optionalString (platform == "ios") ''
|
|
find $out -type f -exec \
|
|
remove-references-to -t $disallowedReferences '{}' + || true
|
|
'';
|
|
}
|