iOS size test (#984)

Co-authored-by: Bart Louwers <bart@emeel.net>
This commit is contained in:
Alex Cristici
2023-04-05 11:43:21 +03:00
committed by GitHub
parent 561da3bdbe
commit 7138a8f4af
3 changed files with 459 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ export BUILDTYPE ?= Debug
export IS_LOCAL_DEVELOPMENT ?= true
export TARGET_BRANCH ?= main
export CI ?= 0
export DEV_TEAM ?= ""
# When only the dependencies in the package.json are installed
# Node.js will error when running a script from the root scripts directory
@@ -156,6 +157,11 @@ ios-lint: ios-pod-lint
ios-pod-lint:
./platform/ios/scripts/lint-podspecs.js
# make ios-sizetest
.PHONY: ios-sizetest
ios-sizetest:
./scripts/size-check.sh ${DEV_TEAM}
# make ios-uitest
.PHONY: ios-uitest
ios-uitest: $(IOS_PROJ_PATH)

View File

@@ -4620,6 +4620,350 @@
};
name = Release;
};
FA8AD4F329DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 15256;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_PREPROCESSOR_DEFINITIONS = "";
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "";
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "-Wno-ambiguous-macro";
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SYMROOT = ../../build/ios;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
};
name = MinSizeRel;
};
FA8AD4F429DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAE5AE2B2389FBF000E4A5A1 /* ios.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = "";
GCC_OPTIMIZATION_LEVEL = z;
GCC_PREPROCESSOR_DEFINITIONS = GLES_SILENCE_DEPRECATION;
INFOPLIST_FILE = app/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl;
PRODUCT_NAME = "MapLibre GL";
PROVISIONING_PROFILE_SPECIFIER = "";
};
name = MinSizeRel;
};
FA8AD4F529DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_CXX_LIBRARY = "libc++";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = KBDAWM7T4E;
HEADER_SEARCH_PATHS = (
"$(PROJECT_DIR)/../../../../include",
"$(PROJECT_DIR)/../../../default/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/variant/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/geometry.hpp/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/geojson.hpp/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/optional",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/extras/rapidjson/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/extras/expected-lite/include",
"$(PROJECT_DIR)/../../../../vendor/polylabel/include",
"$(PROJECT_DIR)/../../../darwin/include",
"$(PROJECT_DIR)/../darwin/include",
);
INFOPLIST_FILE = benchmark/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_GENERATE_MAP_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench;
PRODUCT_NAME = "Bench GL";
PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development";
};
name = MinSizeRel;
};
FA8AD4F629DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAE5AE2B2389FBF000E4A5A1 /* ios.xcconfig */;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
BITCODE_GENERATION_MODE = bitcode;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
DEFINES_MODULE = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 15256;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_OPTIMIZATION_LEVEL = z;
GCC_PREPROCESSOR_DEFINITIONS = GLES_SILENCE_DEPRECATION;
INFOPLIST_FILE = framework/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LLVM_LTO = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox;
PRODUCT_NAME = Mapbox;
SKIP_INSTALL = YES;
STRIP_STYLE = "non-global";
VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) ";
};
name = MinSizeRel;
};
FA8AD4F729DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAE5AE2B2389FBF000E4A5A1 /* ios.xcconfig */;
buildSettings = {
BITCODE_GENERATION_MODE = bitcode;
DEFINES_MODULE = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DYLIB_CURRENT_VERSION = 15256;
GCC_OPTIMIZATION_LEVEL = z;
HEADER_SEARCH_PATHS = (
"$(PROJECT_DIR)/../../../../include",
"$(PROJECT_DIR)/../../../default/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/variant/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/geometry.hpp/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/geojson.hpp/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/deps/optional",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/extras/rapidjson/include",
"$(PROJECT_DIR)/../../../../vendor/mapbox-base/extras/expected-lite/include",
"$(PROJECT_DIR)/../../../../vendor/polylabel/include",
"$(PROJECT_DIR)/../../../darwin/include",
"$(PROJECT_DIR)/../darwin/include",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)",
);
LLVM_LTO = YES;
OTHER_LDFLAGS = (
"-ObjC",
"$(mbgl_core_LINK_LIBRARIES)",
"$(mbgl_filesource_LINK_LIBRARIES)",
);
PRODUCT_NAME = Mapbox;
PUBLIC_HEADERS_FOLDER_PATH = Headers;
SKIP_INSTALL = YES;
STRIP_STYLE = "non-global";
VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) ";
};
name = MinSizeRel;
};
FA8AD4F829DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_OPTIMIZATION_LEVEL = z;
INFOPLIST_FILE = "framework/Info-static.plist";
PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox;
PRODUCT_NAME = Mapbox;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;
};
name = MinSizeRel;
};
FA8AD4F929DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAE5AE2B2389FBF000E4A5A1 /* ios.xcconfig */;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
DEVELOPMENT_TEAM = V6F7X5J9Y7;
INFOPLIST_FILE = test/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
OTHER_CFLAGS = "-fvisibility=hidden";
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"$(variant_cflags)",
"$(geometry_cflags)",
"$(geojson_cflags)",
);
OTHER_LDFLAGS = (
"$(mbgl_core_LINK_LIBRARIES)",
"$(mbgl_filesource_LINK_LIBRARIES)",
);
OTHER_SWIFT_FLAGS = "-warnings-as-errors";
PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.test;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "../darwin/test/test-Bridging-Header.h";
SWIFT_VERSION = 5.0;
};
name = MinSizeRel;
};
FA8AD4FA29DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAE5AE2B2389FBF000E4A5A1 /* ios.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = "Integration Tests/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.mapbox.integration-tests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Integration Tests/integration-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Integration Test Harness.app/Integration Test Harness";
};
name = MinSizeRel;
};
FA8AD4FB29DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAE5AE2B2389FBF000E4A5A1 /* ios.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = "Integration Test Harness/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.mapbox.Integration-Test-Harness";
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = MinSizeRel;
};
FA8AD4FC29DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_STYLE = Automatic;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "iosapp UITests/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.maplibre.iosapp-UITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = iosapp;
};
name = MinSizeRel;
};
FA8AD4FD29DCC3C500230E00 /* MinSizeRel */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_STYLE = Automatic;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "bench UITests/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 14.4;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.maplibre.bench-UITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = bench;
};
name = MinSizeRel;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -4628,6 +4972,7 @@
buildConfigurations = (
16376B0E1FFD9DAF0000563E /* Debug */,
16376B0F1FFD9DAF0000563E /* Release */,
FA8AD4FA29DCC3C500230E00 /* MinSizeRel */,
96AF1AAA21B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4638,6 +4983,7 @@
buildConfigurations = (
16376B431FFDB4B40000563E /* Debug */,
16376B441FFDB4B40000563E /* Release */,
FA8AD4FB29DCC3C500230E00 /* MinSizeRel */,
96AF1AAB21B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4648,6 +4994,7 @@
buildConfigurations = (
D717FE7E25F1955A0054E06E /* Debug */,
D717FE7F25F1955A0054E06E /* Release */,
FA8AD4FC29DCC3C500230E00 /* MinSizeRel */,
D717FE8025F1955A0054E06E /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4658,6 +5005,7 @@
buildConfigurations = (
D7E7CE8C25F2EF6A00C175FC /* Debug */,
D7E7CE8D25F2EF6A00C175FC /* Release */,
FA8AD4FD29DCC3C500230E00 /* MinSizeRel */,
D7E7CE8E25F2EF6A00C175FC /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4668,6 +5016,7 @@
buildConfigurations = (
DA1DC95F1CB6C1C2006E619F /* Debug */,
DA1DC9601CB6C1C2006E619F /* Release */,
FA8AD4F329DCC3C500230E00 /* MinSizeRel */,
96AF1AA321B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4678,6 +5027,7 @@
buildConfigurations = (
DA1DC9621CB6C1C2006E619F /* Debug */,
DA1DC9631CB6C1C2006E619F /* Release */,
FA8AD4F429DCC3C500230E00 /* MinSizeRel */,
96AF1AA421B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4688,6 +5038,7 @@
buildConfigurations = (
DA2E885A1CC036F400F24E7B /* Debug */,
DA2E885B1CC036F400F24E7B /* Release */,
FA8AD4F929DCC3C500230E00 /* MinSizeRel */,
96AF1AA921B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4698,6 +5049,7 @@
buildConfigurations = (
DA8847DB1CBAF91600AB86E3 /* Debug */,
DA8847DC1CBAF91600AB86E3 /* Release */,
FA8AD4F629DCC3C500230E00 /* MinSizeRel */,
96AF1AA621B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4708,6 +5060,7 @@
buildConfigurations = (
DA8933D91CCD306400E68420 /* Debug */,
DA8933DA1CCD306400E68420 /* Release */,
FA8AD4F829DCC3C500230E00 /* MinSizeRel */,
96AF1AA821B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4718,6 +5071,7 @@
buildConfigurations = (
DAA4E41A1CBB71D500178DFB /* Debug */,
DAA4E41B1CBB71D500178DFB /* Release */,
FA8AD4F729DCC3C500230E00 /* MinSizeRel */,
96AF1AA721B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;
@@ -4728,6 +5082,7 @@
buildConfigurations = (
DABCABBC1CB80692000A7C39 /* Debug */,
DABCABBD1CB80692000A7C39 /* Release */,
FA8AD4F529DCC3C500230E00 /* MinSizeRel */,
96AF1AA521B615A3007CB696 /* RelWithDebInfo */,
);
defaultConfigurationIsVisible = 0;

View File

@@ -0,0 +1,98 @@
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Give development team as argument, eg. '484D8S5C7M'"
exit 1
fi
RED=$'\033[1;31m'
GREEN=$'\033[1;32m'
BOLD=$'\033[1m'
NORMAL=$'\033[0m'
# The development team for signing the archive is taken as argument
DEVELOPMENT_TEAM=$1
# The configuration for the build
BUILD_CONFIGURATIONS=("Release" "MinSizeRel")
# Initial lib size in bytes
INITIAL_LIB_SIZES=(5504352 4249952)
# The path to the Xcode workspace
XCODE_WORKSPACE_PATH=platform/ios/ios.xcworkspace
# The scheme name for the build
SCHEME_NAME="iosapp"
# The archive filename
ARCHIVE_NAME="${SCHEME_NAME}.xcarchive"
if [[ ! -d $XCODE_WORKSPACE_PATH ]]; then
echo "${RED}iOS workspace not found: $XCODE_WORKSPACE_PATH${NORMAL}"
exit 2
fi
# Clean up any old builds
make clean
if [ ! $? -eq 0 ]; then
echo "${RED}Failed cleaning up the build folder${NORMAL}"
exit 3
fi
# Set up the Xcode workspace
make iproj CI=1
if [ ! $? -eq 0 ]; then
echo "${RED}Failed setting up the Xcode workspace${NORMAL}"
exit 4
fi
TOTAL_TESTS=${#BUILD_CONFIGURATIONS[@]}
PASSED_TESTS=0
FAILED_TESTS=0
for ((i=0; i<${TOTAL_TESTS}; i++)); do
BUILD_CONFIGURATION=${BUILD_CONFIGURATIONS[i]}
INITIAL_LIB_SIZE=${INITIAL_LIB_SIZES[i]}
echo -e "\n** ${BOLD}Building size test $((i+1)) on configuration: ${BUILD_CONFIGURATION}, initial size was ${INITIAL_LIB_SIZE} bytes${NORMAL} **\n"
# The output directory for the archive
OUTPUT_DIR="build/ios/archive/${BUILD_CONFIGURATION}"
# Build the app
xcodebuild archive -quiet -workspace "${XCODE_WORKSPACE_PATH}" -scheme "${SCHEME_NAME}" -configuration "${BUILD_CONFIGURATION}" -archivePath "${OUTPUT_DIR}/${ARCHIVE_NAME}" DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}"
if [ ! $? -eq 0 ]; then
echo "${RED}Failed to compile the scheme: ${SCHEME_NAME}${NORMAL}"
exit 5
fi
# The path to the maplibre dynamic lib
LIB_PATH="${OUTPUT_DIR}/${ARCHIVE_NAME}/Products/Applications/MapLibre GL.app/Frameworks/Mapbox.framework/Mapbox"
if [[ ! -f "$LIB_PATH" ]]; then
echo "${RED}MapLibre dynamic lib not found: $LIB_PATH${NORMAL}"
exit 6
fi
# Current lib size in bytes
CURRENT_LIB_SIZE=$(wc -c "${LIB_PATH}" | awk '{print $1}')
if [ -z $CURRENT_LIB_SIZE ]; then
echo "${RED}Failed to compute the size of MapLibre: ${LIB_PATH}${NORMAL}"
exit 7
fi
if (($CURRENT_LIB_SIZE > $INITIAL_LIB_SIZE)); then
FAILED_TESTS=$((FAILED_TESTS+1))
echo -e "${RED}\n[FAILED] MapLibre size is ${CURRENT_LIB_SIZE} bytes. This is larger than the initial size of ${INITIAL_LIB_SIZE} bytes.\n${NORMAL}"
else
PASSED_TESTS=$((PASSED_TESTS+1))
if (($CURRENT_LIB_SIZE == $INITIAL_LIB_SIZE)); then
echo -e "${GREEN}\n[PASSED] MapLibre size is ${CURRENT_LIB_SIZE} bytes. This is equal with the initial size of ${INITIAL_LIB_SIZE} bytes.\n${NORMAL}"
else
echo -e "${GREEN}\n[PASSED] MapLibre size is ${CURRENT_LIB_SIZE} bytes. This is smaller than the initial size of ${INITIAL_LIB_SIZE} bytes.\n${NORMAL}"
fi
fi
done
echo -e "${GREEN}PASSED TESTS: ${PASSED_TESTS} of ${TOTAL_TESTS}${NORMAL}"
echo -e "${RED}FAILED TESTS: ${FAILED_TESTS} of ${TOTAL_TESTS}${NORMAL}"