I am trying to integrate Objective C Umberella framework into Xamari.iOS but while installing the app into device getting the error : code signature invalid for subframework embedded in Umberella framework .
DYLD, Library not loaded: @rpath/Allegion_Access_BLECredential_iOS.framework/Allegion_Access_BLECredential_iOS | Referenced from: /private/var/containers/Bundle/Application/935BEA40-7E01-4C1D-9024-C1359D5D633A/KMF.Portable.iOS.app/Frameworks/KastleSDK.framework/KastleSDK | Reason: no suitable image found. Did find: | /private/var/containers/Bundle/Application/935BEA40-7E01-4C1D-9024-C1359D5D633A/KMF.Portable.iOS.app/Frameworks/KastleSDK.framework/Frameworks/Allegion_Access_BLECredential_iOS.framework/Allegion_Access_BLECredential_iOS: code signature invalid for '/private/var/containers/Bundle/Application/935BEA40-7E01-4C1D-9024-C1359D5D633A/KMF.Portable.iOS.app/Frameworks/KastleSDK.framework/Frameworks/Allegion_Access_BLECredential_iOS.framework/Allegion_Access_BLECredential_iOS'
Xamarin.iOS, Visual Studio :-
I was digging into issue from last few days finally, I am able to code sign subframework in Umberella framework with the help of script.
Use the below script in your yourapp.csproj ,you will need to accommodate the path to your needs.
Add after:
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
the following:
<Target Name="BeforeCodesign">
<Exec Command="\usr\bin\codesign -v --force --sign $(_CodeSigningKey) --timestamp=none $(ProjectDir)/$(AppBundleDir)/Frameworks/UmbrellaFramework.framework/Frameworks/SubFramework.framework" />
If you have multiple nested frameworks, just duplicate the Exec step as many times as needed.