feat: add `xcbeautify` to iOS shell (#18273)

I can't remember the number of times I have had to ask developers to run `make run-ios | xcbeautify` when debugging iOS build failures and they do not have `xcbeautify` installed on their environment.

`xcbeautify` helps make `xcodebuild` output more readable and to identify problems quickly.

This commit adds `xcbeautify` to iOS shell and to  `make run-ios` so that we get readable output by default.
This commit is contained in:
Siddarth Kumar 2023-12-22 19:45:59 +05:30 committed by GitHub
parent 5eb0baa64d
commit 10b97843ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 2 deletions

View File

@ -283,9 +283,9 @@ run-ios: export TARGET := ios
run-ios: export IOS_STATUS_GO_TARGETS := iossimulator/amd64 run-ios: export IOS_STATUS_GO_TARGETS := iossimulator/amd64
run-ios: ##@run Build iOS app and start it in a simulator/device run-ios: ##@run Build iOS app and start it in a simulator/device
ifneq ("$(SIMULATOR)", "") ifneq ("$(SIMULATOR)", "")
npx react-native run-ios --simulator="$(SIMULATOR)" npx react-native run-ios --simulator="$(SIMULATOR)" | xcbeautify
else else
npx react-native run-ios npx react-native run-ios | xcbeautify
endif endif
show-ios-devices: ##@other shows connected ios device and its name show-ios-devices: ##@other shows connected ios device and its name

View File

@ -21,6 +21,7 @@ in {
xcodeWrapper watchman procps xcodeWrapper watchman procps
flock # used in nix/scripts/node_modules.sh flock # used in nix/scripts/node_modules.sh
ios-deploy # used in 'make run-ios-device' ios-deploy # used in 'make run-ios-device'
xcbeautify # used in 'make run-ios'
]; ];
# WARNING: Executes shellHook in reverse order. # WARNING: Executes shellHook in reverse order.

View File

@ -96,4 +96,5 @@ in {
aapt2 = callPackage ./pkgs/aapt2 { }; aapt2 = callPackage ./pkgs/aapt2 { };
patchMavenSources = callPackage ./pkgs/patch-maven-srcs { }; patchMavenSources = callPackage ./pkgs/patch-maven-srcs { };
goMavenResolver = callPackage ./pkgs/go-maven-resolver { }; goMavenResolver = callPackage ./pkgs/go-maven-resolver { };
xcbeautify = callPackage ./pkgs/xcbeautify { };
} }

View File

@ -0,0 +1,35 @@
{ stdenv, fetchurl, unzip, lib }:
let
inherit (lib) getAttr;
in
stdenv.mkDerivation rec {
pname = "xcbeautify";
version = "1.1.1";
arch = if stdenv.hostPlatform.isAarch64 then "arm64" else "x86_64";
src = fetchurl {
url = "https://github.com/tuist/xcbeautify/releases/download/${version}/xcbeautify-${version}-${arch}-apple-macosx.zip";
sha256 = getAttr arch {
arm64 = "sha256-VaZBWZNx5iZxjpsVbKQA4wVsigjlhArDCsQXY/RBDx4=";
x86_64 = "sha256-Q1t4nHQu05mPqNRmL0KQukGRAHdkQHM7H24ar0isQTo=";
};
};
buildInputs = [ unzip ];
unpackPhase = ''
unzip $src
'';
installPhase = ''
install -D xcbeautify $out/bin/xcbeautify
'';
meta = with lib; {
description = "A little beautifier tool for xcodebuild";
homepage = "https://github.com/tuist/xcbeautify";
license = licenses.mit;
platforms = platforms.darwin;
};
}