我正在嘗試將Python腳本添加到我的項目中,以直接從Git獲取構建和市場營銷編號。Xcode目標階段Python腳本
我創建了一個新的目標階段和運行的腳本中解釋說:
http://yeahrightkeller.com/2008/10/19/xcode-run-script-build-phase-tip/
而且我寫了解析使用
from Foundation import NSMutableDictionary
但是該程序的Info.plist Python腳本該腳本在編譯時失敗並向生成結果報告以下錯誤:
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)
很明顯,distutils在某種程度上被硬編碼爲針對版本10.6(Snow Leopard,即我正在使用的版本)進行編譯,但該項目的MacOSX Deployment目標設置爲10.5。
,如果我嘗試在項目的這個變量設置爲10.6,然後我得到:
ld: library not found for -lcrt1.10.6.o
如何解決這個問題的任何想法?提前致謝。
非常感謝您的回答斯內德。 部署10.5是必須的,因爲我得到的錯誤是10.6。但10.5不工作,因爲distutils期望10.6(如環境變量所示)。有沒有辦法告訴distutils工作在10.5還是使用10.5版本? 我的目標只是添加一個python腳本作爲目標階段,因爲讀取和寫入plist更容易,而不是部署python應用程序。 – 2009-11-09 11:17:36
查看上面的其他評論。希望有所幫助! – 2009-11-09 20:12:49
再次感謝奈德。 這不是一個MacOSX項目,而是一個iPhone,它似乎需要10.5作爲目標,否則我會得到:即使在清理目標之後,ld:library也找不到-lcrt1.10.6.o。 我已經決定付出艱辛的努力,用一個完全一樣的perl腳本替換python腳本。 我沒有得到與perl相同的錯誤。上帝保佑Perl!謝謝TMTOWTDI! 我仍然認爲Python作爲iPhone項目的腳本時存在問題,但我有一個解決方法。 – 2009-11-09 23:36:40