TooTallNate / NodObjC

The Node.js ⇆ Objective-C bridge

Home Page:http://tootallnate.github.io/NodObjC

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

$.import() is not importing nested frameworks

hhas opened this issue · comments

commented

The parseBridgeFile() method in import.js relies on depends_on elements in .bridgesupport files to locate nested framework bundles within 'umbrella' framework bundles such as CoreServices. However, BridgeSupport (5) manpage states that 'depends_on' element is deprecated and no longer provided. Inspection of CoreServices.framework on 10.13/10.14 confirms this.

Passing a nested framework's name directly to import does not work as only top-level frameworks are on PATH. One workaround is to pass the full path to each nested framework to $.import() in turn, e.g.:

$.import(path.join($.resolve('CoreServices'), 'Frameworks/AE.framework'));
$.import(path.join($.resolve('Carbon'), 'Frameworks/OpenScripting.framework'));
// etc.

A permanent solution would be for parseBridgeFile() to recursively search each framework bundle for nested frameworks itself.