Ich versuche, ein Python-Skript zu meinem Projekt hinzufügen, um die Build-und Marketing-Nummern direkt von Git zu erhalten.Xcode Target Phase Python Skript
Ich habe eine neue Zielphase erstellt und führt ein Skript wie erläutert in:
http://yeahrightkeller.com/2008/10/19/xcode-run-script-build-phase-tip/
Und ich habe ein Python-Skript geschrieben, das das Programm Info.plist mit
from Foundation import NSMutableDictionary
jedoch parst das Skript fehlschlägt, während kompiliert wird und meldet den folgenden Fehler auf die Build-Ergebnisse:
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)
Deutlich, distutils hat irgendwie fest programmiert, dass es für Version 10.6 kompiliert ist (Snow Leopard, das ist die, die ich benutze), aber das Projekt hat das MacOSX Deployment-Ziel auf 10.5 gesetzt.
Wenn ich versuche, diese Variable zu setzen in dem Projekt auf 10,6 ich dann bekommen:
ld: library not found for -lcrt1.10.6.o
Alle Ideen, wie dieses Problem zu lösen? Danke im Voraus.
Vielen Dank für Ihre Antwort Ned. Deployment für 10.5 ist ein Muss bei dem Fehler, den ich mit 10.6 bekomme. Aber 10.5 funktioniert nicht, da die Distutils 10.6 erwarten (wie durch die Umgebungsvariable angezeigt wird). Gibt es eine Möglichkeit, distutils zu sagen, dass es für 10.5 oder die Version 10.5 funktionieren soll? Das Ziel für mich ist nur ein Python-Skript als Zielphase hinzufügen, weil das Lesen und Schreiben der PLIST einfacher ist, keine Python-App bereitzustellen. –
Siehe zusätzliche Kommentare oben. Ich hoffe, das hilft! –
Danke nochmal Ned. Dies ist kein MacOSX-Projekt, sondern ein iPhone und es scheint 10,5 als Ziel zu benötigen, sonst bekomme ich: ld: library nicht gefunden für -lcrt1.10.6.o auch nach dem Reinigen des Ziels. Ich habe beschlossen, auf die harte Tour zu gehen und das Python-Skript durch ein Perl-Skript zu ersetzen, das genau das gleiche tut. Ich bekomme nicht den gleichen Fehler mit Perl. Gott segne Perl! Danke TMTOWTDI! Ich glaube immer noch, dass es ein Problem mit Python gibt, wenn es als Skript eines iPhone-Projekts verwendet wird, aber ich habe eine Abhilfe dafür. –