Search code examples
xcodemacosparse-platformdyld

OSX App crashing on load when ParseOSX framework with Dyld Error


I have an OSX app and I have added the ParseOSX sdk. I have followed all the instructions on the quick start page (https://www.parse.com/apps/quickstart#parse_data/desktop/osx/existing)

The app is running fine in Xcode (Version 5.1.1 (5B1008)) but when I archive and create a package and install this. I get the following Dyld error;

Dyld Error Message: Library not loaded: @executable_path/../Frameworks/ParseOSX.framework/ParseOSX Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp Reason: image not found

It goes on and lists the Binary Images loaded.

Searching the web I found reference to adding a copy files build phase and adding the parse framework to that with the destination set to Products directory.

So it appears there is a dynamic lib not being installed somewhere.

UPDATE:

I just cleaned the build folder and now the app will not even run under Xcode. I get:

dyld: Library not loaded: @executable_path/../Frameworks/ParseOSX.framework/ParseOSX Referenced from: /Users/Ants/Library/Developer/Xcode/DerivedData/MyApp-hjrbgyhzpwnxhiaskxpojqyqxnvh/Build/Products/Debug/Actual.app/Contents/MacOS/MyApp Reason: image not found

UPDATE 2:

It turns out when you are in the quick start page. If you chose the new app option you get a Xcode project. This compiles. Going through it I can see that there is is a Copy Files step that copies the ParseOSX.framework into the Frameworks destination. Tried this is my app and I now get a signing error

/Users/Ants/Library/Developer/Xcode/DerivedData/MyApp-hjrbgyhzpwnxhiaskxpojqyqxnvh/Build/Products/Debug/MyApp.app: code object is not signed at all In subcomponent: /Users/Ants/Library/Developer/Xcode/DerivedData/MyApp-hjrbgyhzpwnxhiaskxpojqyqxnvh/Build/Products/Debug/MyApp.app/Contents/Frameworks/ParseOSX.framework


Solution

  • Two things fixed this for me.

    First I needed to add a copy files section to the build phases and copy the ParseOSX.framework into the Frameworks destination.

    And second, I needed to add --deep to the "Other Code Signing Flags" in the Code Signing section of Build Settings. It now signs the frameworks being copied it seems.