Я додам сюди свої 2 копійки (менш страшним способом :-). Я зіткнувся з досить великою кількістю жирових бібліотек від постачальників, які (чомусь) не працюють нормальним способом, додаючи їх до Frameworksкаталогу, як це задокументовано Apple. Єдиний спосіб, коли нам вдалося змусити їх працювати, - це втягнути .framekworkправоруч у каталог проектів і зв’язати вручну Embedded Frameworksта Link Binary with Librariesвручну в Налаштуваннях збірки. Це, здається, спрацювало без будь-яких проблем, проте, як і будь-яка жирова бібліотека, вони поставляються із сторонніми архітектурами Simulator 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 Archival ) з вашої системи, що не дозволяє цим архітектурам (оскільки вони не підтримуються для iOS).
Тепер усі відповіді (або принаймні деякі відповіді) містять ці чудові сценарії запуску, на які я впевнений, що вони справді добре працюють, але лише якщо ваша рамка знаходиться в 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 . Наведені вище команди - це просто зробити, спочатку перейменувавши виконуваний файл, а потім зрештою видаливши потрібні арки, а потім очистивши ліві файли. І це все, тепер ви повинні побачити зелений прапорець у завантаженні додатка Archival Archival до iTunesConnect.
Необхідно пам’ятати : наведені вище кроки слід робити лише під час нарощування виробництва, оскільки .frameworkбуде позбавлено архітектури тренажеру, а на тренажерах перестануть працювати (що очікується). У середовищі розробки не повинно виникати необхідності знімати архітектуру з .frameworkфайлу, оскільки ви хочете мати можливість протестувати як на Simulator, так і на фізичному пристрої. Якщо ваша жирова бібліотека знаходиться в Frameworksпапці проекту, будь ласка, подивіться на прийняту відповідь.