We are currently trying to have our app verified in order to distribute it outside of the app store. We are including OpenSceneGraph libraries as well as Qt frameworks in the app bundle.This is how we did it so far:- Signed executable in Contents/MacOS folder- Signed libraries and Qt frameworks- Signed App.app folder- zipped .app and submitted for NotarizationThe executable, libraries and frameworks signing is done manually with the codesign command, and to sign the whole .app we do the following:codesign --force --verify --verbose=3 --options runtime --timestamp --entitlements App.entitlements -s "Developer ID Application: Our Dev Id" App.appWhen we send the zipped .app to be notarized we usually get a quick reply informing us that the notarization was successful, but if we try to run "spctl --verbose --assess --type execute -v App.app" we get the following error:App.app: rejected (unsealed contents present in the root directory of an embedded framework)Also inspecting the json file with the notarization output we notice the same error, but it is marked as a warning and checking it with codesign no error is returned.After a bit of digging we realized that the issue is related to the Qt frameworks: as a counterproof, we tried to submit the same app without the Qt frameworks and this time when the bundle was successfully notarized spctl accepted it too, so we eliminated the all symlinks in the root directory, moved the .prl files into the Resources/ folder, and created an alias to A/ in the Versions/ subfolder as suggested in several forum posts, but we have not been able to have spctl accept our bundle with the Qt frameworks. Now at the root of each framework there is just the Versions folder and nothing else (we checked with ls-lha to be sure)What are we missing in this? Is there a way to at least get some hint on where is the unsealed content which is upsetting the verification tool? Thank you in advance
Post
Replies
Boosts
Views
Activity
I'm trying to follow the metal-cpp tutorials I've found at https://developer.apple.com/metal/sample-code/?q=learn
The program seems to be launching correctly (I can see the menu bar and interact with it), but nothing is rendered inside the window. I suppose the culprit is somewhere in the following function (I see it binds the device, the view and the window with the object in charge of drawing stuff in the view)
void core::Application::applicationDidFinishLaunching(NS::Notification *pNotification)
{
CGRect frame = (CGRect){{100.0, 100.0}, {512.0, 512.0}};
m_Window->init(frame, NS::WindowStyleMaskClosable | NS::WindowStyleMaskTitled, NS::BackingStoreBuffered, false);
m_Device = MTL::CreateSystemDefaultDevice();
m_View = MTK::View::alloc()->init(frame, m_Device);
m_View->setColorPixelFormat(MTL::PixelFormat::PixelFormatBGRA8Unorm);
m_View->setClearColor(MTL::ClearColor::Make(1.0, 0.0, 0.0, 1.0));
m_ViewDelegate = new graphics::ViewDelegate(m_Device);
m_View->setDelegate(m_ViewDelegate);
m_Window->setContentView(m_View);
m_Window->setTitle(NS::String::string("Template 1", NS::StringEncoding::UTF8StringEncoding));
m_Window->makeKeyAndOrderFront(nullptr);
NS::Application* nsApp = reinterpret_cast<NS::Application*>(pNotification->object());
nsApp->activateIgnoringOtherApps(true);
}
but, as you can infer from the fact that I'm failing at the very first tutorial of the bunch, I'm quite lost. I've tried debugging the app with the Xcode debugger and I saw that it never enters in this function.
void ViewDelegate::drawInMTKView(MTK::View *pView)
{
m_Renderer->Draw(pView);
}
Can it be a symptom of some call missing from my code?
Thank you in advance for your help