tinkoff-mobile-tech / tinkoff-asdk-ios

Tinkoff Acquiring SDK
https://tinkoff.ru/kassa
45 stars 34 forks source link

Размер бинарника слишком большой, ошибка ITMS-90865 #316

Closed alkozin closed 1 year ago

alkozin commented 1 year ago

Описание бага

Размер бинарника либы слишком большой, получаем ошибку ITMS-90865: Thinned app clip size is too large при заливке в стор. Ассеты и так удаляем руками при каждом обновлении pod.

После каких действий возникает ошибка

Обновил pods с версии 2.10.4 до 2.17.0

Ожидаемое поведение

Бинарник будет весить меньше половины приложения. Мы используем AppClip.

В версии 2.10.4 нет папки TinkoffASDKUI/ThirdParty Начиная со следующей 2.11.0 она появляется. В ней бинарник TdsSdkIos.

Что происходит на деле

TdsSdkIos весит 5,6 mb.

Screenshot 2023-03-12 at 22 44 26

Окружение и настройки:

akhaman commented 1 year ago

Добрый день! TdsSdkIos появился в SDK по требованию национальной платежной системы. Эта библиотека, разработанная подрядчиком, необходима для выполнения некоторых видов платежей с 3DS без использования WebView

На данный момент тяжко представить, как можно помочь вам решить проблему. Хочу уточнить: действительно ли SDK эквайринга нужен в AppClips ?

akhaman commented 1 year ago

И если не секрет, о каком приложении идет речь?

alkozin commented 1 year ago

Добрый день! TdsSdkIos появился в SDK по требованию национальной платежной системы. Эта библиотека, разработанная подрядчиком, необходима для выполнения некоторых видов платежей с 3DS без использования WebView

На данный момент тяжко представить, как можно помочь вам решить проблему. Хочу уточнить: действительно ли SDK эквайринга нужен в AppClips ?

Добрый день! Мы принимаем оплату за бензин в приложении: NFC метка и App Clip Code наклеены на пистолет АЗС.

https://user-images.githubusercontent.com/2376017/224920481-52b87887-9062-489c-8e51-23eb03ae489f.MOV

alkozin commented 1 year ago

И если не секрет, о каком приложении идет речь?

https://azsenergia.ru/ Открывайте в Safari, появится карточка App Clip

alkozin commented 1 year ago

Можем как-то повлиять на размер TdsSdkIos?

akhaman commented 1 year ago

Пока исследуем возможные варианты решения вашей проблемы. Есть вероятность, что будет возможность сжать эту библиотеку, поставляемую подрядчиком. Также одним из возможных вариантов решения, способных благоприятно сказаться на итоговый размер поставляемых библиотек, будет переход на статическую линовку прямых и транзитивных зависимостей.

Конкретные сроки обозначить пока тяжело. Тред оставим открытым, в случае каких-то обновлений оповестим в том числе и здесь

alkozin commented 1 year ago

Спасибо, продолжаем пользоваться эквайрингом.

ivanglushko commented 1 year ago

Спасибо, продолжаем пользоваться эквайрингом.

Привет! Из новостей, в тестовом режиме сделал ветку со статическими зависимостями, там теперь все поставляется статикой.

Основана на версии 2.19.0 https://github.com/tinkoff-mobile-tech/AcquiringSdk_IOS/tree/tech/static_linking

pod 'TinkoffASDKCore', branch: 'tech/static_linking'
pod 'TinkoffASDKUI', branch: 'tech/static_linking'
pod 'TinkoffASDKYandexPay', branch: 'tech/static_linking'

В дальнейшем АСДК переедет на статику, но попробуйте уже сейчас проверить основываясь на этой ветке, возможно это решит проблему с весом.

Насколько я понимаю, если вы задействуете не весь функционал, то в процессе линкинга будет произведен стрип - неиспользуемый код просто не будет поставляться в .app.

Screenshot 2023-05-17 at 13 08 04
ivanglushko commented 1 year ago

@alkozin не смотрели еще?)

alkozin commented 1 year ago

@alkozin не смотрели еще?)

Спасибо, увидел. На следующей неделе попробуем и отпишусь 👍🏼

ivanglushko commented 1 year ago

@alkozin есть новости? :)

ivanglushko commented 1 year ago

Закрываю тред из-за неактивности. Если еще есть вопросы пишите тут, переоткроем. В дальнейшем асдк переедет на статическую линковку.