Estoy intentando agregar una secuencia de comandos de Python para en mi proyecto para obtener los números de generación y comercialización directamente de Git.Xcode objetivo de secuencias de comandos de Python Fase
He creado una nueva fase de destino y que se ejecuta un script como se explica en:
http://yeahrightkeller.com/2008/10/19/xcode-run-script-build-phase-tip/
y he escrito un script en Python que analiza el programa usando Info.plist
from Foundation import NSMutableDictionary
Sin embargo el script falla al compilarse e informa el siguiente error en los resultados de compilación:
Running a custom build phase script: gitversion.py
Traceback (most recent call last):
File "/Users/jorge/Documents/Programming iPod/Pruebas/RowOrder/Scripts/gitversion.py", line 9, in <module>
from Foundation import NSMutableDictionary
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/Foundation/__init__.py", line 8, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC/objc/__init__.py", line 26, in <module>
from _bridgesupport import *
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC/objc/_bridgesupport.py", line 9, in <module>
import pkg_resources
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 651, in <module>
class Environment(object):
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 654, in Environment
def __init__(self, search_path=None, platform=get_supported_platform(), python=PY_MAJOR):
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 55, in get_supported_platform
plat = get_build_platform(); m = macosVersionString.match(plat)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 181, in get_build_platform
plat = get_platform()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/util.py", line 97, in get_platform
cfgvars = get_config_vars()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/sysconfig.py", line 525, in get_config_vars
func()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/sysconfig.py", line 408, in _init_posix
raise DistutilsPlatformError(my_msg)
distutils.errors.DistutilsPlatformError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.5" but "10.6" during configure
Finished running custom build phase script: gitversion.py (exit status = 1)
Claramente, distutils ha hardcoded alguna manera que está compilado para la versión 10.6 (Snow Leopard, que es el que yo estoy usando), pero el proyecto tiene el objetivo de establecer MacOSX despliegue a 10,5.
si trato de establecer esta variable en el proyecto a 10,6, entonces me sale:
ld: library not found for -lcrt1.10.6.o
Cualquier ideas sobre cómo resolver este problema? Gracias por adelantado.
Gracias mucho por su respuesta Ned. Implementar para 10.5 es imprescindible dado el error que obtengo con 10.6. Pero 10.5 no funciona porque los distutils esperan 10.6 (como lo indica la variable de entorno). ¿Hay alguna forma de decirle a distutils que trabaje para 10.5 o que use la versión 10.5? El objetivo para mí es solo agregar un script de python como fase de destino porque leer y escribir el plist es más fácil, no implementar una aplicación de Python. –
Ver comentarios adicionales arriba. ¡Espero que ayude! –
Gracias otra vez Ned. Este no es un proyecto de MacOSX, sino uno de iPhone y parece requerir 10.5 como objetivo porque de lo contrario obtengo: ld: biblioteca no encontrada para -lcrt1.10.6.o incluso después de limpiar el objetivo. He decidido tomar el camino difícil y reemplazar el script de Python con un script de Perl que hace exactamente lo mismo. No obtengo el mismo error con Perl. Dios bendiga a Perl! Gracias TMTOWTDI! Todavía creo que hay un problema con python cuando se usa como script de un proyecto de iPhone, pero tengo una solución para ello. –