summaryrefslogtreecommitdiff
path: root/platform/ios/scripts/check-events-symbols.sh
blob: c76d5e269349e844ca8f0fbbfa4c94df4000ae47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env bash

set -eu -o pipefail

function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; }
function finish { >&2 echo -en "\033[0m"; }
trap finish EXIT

find_framework() {
    step "Looking for Mapbox.framework…"
    echo $( find ./build -name Mapbox | tail -n 1 )
}

FRAMEWORK=$(find_framework)

if [[ -z "${FRAMEWORK}" || ! -f "${FRAMEWORK}" ]]; then
    echo "No framework found — building dynamic Mapbox.framework…"
    make iframework BUILD_DEVICE=false
    FRAMEWORK=$(find_framework)
fi

echo "Found framework: ${FRAMEWORK}"

step "Checking for un-namespaced symbols from mapbox-events-ios…"

# Symbols from mapbox-events-ios are prefixed MME. To avoid duplicate symbol
# warnings when multiple copes of mapbox-events-ios are included in a project,
# the maps SDK prefixes these symbols with MGL_.
SYMBOLS=$( nm "$FRAMEWORK" | grep \$_MME || true )

if [ -z "${SYMBOLS}" ]; then
    echo "✅ No un-namespaced symbols found."
else
    echo "❗️ Found un-namespaced symbols:"
    echo "${SYMBOLS}"
    exit 1
fi