Программа .app не может открыть файл двойным кликом

У меня есть программа c++ которая должна получить название файла из argv, открыть его и работать с ним. Программа полностью работает, т. к. если вызывать бинарник из терминала (т. е. вызывать файл формата Unix Executable) тогда программа спокойно получает название файла из argv и работает с ним, но если сделать из этого бинарника MacOs программу .app то по двойному клику на файл, который нужно открыть, программа выкидывает такую ошибку:

Sengine Error while opening .mdl files

Опять же, если я запускаю бинарник (уже находящийся в папке программы), а не саму программу полностью из консоли, то все работает, но если я запускаю программу из консоли, то выкидывает ту же ошибку, для наглядности вот табличка со всеми командами которые я пробовал:

open -a /Applications/Sengine.app obj/rogers.mdl - Не работает

/Applications/Sengine.app/Contents/MacOS/SENGINE obj/rogers.mdl - Работает

cmake-build-debug/SENGINE obj/rogers.mdl - Работает

Компилирую через cmake:

/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build cmake-build-debug --target SENGINE -- -j 3

Файл info.plist из нерабочей программы, если вам будет нужно:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDisplayName</key>
    <string>Sengine</string>
    <key>CFBundleExecutable</key>
    <string>Sengine</string>
    <key>CFBundleIconFile</key>
    <string>icon.icns</string>
    <key>CFBundleIdentifier</key>
    <string>com.zolars.sengine-department.SENGINE</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>Sengine</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>3.0.0</string>
    <key>NSHighResolutionCapable</key>
    <true/>
    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeIconFiles</key>
                <string>mdl.icns</string>
            <key>LSItemContentTypes</key>
                <array>
                        <string>mdl</string>
                </array>
            <key>LSHandlerRank</key>
            <string>Owner</string>
        </dict>
    </array>
</dict>
</plist>

Если я правильно понял, то почему то название файла, после вызова программы, не доходит до бинарника. Я не могу понять почему и как это исправить.

Помогите пожалуйста разобраться.


Ответы (0 шт):