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