When using the archive and publish feature in Xamarin Studio, it appears that dynamic frameworks are not re-signed correctly.
If the app is built with one profile yet a different profile is selected for the publish step you will see the former cert was used to sign the dynamic framework.
I have attached a solution for testing as well as 3 ipa files. If you extract the contents of DevCertBuildPublishDistCert.ipa and check the info for MyLibFw and TestAdHocApp you will see 2 different certs being used.
unzip DevCertBuildPublishDistCert.ipa -d test
codesign -dvv test/Payload/TestAdHocApp.app/Frameworks/MyLibFw.framework/MyLibFw
# outputs Authority=iPhone Developer: William Holmes (7NLBGWH956)
codesign -dvv test/Payload/TestAdHocApp.app/TestAdHocApp
#outputs Authority=iPhone Distribution: William Holmes (CN96H2279W)
Compare that to the results of DistCertBuild.ipa. Both TestAdHocApp and MyLibFw show the Distribution cert.
I believe this is causing ipa install or runtime errors such as https://github.com/mono/SkiaSharp/issues/100
cc'ing Jeff and Vincent ^
Not sure if the logic too be fixed is in XS (or in the msbuild) -> Jeff
The logic for resigning for publishing is in XS. I think the logic for signing *.dylibs already exists in the msbuild logic.
I'll verify tho.
Fixed in version 22.214.171.12441 (cycle8)
Author: Jeffrey Stedfast
Commit: b99a75819e90a463a83cc904cb27f922955b30b1 (xamarin/md-addins)
Included in Commit: 9dbb95ed5ae4be90e38480cfd6323bc605a93a49 (mono/monodevelop)
Fixed in XS master & cycle8 branches.
msbuild already does the right thing.
Oops, fixed now.
Verified with XamarinStudio-126.96.36.19936