У меня есть рабочая область Xcode (11.4.1 - хотя это произошло в 11.4 и 11.3). Это рабочее пространство состоит из нескольких библиотек iOS Swift stati c. Одна из библиотек: lib (A) должна использовать другую библиотеку lib lib (B) , расположенную в том же рабочем пространстве.
Если я просто попытаюсь import
модуль из некоторого исходного файла в lib (A) компилятор не сможет найти символы. Достаточно справедливо, чтобы «Найти неявные зависимости» работало, как я понимаю, мне нужно Link Binary With Libraries
; Я могу принять это, поэтому я явно связываю это:
Для lib (A) I go к своей цели и выберите Link Binary With Libraries
под его Build Phases
и выберите lib (B) из браузера рабочей области. Когда я это делаю, я получаю диалоговое окно с предупреждением:
Файл уже связан
Если я нажмите Отмена , он все еще добавляет выбранный элемент в Link Binary With Libraries
, но теперь все налажено. Почему предупреждение?
То же самое применимо, если бы я также добавил цель модульного тестирования в проект для lib (A) . Если я явно связываю требуемые stati c libs, я получаю это предупреждение. Нажатие «Отмена» добавляет элемент, и все работает.
Теперь, «все работает» с XCode, заманчиво просто медленно отступить и принять это за то, что оно того стоит. Однако мне любопытно, что означает это предупреждение / почему оно там? Понятно, что, по словам компилятора, связывание необходимо, поскольку оно не компилируется без него. При добавлении ссылки, хотя, похоже, на это жалуется.