Я додам сюди свої 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
папці проекту, будь ласка, подивіться на прийняту відповідь.