'->' не является оператором. Он встречается в синтаксисе F # в нескольких местах, и его значение зависит от того, как он используется как часть более крупной конструкции.
Внутри типа '->' описывает типы функций, как люди описали выше. Например,
let f : int -> int = ...
говорит, что «f» - это функция, которая принимает int и возвращает int.
Внутри лямбды («вещь, которая начинается с ключевого слова fun»), «->» - это синтаксис, отделяющий аргументы от тела. Например,
fun x y -> x + y + 1
- это выражение, которое определяет функцию с двумя аргументами для данной реализации.
Внутри конструкции «match», «->» является синтаксисом, который отделяет шаблоны от кода, который должен выполняться, если шаблон соответствует. Например, в
match someList with
| [] -> 0
| h::t -> 1
материал слева от каждого '->' - это шаблоны, а материал справа - это то, что происходит, если шаблон слева совпал.
Трудность в понимании может быть коренится в ошибочном предположении, что «->» является «оператором» с одним значением. Аналогия может быть "." в C #, если вы никогда не видели код раньше, и попробуйте проанализировать "." Оператор, основанный на взглядах на «obj.Method» и «3.14» и «System.Collections», может запутаться, потому что символ имеет разные значения в разных контекстах. Однако, как только вы узнаете достаточно языка, чтобы распознать эти контексты, все станет ясно.
Я не знаю ни одного простого подхода, но вы можете подобрать его, вызвав xcodebuild напрямую для зависимости с фазой сборки «Run Script».
Я знаю, что это было просто пример, но если ваша настоящая цель состоит в том, чтобы подпроект был сборкой Release (без символов), тогда у вас может быть лучший опыт, просто встроив подпроект в библиотеку или фреймворк и проверив полученный двоичный файл в вашем система контроля версий. Всякий раз, когда у меня есть часть системы, которая редко изменяется и для которой мне не нужны символы отладки, я создаю ее как статическую библиотеку и проверяю ее. Я часто иду дальше и перемещаю код в другое место (с файл README с расширением .a, в котором указано, где находится код и как он был построен).
Да, это естественно не поддерживается Xcode; когда вы создаете цель, она создает одну конфигурацию для себя и всех зависимых целей.
Как сказал Роб, обходной путь состоит в том, чтобы иметь зависимую цель, которая является типом Aggregate Target, которая включает одну фазу сборки Run Script, которая просто вызывает xcodebuild -configuration Release (или что-то еще).