Tôi đang cố gắng thêm một tập lệnh Python vào dự án của mình để lấy số xây dựng và tiếp thị trực tiếp từ Git.Xcode Target Phase Python Script
Tôi đã tạo ra một giai đoạn mục tiêu mới và chạy một kịch bản như đã giải thích ở:
http://yeahrightkeller.com/2008/10/19/xcode-run-script-build-phase-tip/
Và tôi đã viết một kịch bản Python rằng phân tích Info.plist chương trình sử dụng
from Foundation import NSMutableDictionary
Tuy nhiên tập lệnh không thành công trong khi được biên dịch và báo cáo lỗi sau cho kết quả xây dựng:
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)
Rõ ràng, distutils có cách nào đó mã hóa cứng mà nó được biên dịch cho phiên bản 10.6 (Snow Leopard, đó là cái tôi đang sử dụng), nhưng dự án có mục tiêu Triển khai MacOSX được đặt thành 10.5.
Nếu tôi cố gắng để thiết lập biến này trong dự án để 10,6, Sau đó tôi nhận được:
ld: library not found for -lcrt1.10.6.o
Bất kỳ ý tưởng về cách giải quyết vấn đề này? Cảm ơn trước.
Cảm ơn rất nhiều cho câu trả lời của bạn Ned. Triển khai cho 10.5 là phải đưa ra lỗi mà tôi nhận được với 10.6. Nhưng 10.5 không hoạt động vì các distutils mong đợi 10.6 (như được chỉ ra bởi biến môi trường.) Có cách nào để nói distutils làm việc cho 10.5 hoặc sử dụng phiên bản 10.5? Mục tiêu của tôi là chỉ thêm một tập lệnh python làm một pha đích vì đọc và viết plist dễ dàng hơn, không triển khai ứng dụng python. –
Xem các nhận xét bổ sung ở trên. Hy vọng rằng sẽ giúp! –
Cảm ơn một lần nữa Ned. Đây không phải là dự án MacOSX, mà là một iPhone và có vẻ như yêu cầu 10.5 là mục tiêu vì nếu không tôi sẽ nhận được: ld: không tìm thấy thư viện cho -lcrt1.10.6.o ngay cả sau khi làm sạch mục tiêu. Tôi đã quyết định đi một cách khó khăn và thay thế kịch bản python bằng một kịch bản perl mà thực hiện chính xác như nhau. Tôi không gặp lỗi tương tự với perl. Chúa ban phước cho Perl! Cảm ơn TMTOWTDI! Tôi vẫn tin rằng có một vấn đề với python khi được sử dụng như một kịch bản của một dự án iPhone, nhưng tôi có một giải pháp cho nó. –