IBPlugin e percorsi di quadro
-
22-09-2019 - |
Domanda
IBCocoaSimulator si blocca quando IB non riesce a trovare il quadro, suppongo che succede anche a te. Posso correre IBCocoaSimulator senza crash, quando copio manualmente il mio quadro + ibplugin dalla dir accumulo in /Users/username/Library/Frameworks
. Sto facendo questo con il Finder, questo non è ottimale, ma funziona.
Ho cercato un modo più intelligente e ogni soluzione (BWToolkit, BGHUDAppKit, KTUIKit) Sono stato a guardare, fa le cose in molto modi diversi . Una soluzione esegue uno script sudo che lo copia alla vasta /Library/Frameworks
sistema. Un altro set di @loader_path
e ancora un altro utilizza @executable_path
. Non ho avuto fortuna con nessuno di loro e a causa delle grandi differenze è difficile vedere il modello.
Sono confuso.
Come si fa a voi config IBPlugin, in modo che è possibile incorporare nella vostra applicazione?
UPDATE 1:
Yay, risolto, dopo aver letto un post sul blog da Dribin su come utilizzare @rpath, ho capito come farlo funzionare con i miei IBPlugins. Quindi copia utilizzando Finder non è più necessaria.
Quello che ho fatto è stato:
- Per set MySmallFramework
Installation Directory
a@rpath
- Per set MySmallPlugin
Runpath Search Paths
a@loader_path/../Frameworks
- Per MySmallApp impostato
Runpath Search Paths
a@loader_path/../Frameworks
Nizza.
Soluzione
Potrebbe essere ovvio per la maggior parte di voi, ma la soluzione di neoneye come pubblicato nella sua fase "Update 1" è necessario che il obiettivo plug-in per avere una "file del framework copia" build con il dato quadro assegnato a .
(non hanno ancora abbastanza punti per commentare :( da qui la posta diretta risposta)
Altri suggerimenti
È possibile chiamare questo con esterno del progetto makefile Xcode da ibplugin makefile come riportato di seguito:
install_name_tool -change @loader_path/MyPluginName.framework/MyPluginName @loader_path/<absolute path or level to updirectory>/MyPluginName.framework/MyPluginName $(BINDIR)/MyPluginName.ibplugin/Contents/MacOS/MyPluginName