diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | circle.yml | 3 | ||||
-rwxr-xr-x | platform/ios/scripts/check-events-symbols.sh | 35 |
3 files changed, 42 insertions, 0 deletions
@@ -252,6 +252,10 @@ ios-sanitize-address: $(IOS_PROJ_PATH) ios-static-analyzer: $(IOS_PROJ_PATH) set -o pipefail && $(IOS_XCODEBUILD_SIM) analyze -scheme 'CI' test $(XCPRETTY) +.PHONY: ios-check-events-symbols +ios-check-events-symbols: + ./platform/ios/scripts/check-events-symbols.sh + .PHONY: ipackage ipackage: ipackage* ipackage%: diff --git a/circle.yml b/circle.yml index 1def734e60..5cf3a4575d 100644 --- a/circle.yml +++ b/circle.yml @@ -854,6 +854,9 @@ jobs: name: Lint plist files command: make ios-lint - run: + name: Check symbol namespacing for mapbox-events-ios + command: make ios-check-events-symbols + - run: name: Nitpick Darwin code generation command: scripts/nitpick/generated-code.js darwin - save-dependencies diff --git a/platform/ios/scripts/check-events-symbols.sh b/platform/ios/scripts/check-events-symbols.sh new file mode 100755 index 0000000000..0eefd19c49 --- /dev/null +++ b/platform/ios/scripts/check-events-symbols.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail +set -u + +function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } +function finish { >&2 echo -en "\033[0m"; } +trap finish EXIT + +FRAMEWORK=build/ios/pkg/dynamic/Mapbox.framework/Mapbox + +step "Looking for Mapbox.framework…" + +if [ -f ${FRAMEWORK} ]; then + echo "Found framework: ${FRAMEWORK}" +else + echo "No framework found — building dynamic Mapbox.framework…" + make iframework BUILD_DEVICE=false +fi + +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 "✅ Found no un-namespaced symbols." +else + echo "❗️ Found un-namespaced symbols:" + echo "${SYMBOLS}" + exit 1 +fi |