Целевая фаза XCode сценарий Python

Если Вы надеетесь удалять ненужный #include файлы для уменьшения времени изготовления, время и деньги могли бы быть лучше проведены, параллелизируя процесс сборки с помощью , cl.exe / MP , делают-j, Xoreax IncrediBuild, distcc / мороженое , и т.д.

, Конечно, если у Вас уже есть параллельный процесс сборки, и Вы все еще пытаетесь ускорить его, то любой ценой очищают Ваш #include директивы и удаляют те ненужные зависимости.

5
задан pkamb 8 December 2017 в 22:15
поделиться

3 ответа

Apple распространяет Python 2.5 и 2.6 вместе со Snow Leopard (10.6 ), и оба построены с целью развертывания 10.6. Если вам действительно нужно нацелить свое приложение на 10.5, вы не можете безопасно использовать поставляемые Apple Pythons на 10.6 для развертывания на 10.5.

Самым простым решением может быть загрузка и установка Python 2.6 из python . org . Этот Python нацелен на 10.3+, поэтому он будет работать как на 10.5, так и на 10.6. Вероятно, вам также потребуется убедиться, что Python установлен на всех машинах, на которых будет развернуто ваше приложение.

Другой вариант может заключаться в создании отдельного автономного вспомогательного приложения с использованием py2app с python .org 2.6 и разверните его вместе с вашим основным приложением. Или создайте все свое приложение под py2app. В любом случае приложение будет содержать собственный интерпретатор фреймворка и фреймворк Python, независимо от версии системы.

РЕДАКТИРОВАТЬ: Основываясь на вашем комментарии, я не уверен, что понимаю вашу проблему. Поскольку вы работаете на 10.6, мне непонятно (1) почему у вас установлена ​​цель развертывания 10,5 и (2), если вам нужно установить развертывание на 10,5. Я' Я собираюсь предположить, что у вас есть существующий проект Xcode, который был разработан на 10.5, а затем импортирован или обновлен с Xcode на 10.5 до Xcode на 10.6. Если это так, то я думаю, что единственное, что нужно было сделать, - это изменить Active SDK с 10.5 на 10.6 (в обзоре) в верхней части окна проекта. Выполнение именно этого и принудительная очистка всех целей должно устранить ошибку crt library not found ; если нет, то что-то не так с зависимостями проекта.

С другой стороны, если вам действительно нужно разрабатывать 10.6 для 10.5, то кажется, что ваш gitversion.py вводит непреднамеренную зависимость от python 2.6 (как можно увидеть по трассировке), которая не является частью 10.5. Если вам действительно не нужны функции python 2.6, вы сможете устранить это с помощью python 2. 5, который Apple предоставляет как для 10.5, так и для 10.6. В этом случае, возможно, все, что вам нужно сделать, это убедиться, что вы вызываете python в сценарии фазы сборки с помощью /usr/bin/python2.5, а не просто python.

1
ответ дан 15 December 2019 в 01:04
поделиться

Для целей этого скрипта вы можете просто временно установить значение MacOSX_DEPLOYMENT_TARGET на 10,6. Таким образом, ваша команда будет:

env MACOSX_DEPLOYMENT_TARGET=10.6 gitversion.py
1
ответ дан 15 December 2019 в 01:04
поделиться

У меня та же проблема, и я хотел сохранить версию на Python, потому что обработка списка файлов через NSMutableDictionary намного приятнее, чем использование регулярных выражений в Info.plist .

Основываясь на ответе Максенса, решение заключалось в том, чтобы вырезать код python из фазы сборки Run Script в файл gitversion.py :

#!/usr/bin/env python
import os
from Foundation import NSMutableDictionary
from subprocess import Popen, PIPE

p = Popen(
        "/sw/bin/git rev-parse --short HEAD", 
        stdout=PIPE, 
        close_fds=True,
        shell=True)

version = p.stdout.read()
print version
info = os.environ['INFOPLIST_FILE']
print info
plist = NSMutableDictionary.dictionaryWithContentsOfFile_(info)
print plist
plist['revision'] = version[:-1]
plist.writeToFile_atomically_(info, 1)

Затем заменить исходный Run Script сценарием оболочки:

env MACOSX_DEPLOYMENT_TARGET=10.6 python gitversion.py

Не забудьте изменить параметр Shell на / bin / sh .

2
ответ дан 15 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: