Closed rolfbjarne closed 10 months ago
A workaround is to add something like this to the main app's project file:
<Target Name="DoNotLinkWithIcuCore" AfterTargets="_LoadLinkerOutput">
<ItemGroup>
<_AssemblyLinkerFlags Remove="-licucore" />
</ItemGroup>
</Target>
<Target Name="DoNotLinkWithIcuCore2" AfterTargets="_ExpandNativeReferences">
<ItemGroup>
<_FrameworkNativeReference Update="@(_FrameworkNativeReference)" Condition="$([System.String]::Copy("%(_FrameworkNativeReference.LinkerFlags)").Contains ("licucore"))">
<LinkerFlags>$([System.String]::Copy('%(_FrameworkNativeReference.LinkerFlags)').Replace('-licucore',''))</LinkerFlags>
</_FrameworkNativeReference>
</ItemGroup>
</Target>
This avoids a problem where we might accidentally link with private symbols exported by libicucore.dylib instead of the same symbols provided in a static library.
This would show up as an App Store rejection:
This is what happens:
So avoid all of this by making FirebaseDatabase not link with libicucore.dylib.