2009-08-29 14 views
6

Attualmente sto facendo funzionare la mia applicazione PyObjC per Snow Leopard e ho compilato con successo un'app standalone. La mia domanda sarebbe, come faccio a rendere la build per essere anche compatibile con Leopard, dati questi errori?Compilando una build di lavoro py2app per Leopard e Snow Leopard?

dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003 
    Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp 
    Expected in: /usr/lib/libSystem.B.dylib 

dyld: Symbol not found: _fopen$UNIX2003 
    Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp 
    Expected in: /usr/lib/libSystem.B.dylib 

Questa è un'applicazione Py2app compilata da Snow Leopard. Inoltre, quando compilo su Leopard, d'altra parte, questo errore si verifica:

Traceback (most recent call last): 
    File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 31, in <module> 
    _run('main.py') 
    File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 28, in _run 
    execfile(path, globals(), globals()) 
    File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/main.py", line 17, in <module> 
    from AppKit import * 
    File "AppKit/__init__.pyc", line 10, in <module> 
    File "Foundation/__init__.pyc", line 10, in <module> 
    File "CoreFoundation/__init__.pyc", line 17, in <module> 
    File "objc/_bridgesupport.pyc", line 129, in initFrameworkWrapper 
    File "objc/_bridgesupport.pyc", line 53, in _parseBridgeSupport 
ValueError: Unknown typestr 
2009-08-29 19:30:14.530 MyApp[445:903] MyApp Error 
2009-08-29 19:30:14.534 MyApp[445:903] MyApp Error 
An unexpected error has occurred during execution of the main script 

Qualsiasi aiuto sarebbe apprezzato. Grazie in anticipo.

risposta

0

Poiché entrambi sono su un'architettura distinta (rispettivamente a 32 e 64 bit), penso che sia necessario creare due compilazioni distinte.

3

ho fatto questo di recente e il trucco è stato quello di costruire una versione autonoma su un installazione Leopard.

Per impostazione predefinita, a meno che non sia installata una versione open source di Python, py2app crea un'applicazione semi-autonoma semi-autonoma che dispone di collegamenti simbolici ai file del sistema operativo.

Se invece si crea una versione autonoma dell'applicazione, l'interprete ei file di supporto sono incorporati all'interno dell'applicazione e sono pertanto coerenti su tutte le macchine che eseguono l'applicazione. Le istruzioni per creare un'applicazione completamente autonoma sono disponibili here, ma prestare attenzione ai commenti del blog poiché alcune cose sono cambiate dopo la scrittura del post sul blog.

Se si dispone di librerie specifiche necessarie è possibile fare riferimento a esse nel file setup.py o in alternativa è sempre possibile aggiungerle manualmente alla directory dylib (che è stato più semplice per me in quanto era necessario modificare gli script di avvio e non non voglio rigenerare), ma assicurati di usare le librerie a 32 bit (che sarà su Leopard).