Иван М @ctoivan
CTO @ МТС | ex СберЗвук | ex DigitalHorizon VC
Information
- Rating
- 402-nd
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Chief Technology Officer (CTO)
Lead
Python
PostgreSQL
gRPC
Pytorch
TENSORFLOW
Machine learning
Neural networks
Deep Learning
Natural language processing
NLP
Мы пробовали использовать инструкции из этой документации и ничего особо не получалось. Не могу точно вспомнить, в чем конкретно была причина, но у нас не получилась. Оглядываясь сегодня, понимаю, что стоит повнимательнее посмотреть, как там через
Bazel
это собирается и решается проблема минимального iOS таргета. Спасибо за ссылку, видимо стоит в конце статьи собрать полезные материалы :)если бы это было 5 лет назад, нам бы нечего было написать, как правильно в комментариях заметили, таких проблем не было :)
В этом и была проблема, что мы не смогли его использовать (дефолтный iOS SDK). Какие бы мы опции не пробовали, в итоге всегда собиралось под дефолтный iOS 16.0 SDK. Перепробовали все, что можно, перед тем, как ставить xCode, у которого дефолт именно iOS 14.0
Да, мы осознавали это при выборе решения
Спасибо за классную идею! Неплохой способ все упаковать и распространять, забрали себе в toDo :)
-
Совершенно верное замечание. Но в нашем кейсе мы пытались сбилдить именно под iOS и распоcтранять, используя AppStore. Еще можно добавить, что аналогичная ситуация (с ошибкой на этапе аплоада) возможна, если попытаться отправить сборку, содержащую фреймворк с embeded фреймворком, не смотря на то, что сама ipa будет работать корректно
Да, это действительно была очень странная ситуация. По идее XCode 14 (а в теории и 15, 16) должны без проблем собирать, используя iOS SDK 14.0. Самой ошибки не было – фреймворк просто гордо работал только от 16 iOS, что не соответствовало нашим требованиям. Эта проблема съела львиную долю времени и мы были рады найти хоть какой-то хак, а суть проблемы до сих пор остается непонятной.
Причем у нас есть уверенность, что правильное решение элементарное, на уровне указания флага или лишней настройки, но найти его не удалось. Будем рады, если кто-нибудь прольет свет на эту ситуацию.
XCode 15 стали использовать лишь недавно. XCode 16 даже не щупали
А у нас получалась именно библиотека, что с большим таргетом. Проект на 14, а получавшаяся либа работала только от 16
Можно идти двумя путями, получится в обоих случаях. Мы выбрали путь CMake. Если коротко в чем разница:
СMake требует разобраться и написать правильную инструкцию сборки
XCode требует разобраться, как правильно прибить все хедеры и победить проблемы в стиле "framework not found" для зависимости tensorflow
Особо разницы никакой, но нам было проще сделать CMakeLists.txt
Справедливое замечание. Мы указывали пути до исходников в явном виде. В статье просто этот момент опустили в пользу читаемости
Здесь мы тоже немного разнообразили статью. Чтобы не только запуск команд был. xcodebuild прекрасно делает тоже самое, что и XCode
Не знали об этом, примем к сведению. Мы нашли рекомендации указывать это явно и решили, что стоит явно указать какой стандарт нам необходим
Да. У нас зависимость от TensorflowLiteFramework, описана явно в основном модуле нашего SDK. Но ваше замечание абсолютно справедливо. Оно действительно работает и так, но стоит явно указывать эту зависимость. А то не всем будет очевидно, что и от чего зависит
Мы допустили ошибку в этой таблице, спасибо, что подсветили. Конечно же правильные значения тут будут amr64, x86_64 и старенький совсем i386. Скорректировали ее в статье