AdamEssenmacher/GoogleApisForiOSComponents

Analytics: Undefined symbols for architecture arm64

Closed this issue · 4 comments

Firstly, thank you for your hard work updating these bindings. I've tried to update to them but can't get the AdamE.Firebase.iOS.Analytics package to build for iOS.

Environment
Windows 11
Visual Studio Enterprise 17.11.0 Preview 1.1 paired to Mac 14.5
XCode 15.3
Targeting iOS 17.4
.NET 8

Error

Error (active)		clang++ exited with code 1:
Undefined symbols for architecture arm64:
  "_APMUserDataFieldHashedEmailAddress", referenced from:
      +[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:] in FirebaseAnalytics(FIRAnalytics.o)
  "_APMUserDataFieldHashedPhoneNumber", referenced from:
      +[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:] in FirebaseAnalytics(FIRAnalytics.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)	MauiSample (net8.0-ios)	C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\targets\Xamarin.Shared.Sdk.targets	1560		

I also get warnings

The framework C:/Users/coop-tim/AppData/Local/XamarinBuildDownloadCache/FAnlytcs-10.24.0/FirebaseAnalytics-10.24.0/Frameworks/FirebaseAnalytics.xcframework/ios-arm64/FirebaseAnalytics.framework is a framework of static libraries, and will not be copied to the app.

The framework C:/Users/coop-tim/AppData/Local/XamarinBuildDownloadCache/GAppM-10.24.0/GoogleAppMeasurement-10.24.0/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64/GoogleAppMeasurement.framework is a framework of static libraries, and will not be copied to the app

Repro
https://github.com/coop-tim/maui-sample/tree/feature/adame

I've tried the usual clearing of XamarinBuildDownloadCache, bin/obj, Xamarin folders etc as well as a dotnet restore.

Any advice appreciated

The project is building for me just fine on Mac. Since you're on Windows, my first thought would be to check the long file path issue: #13

Did that help @coop-tim ?

Hi @AdamEssenmacher - @coop-tim should be able to respond next week but from my understanding we're aware of the long filenames issue and have worked around that. I'm able to build on my windows machine but I can see the issue presented itself on azure pipelines as I can see our most recent pipeline builds are failing with these errors.

I wasn't present during the initial investigations so I'll let @coop-tim update you on that.

Confirmed it's working for me following the new readme steps as well as a bin/obj delete. I thought I had followed all those steps multiple times but at least it works now. I'd probably add the bin/obj delete to your steps as the first step, in case people have already tried other things. Thanks so much for your help.