Недавно мне пришлось дублировать свои собственные фреймворки, чтобы иметь возможность связать их с родным расширением watchOS 2, потому что платформа другая. Так что для каждого фреймворка X у меня есть аналог X-watchos. Все отлично работает в симуляторе и при сборке непосредственно на мои устройства, и только когда я попытался заархивировать, я получил эту ошибку связывания:
Я запустил lipo -i
на построенном фреймворке watchOS и, конечно же, его арки arm7
и arm64
вместо armv7k
.
Когда я посмотрел дальше в встроенный каталог, я заметил это:
Обе версии являются символическими ссылками на один и тот же файл, и, поскольку они имеют одинаковое имя продукта, они переопределяются. Я мог бы дать им разные имена, но это сделало бы их import
очень громоздкими.
Обратите внимание, что это не проблема для сторонних платформ, поскольку Carthage
уже создает их в отдельных каталогах.
EDIT 22/08/2015: я отправил радар с примером проекта: http://www. openradar.me/22392501
EDIT 24.08.2015: это было отмечено в примечаниях к выпуску Xcode 7 Beta 6 как известная проблема:
EDIT 09/09/2015: примечания к выпуску бета-версии Xcode 7.1 намекают, что это исправлено, но я еще не подтвердил это.