Я разрабатываю Today Widget Extension для приложения с целью развертывания раньше, чем iOS 8.0. В apple Extension Programming Guide они рекомендовали использовать встроенную инфраструктуру для совместного использования кода между расширением приложения и его содержащим приложением.Использование встроенной инфраструктуры в приложении, содержащем расширение, с целью развертывания iOS 7.0 и более ранних версий
Вы можете создать встроенную инфраструктуру для совместного использования кода между вашим приложением и его содержащим приложением.
В конце этого руководства они объясняют, как развернуть содержащее приложение в более ранних версиях iOS 8.0 с помощью команды dlopen
.
После того, как я добавил цель рамки, проект не будет успешно выполнен. Это всегда проваливались со следующими ошибками:
- Lipo Ошибка: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: не может открыть входной файл: PATH_TO_BUILD/ARMv7/APP_NAME (Нет такого файла или каталога)
- Apple, Mach-O Linker Error: ЛД: встроенный dylibs/рамки поддерживаются только прошивкой 8.0 и выше (@ RPATH/FRAMEWORK_NAME) для архитектуры ARMv7
(Ошибка 2 повторяет с архитектурой arm64)
Что я делаю неправильно?
Есть ли другой способ обмена кодом между расширением приложения и его содержащим приложение?
Если кто-то знает о решении dlopen
, пожалуйста, введите учебник «Как» (примеры приветствуются).
На данный момент я включил весь общий код как в цель приложения, так и в цель расширения, отлично работает. Но не будет ли отклонено приложение при отправке в App Store? –
Почему вы так думаете? –
Возможно, у Apple есть причина, по которой они рекомендовали использовать встроенную инфраструктуру для совместного использования кода между расширением приложения и его содержащим приложением. –