Hi - I’m finding I can’t build for Mac (either bundling a Mac build or just selecting Start from the Debug menu) since we moved recently from 1.9.0 to 1.9.8.
My colleague who builds on Windows has no problems, and I can build on my Mac for iOS and Android OK, but the Mac builds won’t link. The problem seems to have something to do with the GameAnalytics extension. I think the relevant errors are below, any suggestions much appreciated as it’s way beyond my understanding of the engine what’s going on here…
Thanks!
Undefined symbols for architecture arm64:
“_curl_easy_cleanup”, referenced from:
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::sendEventsInArray(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator>&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator> const&) in libGameAnalytics.a[arm64]15
std::__1::__async_assoc_state<void, std::__1::__async_func<gameanalytics::http::GAHTTPApi::sendSdkErrorEvent(gameanalytics::http::EGASdkErrorCategory, gameanalytics::http::EGASdkErrorArea, gameanalytics::http::EGASdkErrorAction, gameanalytics::http::EGASdkErrorParameter, char const*, char const*, char const*)::$_0>>::__execute() in libGameAnalytics.a[arm64]15
“_curl_easy_getinfo”, referenced from:
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::sendEventsInArray(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator>&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator> const&) in libGameAnalytics.a[arm64]15
std::__1::__async_assoc_state<void, std::__1::__async_func<gameanalytics::http::GAHTTPApi::sendSdkErrorEvent(gameanalytics::http::EGASdkErrorCategory, gameanalytics::http::EGASdkErrorArea, gameanalytics::http::EGASdkErrorAction, gameanalytics::http::EGASdkErrorParameter, char const*, char const*, char const*)::$_0>>::__execute() in libGameAnalytics.a[arm64]15
“_curl_easy_init”, referenced from:
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::sendEventsInArray(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator>&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator> const&) in libGameAnalytics.a[arm64]15
std::__1::__async_assoc_state<void, std::__1::__async_func<gameanalytics::http::GAHTTPApi::sendSdkErrorEvent(gameanalytics::http::EGASdkErrorCategory, gameanalytics::http::EGASdkErrorArea, gameanalytics::http::EGASdkErrorAction, gameanalytics::http::EGASdkErrorParameter, char const*, char const*, char const*)::$_0>>::__execute() in libGameAnalytics.a[arm64]15
“_curl_easy_perform”, referenced from:
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::sendEventsInArray(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator>&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator> const&) in libGameAnalytics.a[arm64]15
std::__1::__async_assoc_state<void, std::__1::__async_func<gameanalytics::http::GAHTTPApi::sendSdkErrorEvent(gameanalytics::http::EGASdkErrorCategory, gameanalytics::http::EGASdkErrorArea, gameanalytics::http::EGASdkErrorAction, gameanalytics::http::EGASdkErrorParameter, char const*, char const*, char const*)::$_0>>::__execute() in libGameAnalytics.a[arm64]15
“_curl_easy_setopt”, referenced from:
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
…
“_curl_easy_strerror”, referenced from:
gameanalytics::http::GAHTTPApi::requestInitReturningDict(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericDocument<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator, rapidjson::CrtAllocator>&, char const*) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::sendEventsInArray(gameanalytics::http::EGAHTTPApiResponse&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator>&, rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator> const&) in libGameAnalytics.a[arm64]15
std::__1::__async_assoc_state<void, std::__1::__async_func<gameanalytics::http::GAHTTPApi::sendSdkErrorEvent(gameanalytics::http::EGASdkErrorCategory, gameanalytics::http::EGASdkErrorArea, gameanalytics::http::EGASdkErrorAction, gameanalytics::http::EGASdkErrorParameter, char const*, char const*, char const*)::$_0>>::__execute() in libGameAnalytics.a[arm64]15
“_curl_global_cleanup”, referenced from:
gameanalytics::http::GAHTTPApi::~GAHTTPApi() in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::~GAHTTPApi() in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::cleanUp() in libGameAnalytics.a[arm64]15
“_curl_global_init”, referenced from:
gameanalytics::http::GAHTTPApi::GAHTTPApi() in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::GAHTTPApi() in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::initInstance() in libGameAnalytics.a[arm64]15
“_curl_slist_append”, referenced from:
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
gameanalytics::http::GAHTTPApi::createRequest(void*, char const*, std::__1::vector<char, std::__1::allocator> const&, bool) in libGameAnalytics.a[arm64]15
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
com.defold.extender.ExtenderException: java.io.IOException: clang++ -c -isystem /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk/usr/include/c++/v1 -DDLIB_LOG_DOMAIN=“ADMOBEXT” -DDDF_EXPOSE_DESCRIPTORS -DDM_PLATFORM_MACOS -DDM_PLATFORM_OSX -DGL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED -O2 -g -stdlib=libc++ -mmacosx-version-min=10.13 -isysroot /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk -nostdinc++ -fno-exceptions -fvisibility=hidden -Werror=format -arch arm64 -target arm64-apple-darwin19 -m64 -Ibuild/extension-admob/ -Iupload/ -Iupload/imageloader/include/ -Iupload/pcgrandom/include/ -Iupload/openssl/include/ -Iupload/screenshot/include/ -Iupload/share/include/ -Iupload/defold-spine/include/ -Iupload/gameanalytics/include/ -Iupload/textinput/include/ -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//sdk/include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//ext/include upload/extension-admob/src/admob.cpp -obuild/admob.cpp_0.o
clang++ -c -isystem /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk/usr/include/c++/v1 -DDLIB_LOG_DOMAIN=“ADMOBEXT” -DDDF_EXPOSE_DESCRIPTORS -DDM_PLATFORM_MACOS -DDM_PLATFORM_OSX -DGL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED -O2 -g -stdlib=libc++ -mmacosx-version-min=10.13 -isysroot /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk -nostdinc++ -fno-exceptions -fvisibility=hidden -Werror=format -arch arm64 -target arm64-apple-darwin19 -m64 -Ibuild/extension-admob/ -Iupload/ -Iupload/imageloader/include/ -Iupload/pcgrandom/include/ -Iupload/openssl/include/ -Iupload/screenshot/include/ -Iupload/share/include/ -Iupload/defold-spine/include/ -Iupload/gameanalytics/include/ -Iupload/textinput/include/ -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//sdk/include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//ext/include upload/extension-admob/src/admob_android.cpp -obuild/admob_android.cpp_1.o
clang++ -c -isystem /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk/usr/include/c++/v1 -DDLIB_LOG_DOMAIN=“ADMOBEXT” -DDDF_EXPOSE_DESCRIPTORS -DDM_PLATFORM_MACOS -DDM_PLATFORM_OSX -DGL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED -O2 -g -stdlib=libc++ -mmacosx-version-min=10.13 -isysroot /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk -nostdinc++ -fno-exceptions -fvisibility=hidden -Werror=format -arch arm64 -target arm64-apple-darwin19 -m64 -Ibuild/extension-admob/ -Iupload/ -Iupload/imageloader/include/ -Iupload/pcgrandom/include/ -Iupload/openssl/include/ -Iupload/screenshot/include/ -Iupload/share/include/ -Iupload/defold-spine/include/ -Iupload/gameanalytics/include/ -Iupload/textinput/include/ -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//sdk/include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//ext/include upload/extension-admob/src/admob_callback.cpp -obuild/admob_callback.cpp_2.o
clang++ -c -isystem /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk/usr/include/c++/v1 -DDLIB_LOG_DOMAIN=“ADMOBEXT” -DDDF_EXPOSE_DESCRIPTORS -DDM_PLATFORM_MACOS -DDM_PLATFORM_OSX -DGL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED -O2 -g -stdlib=libc++ -mmacosx-version-min=10.13 -isysroot /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk -nostdinc++ -fno-exceptions -fvisibility=hidden -Werror=format -arch arm64 -target arm64-apple-darwin19 -m64 -Ibuild/extension-admob/ -Iupload/ -Iupload/imageloader/include/ -Iupload/pcgrandom/include/ -Iupload/openssl/include/ -Iupload/screenshot/include/ -Iupload/share/include/ -Iupload/defold-spine/include/ -Iupload/gameanalytics/include/ -Iupload/textinput/include/ -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//sdk/include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//ext/include upload/extension-admob/src/admob_ios.mm -obuild/admob_ios.mm_3.o
clang++ -c -isystem /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk/usr/include/c++/v1 -DDLIB_LOG_DOMAIN=“ADMOBEXT” -DDDF_EXPOSE_DESCRIPTORS -DDM_PLATFORM_MACOS -DDM_PLATFORM_OSX -DGL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED -O2 -g -stdlib=libc++ -mmacosx-version-min=10.13 -isysroot /Users/bjorn/extender-production/platformsdk/MacOSX15.2.sdk -nostdinc++ -fno-exceptions -fvisibility=hidden -Werror=format -arch arm64 -target arm64-apple-darwin19 -m64 -Ibuild/extension-admob/ -Iupload/ -Iupload/imageloader/include/ -Iupload/pcgrandom/include/ -Iupload/openssl/include/ -Iupload/screenshot/include/ -Iupload/share/include/ -Iupload/defold-spine/include/ -Iupload/gameanalytics/include/ -Iupload/textinput/include/ -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//sdk/include -I/Users/bjorn/extender-production/sdk/67542769598a1b794877c96f740f3f527f63f491/defoldsdk//ext/include upload/extension-admob/src/utils/LuaUtils.cpp -obuild/LuaUtils.cpp_4.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)