Ответ 1
На любой платформе ARM (iOS, watchOS, tvOS), если вы предоставляете смешанный архив bitcode/asm, он может ТОЛЬКО (см. подробности ниже) скомпилироваться для той же архитектуры, что и встроенный asm. Это означает, что вы можете просто представить полное бинарное приложение, ориентированное на эту архитектуру, - нет абсолютно никакого преимущества для отправки битового кода (и, следовательно, нет причин для Apple разрешать его).
В соответствии с Яблочный docs) требуется биткод для watchOS и tvOS, и поэтому встроенная сборка отключена.
Примечание. Для приложений iOS биткод является стандартным, но необязательным. Для watchOS и приложения tvOS, требуется биткод. Если вы предоставляете биткод, все приложения и рамки в комплекте приложений (все цели в проекте) должны включить биткод. После того, как вы распространяете свое приложение с помощью iTunes Connect, вы можете загрузить файл dSYMs для сборки, описанный в разделе "Просмотр" и "Импорт сбоев" в окне "Устройства".
В X86 архив, содержащий смесь биткода и X86 ASM, может быть скомпилирован в 64-битное приложение. Не очевидно, что это разумная вещь, потому что, по-видимому, ручной ассемблер - это критический раздел производительности, но он может работать.
То же самое не относится к ARM. Случай X86 работает, потому что набор команд X86 является чистым подмножеством X86_64, что означает, что любой ассемблер X86 является допустимым ассемблером X86_64. В ARM 64-разрядный процессор должен запускаться в 32-разрядном состоянии для выполнения 32-битного кода. Вы не можете смешивать 32 и 64-битную сборку в том же приложении, что и в ARM docs (см. Изменение состояния выполнения)
... Практически это означает, что вы не можете иметь смешанное 32-битное и 64-битное приложение, потому что между ними нет прямого способа вызова.
Это означает, что если вы предоставляете смесь битового кода плюс встроенный asm-таргетинг ARM-архитектуры ARCH, практически единственное, что может сделать AppStore (по крайней мере, в настоящее время), это компиляция вашего битового кода для ARCH, что дает вам (скажем) полностью 32-разрядное приложение, работающее на 64-битном процессоре. Какой смысл? Было бы намного проще загрузить обычный 32-битный исполняемый файл без битового кода.