Я добавлю свои 2 цента здесь (менее страшно :-). Я встречал довольно много толстых библиотек от поставщиков, которые (по какой-то причине) не работают обычным образом, добавляя их в Frameworksкаталог, как описано в Apple. Единственный способ заставить их работать, это потянуть .framekworkвправо в каталог проекта и связать Embedded Frameworksи Link Binary with Librariesвручную в настройках сборки. Однако, похоже, это работало без проблем, так как с любой толстой библиотекой они идут с посторонними архитектурами симулятора i386 и x86_64вместе с armархитектурами.
Быстрый способ проверить архитектуру в толстой библиотеке
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
Который должен выплевывать вывод примерно так
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
Это подтверждает, что вам нужно будет «обрезать жир» (а именно i386& x86_64) из вашей инфраструктуры до загрузки архива iTunesConnect, что не позволяет использовать эти архитектуры (поскольку они не поддерживаются для iOS).
Теперь все ответы (или, по крайней мере, некоторые из ответов) здесь предоставляют эти замечательные Run Scripts, которые, я уверен, работают действительно хорошо, но только если ваша Framework находится в Frameworksкаталоге. Теперь, если вы не любитель сценариев оболочки, эти сценарии без изменений не будут работать для сценария, который я объяснил выше. Тем не менее, существует очень простой способ избавиться от i386& x86_64архитектуры из фреймворка.
Откройте терминал в каталоге вашего проекта.
Изменить каталог прямо в .framekwork, как
cd YourProjectDir/YourProject/YourLibrary.framework
Запустите серию команд, как показано ниже:
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
Несколько вещей, на которые следует обратить внимание, - lipo -removeэто необходимо сделать один раз для удаления каждой архитектуры. lipoне изменяет входной файл, он создает только файл, поэтому вам нужно запустить его lipo -removeодин раз x86_64и i386. Приведенные выше команды просто делают это, сначала переименовывая исполняемый файл, а затем, в конце концов, удаляя нужные архивы, а затем убирая оставшиеся файлы. И все, теперь вы должны увидеть зеленую галочку при загрузке приложения Application Loader Archival в iTunesConnect.
Что нужно иметь в виду : вышеупомянутые шаги должны быть выполнены только во время производственной сборки, так как сборки .frameworkбудут удалены из архитектур симулятора, сборки на симуляторах перестанут работать (что ожидается). В среде разработки не должно быть необходимости удалять архитектуру .frameworkфайла, поскольку вы хотите иметь возможность проводить тестирование как на симуляторе, так и на физическом устройстве. Если ваша толстая библиотека находится в Frameworksпапке в проекте, пожалуйста, посмотрите на принятый ответ.