64-битная поддержка статических библиотек в iOS
По словам Apple, после 1 июня приложения, которые не созданы для 64-разрядных систем, будут автоматически отклоняться при загрузке в магазин приложений. Мое приложение использует "Стандартные архитектуры" и BaseSDK 8.0. На первый взгляд это означает, что приложение в порядке с этими правилами, однако что происходит, когда внешние библиотеки не являются 64-битными? Например
$ lipo -info libssl.a
Architectures in the fat file: libssl.a are: armv6 armv7
Эти файлы libssl.a, кажется, скомпилированы для 32-битных. Однако мне это нужно в моем приложении, поэтому оно связано. Мое приложение находится в AppStore долгое время, и оно было впервые построено с 32-разрядной версией. Теперь со "Стандартными архитектурами" он компилируется с поддержкой 32 и 64 бит.
Это нормально, или мне нужны 64-битные версии моих статических библиотек?
2 ответа
Да.
Если ваш проект 64-битный, а внешние библиотеки 32-битные, ваш проект даже не скомпилируется.
ВСЕ должно быть 64-битным, чтобы конечное приложение было 64-битным
ВСЁ значит
- само приложение
- все связанные статические библиотеки
- все связанные динамические библиотеки
- все связанные рамки (как правило, яблоки!)
- все включенные "расширения" (которые являются собственными приложениями)