ОБЩЕДОСТУПНЫЕ МАТЕРИАЛЫ ДЛЯ APP REVIEW — РУССКИЙ ПЕРЕВОД Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Семь приложений, а не пять По сообщению разработчика, форма апелляции позволяет добавить не более пяти записей о приложениях. Это ограничение интерфейса не должно сужать рамки апелляции по всей учётной записи. Ниже представлены семь подтверждённых приложений; версии для iOS и Mac могут указываться в форме отдельно. Два сохранённых снимка экрана показывают отдельные поля приложений и ограничение количества символов, но не ограничение в пять записей. Поэтому последнее не представляется здесь как независимо подтверждённое общее правило Apple. Дополнение к апелляции по учётной записи Мы просим пересмотреть предстоящее прекращение участия в программе разработчиков и предоставить возможность повторной проверки исправленных версий. Мы признаём конкретные проблемы и пробелы в раскрытии информации, описанные ниже для каждого приложения. Просим App Review рассмотреть всю учётную запись, а не только записи, доступные для выбора в форме, и указать другие приложения, платформы, сборки, функции, источники контента или переписку, на которых основано решение. Если действия, связанные с другим приложением, также повлияли на решение, просим уточнить их, чтобы мы могли ответить по существу. Это дополнение к апелляции, о постановке которой в очередь уже сообщили, а не утверждение об одобрении или просьба обойти проверку. Указанные статусы являются историческими, а не текущими: разработчик предоставил уведомление от 2 сентября и последующую переписку с подтверждением постановки апелляции в очередь. Восстановление участия в программе, одобрение приложений или приостановка процедуры прекращения участия не подтверждены. Обновление сайта не меняет установленные бинарные файлы или метаданные App Store. В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Уточнение статусов · 13 сентября 2026 г. До уведомления о предстоящем прекращении участия от 2 сентября EasyTallys имело статус In Review — «На рассмотрении». Остальные шесть приложений — VPN XX, VPN XX PRO, SpellVPN Tool, SpellVPN Ultra, ArtCut и ArtCut Pro — отображались как Distributable, то есть готовые к распространению. Теперь разработчик сообщает, что все семь приложений удалены из общедоступного App Store, но записи об их статусах по-прежнему видны в App Store Connect. Удаление из магазина не означает исчезновения записей приложений или статусов платформ и версий. Видимый статус не подтверждает восстановление распространения или участия в программе. Это уточнение предоставлено разработчиком 13 сентября. Оно не является независимой проверкой App Store Connect в реальном времени, квитанцией Apple или изменением сохранённых свидетельств исходного кода от 12 сентября. EasyTallys Идентификатор App Store: 6795085919 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Исправленная версия для iOS: 1.0.2, сборка 1.0.1. Выпуски для других платформ следует оценивать по соответствующим отправленным сборкам. История выпусков и заявление разработчика В более раннем production-target сохранился внутренний сценарий подготовки снимков и тестирования, который мог добавлять демонстрационные записи, принудительно использовать локальное хранилище, обходить блокировки или имитировать состояние iCloud и App Group. Мы признаём, что это было недопустимо. В прежних ответах разработчика описаны удаление этого сценария и отправка исправленной версии для iOS до уведомления от 2 сентября. По подтверждению разработчика от 4 сентября, исправленная версия имела статус «На рассмотрении», хотя приложение было удалено из магазина. Что подтверждают изученные материалы В выдержках из кода оставшиеся переопределения языка и начального экрана через параметры запуска находятся внутри условий DEBUG, а проверенные обращения к хранилищу и состоянию учётной записи используют системные API Apple. Локальный ответ — документ разработчика, а не одобрение Apple или квитанция о загрузке. Одни эти выдержки не удостоверяют содержимое исторически загруженного бинарного файла. Дальнейшие меры — выполнение ещё не подтверждено Просим Apple оценить исправленную отправку и, если проблема сохраняется, указать точную сборку, условия проверки и наблюдаемое поведение. Перед дальнейшими выпусками мы сопоставим отправляемый архив, production-entitlements, метаданные и поведение на реальном устройстве. Мы не утверждаем, что ожидающее проверки исправление уже одобрено. Подтверждающие материалы: e01, e02, e03, e04 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ VPN XX Идентификатор App Store: 6787351160 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Подтверждённый разработчиком выпущенный вариант для iOS: 1.0.8. Менеджер конфигураций с рекламой. История выпусков и заявление разработчика Разработчик подтверждает, что выпущенная версия VPN XX для iOS 1.0.8 принимала конфигурации и URL пользователя и не содержала предустановленных общедоступных источников подписок. Приложение управляет записями узлов и не создаёт системный VPN-туннель. Несмотря на отображение статуса готовности к распространению в App Store Connect, разработчик сообщил о недоступности приложения в магазине и о том же уведомлении по учётной записи в сообщениях App Review этого приложения. Что подтверждают изученные материалы В текущем общем дереве разработки действительно есть экспериментальный каталог общедоступных источников. Он раскрывается здесь и не используется как доказательство содержимого более ранней загрузки. Точный исторический архив VPN XX 1.0.8 и квитанция о загрузке не были доступны при этой проверке, поэтому отсутствие предустановленных источников обозначено как подтверждение истории выпуска самим разработчиком. Наличие источников в выпущенных версиях PRO описано отдельно. Дальнейшие меры — выполнение ещё не подтверждено Перед любой новой отправкой бесплатной версии мы исключим предустановленные источники и проверим точный архив. Предыдущие обращения о материковом Китае касались уточнения доступности в магазине. Нет доказательств, что именно они вызвали действия в отношении учётной записи; данная апелляция не является запросом на распространение в материковом Китае. Просим Apple указать конкретную сборку VPN XX или переписку, учтённую при принятии решения. Подтверждающие материалы: e05, e09, e10 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ VPN XX PRO Идентификатор App Store: 6788285855 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. iOS 1.0.7 и Mac 1.0.1. Обе версии PRO были выпущены, а не оставались только локальными экспериментами. История выпусков и заявление разработчика Обе выпущенные версии содержали видимую функцию Network Source для импорта записей узлов из предустановленных сторонних общедоступных подписок. Описания App Store не были обновлены для раскрытия этой функции. Мы признаём несоответствие описания функциональности и недостаточный контроль меняющегося стороннего контента. Это следует отличать от подтверждения истории выпуска бесплатного VPN XX. Что подтверждают изученные материалы Выдержка из текущего каталога подтверждает наличие фиксированных записей общедоступных источников. Значения URL явно скрыты; действующие маршруты и учётные данные в этой подборке не распространяются. Выдержка из локального описания для Mac показывает формулировку «только данные пользователя», которую требовалось исправить. Это черновик, а не экспорт точного исторического описания App Store; сведения о выпущенных версиях отдельно подтверждены разработчиком. Дальнейшие меры — выполнение ещё не подтверждено Перед отправкой заменяющих версий мы удалим предустановленные общедоступные источники и ссылки на каталог, сохраним импорт данных пользователя, назначим новые номера версии и сборки, сохраним архив и согласуем описания, снимки экрана, сведения о конфиденциальности, эндпоинты и Review Notes. Обновление сайта не удаляет эту функцию из уже установленных iOS 1.0.7 или Mac 1.0.1. Мы просим о новой проверке, а не об автоматическом восстановлении этих бинарных файлов. Подтверждающие материалы: e05, e06, e09, e10 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ SpellVPN Tool Идентификатор App Store: 6788655739 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Платный клиент конфигураций без рекламы для iOS и Mac, отдельный от SpellVPN Ultra. История выпусков и заявление разработчика Tool не предоставляет серверные узлы или подписку на сервис узлов. Пользователь импортирует конфигурации либо URL подписок, которыми управляет или которые имеет право использовать. По импортированным настройкам приложение может установить реальное VPN-соединение, поэтому его нельзя описывать как исключительно офлайн-просмотрщик. Предоставление источников по подписке в Ultra не является функцией Tool. Что подтверждают изученные материалы Проверенная ветвь компиляции без ULTRA задаёт платное распространение, отсутствие рекламы, пустые поля продуктов подписки и пустые эндпоинты поставщика. Это подтверждает различие проверенных конфигураций, но не удостоверяет независимо все выпущенные бинарные файлы и не исключает возможных вопросов о сходстве приложений. Дальнейшие меры — выполнение ещё не подтверждено Мы проверим точный архив Tool и опишем всё сетевое поведение при работе с импортированными конфигурациями. Если Apple сочтёт общую технологию и отдельные карточки недостаточно различающимися, мы последуем указанному App Review подходу к объединению или отзыву. Tool явно остаётся в рамках апелляции по всей учётной записи. Подтверждающие материалы: e07 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ SpellVPN Ultra Идентификатор App Store: 6790699220 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Версия для iOS с рекламой и необязательными автоматически возобновляемыми подписками StoreKit. История выпусков и заявление разработчика Действующая подписка Ultra отключает рекламу и предоставляет Curated Sources — подобранные источники — и Exclusive Lines — эксклюзивные линии. Импорт данных пользователя остаётся отдельным сценарием. Ранее описания делали акцент на пользовательском импорте и отключении рекламы, не объясняя последовательно предоставляемые сервисом источники и линии. Мы признаём этот существенный пробел в раскрытии информации; его нельзя приписывать Tool или исключать из апелляции. Что подтверждают изученные материалы Проверенная конфигурация Ultra содержит два эндпоинта сервиса, а путь импорта списка источников проверяет право доступа по подписке. Сохранённая выдержка из локального описания иллюстрирует неполную формулировку. Это снимки кода и документов, а не тесты доступности сервиса, подтверждения прав на контент или копия проверенного Apple бинарного файла. Дальнейшие меры — выполнение ещё не подтверждено Мы явно раскроем каждое преимущество подписки и production-эндпоинт, при необходимости предоставим полный путь проверки и тестовое право доступа, проверим разрешение на распространение контента и удалим источники, чьи права и пригодность невозможно подтвердить. Сервис, предоставляющий узлы, будет описан как реальная функция, а не сведён к импорту данных самим пользователем. Подтверждающие материалы: e08 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ ArtCut Идентификатор App Store: 6788636979 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Бесплатный видеоредактор с рекламой; отдельное приложение от ArtCut Pro. История выпусков и заявление разработчика ArtCut и Pro используют общую основную технологию видеомонтажа. Бесплатная версия содержит рекламу. В локальных заменяющих сборках доработаны порядок запросов разрешений и согласия, а также надёжность запуска и экспорта; загрузка и выпуск этих исправлений не подтверждены. Приложение явно включено в апелляцию, даже если его нельзя было выбрать среди пяти записей формы. Что подтверждают изученные материалы Выдержка AppVariant выбирает бесплатную версию и рекламу во время компиляции через ARTCUT_FREE. Выдержка менеджера разрешения на отслеживание показывает проверенный путь запроса. Ни одна из них не доказывает загрузку или одобрение конкретной заменяющей сборки. Дальнейшие меры — выполнение ещё не подтверждено Мы проверим точный архив бесплатной версии, порядок получения согласия, раскрытие рекламы и обычную работу монтажа и экспорта. Если Apple потребует единое приложение, мы готовы объединить версии. Просим указать, повлияли ли конкретные действия ArtCut на решение по учётной записи, а не предполагать, что проблема касается только VPN-приложений. Подтверждающие материалы: e11 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ ArtCut Pro Идентификатор App Store: 6790354436 Снимок материалов от 12 сентября 2026 г. Русский перевод добавлен 13 сентября 2026 г. Это не источник текущих статусов App Review. Платный видеоредактор без рекламы с отдельным App Store ID и ветвью конфигурации распространения на этапе компиляции. История выпусков и заявление разработчика Pro использует общие с ArtCut функции монтажа, но является платной версией без рекламы. Само это различие не снимает возможных вопросов о дублирующих приложениях. ArtCut Pro явно включён в апелляцию по членству независимо от того, удалось ли добавить его в пять выбранных записей формы. Что подтверждают изученные материалы В проверенной ветви без ARTCUT_FREE установлено платное распространение и displaysAds = false. Это подтверждает различие на уровне кода, а не состав связанных фреймворков во всех исторических архивах. Мы не заявляем о неподтверждённом выпуске или уже выполненном объединении приложений. Дальнейшие меры — выполнение ещё не подтверждено Мы проверим точный архив платной версии и метаданные и выполним требования по объединению или отзыву. Просим Apple указать сборку, поведение или описание ArtCut Pro, которые учитывались в решении по участию в программе, чтобы мы могли ответить по существу. Подтверждающие материалы: e11 В подборку входят подтверждённая разработчиком история выпусков, выдержки из текущего локального кода, локальные черновики метаданных и два исходных снимка формы, предоставленных разработчиком. Это разные виды свидетельств. Здесь нет точных архивов исторических загрузок, квитанций Apple об их получении, документов о разрешении на распространение контента сервиса или новых одобрений App Store. SHA-256 идентифицирует сохранённые байты, но не доказывает, что Apple получила или проверила их. Выбранные выдержки не являются исчерпывающим аудитом исходного кода или бинарных файлов. Это общедоступные материалы с одинаковым содержимым для всех читателей. Личные идентификаторы учётной записи, частная переписка, учётные данные узлов и действующие URL общедоступных подписок не публикуются. Защиты паролем нет. При необходимости оригиналы могут быть переданы Apple отдельно по подходящему непубличному каналу. Указание noindex — пожелание для поисковых систем, а не ограничение доступа. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. ================================================================ E01 — EasyTallys: прежний ответ разработчика и запись об отправке Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Документ разработчика Это сохранённые локальные заявления разработчика. Утверждения этого документа об отправленном Release-бинарном файле или метаданных App Store не сопоставлены независимо с загруженным архивом или квитанцией Apple. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: AppleLedger Файл: AppStoreAssets/submission/GUIDELINE_5_6_RESPONSE_EN.md Выбранные строки: 1–17 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 04dfa389f217c2659f02d6cf1af820d647e7fb1c4a7a0ef228bb83cfd1126120 SHA-256 выдержки с номерами строк: b16507111ff0949a1c6012b2071b718c574ecc1bab03f7d6c62fab5dada50c57 1 | # Guideline 5.6 Resolution Center Response 2 | 3 | Thank you for identifying this issue. We reviewed the rejected build and found that the production app target incorrectly retained an internal screenshot workflow. That workflow included launch arguments and environment variables that could inject sample records, force a local data store, bypass the privacy lock, and simulate iCloud or App Group availability. We understand that retaining this behavior in a production build was inappropriate and could appear intentionally hidden. 4 | 5 | The new build removes that workflow completely: 6 | 7 | - All screenshot-only data creation, deletion, and injection code has been removed. 8 | - All forced-local-store launch arguments and environment variables have been removed. 9 | - All privacy-lock and automatic-lock bypasses have been removed. 10 | - All simulated iCloud and App Group status results have been removed. 11 | - All language- or region-based app-icon switching, the English alternate icon, and the related system-switch prompt have been removed. Every user now receives the same primary "好记" icon. 12 | - Ledger, account, transaction, collaborator, and cold-wallet screens now display only data actually created and stored by the user. 13 | - The submitted Release binary contains no screenshot route, language override, demo-data, forced-local-store parameter, or alternate app icon. 14 | 15 | The app does not hide or reveal features based on reviewer identity, date, region, device, build source, or server configuration. App Review and all users now execute the same Release code path. All features are accessible through the normal user interface, and the App Store description and screenshots explicitly disclose shared ledgers and the on-device cold wallet vault. 16 | 17 | No backend account is required. iCloud and shared-ledger features can be tested on a device signed in to an Apple ID. Проект: AppleLedger Файл: README.md Выбранные строки: 143–164 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: b6e872e127759a760d75f34c142123d3215189c9f8418d289fffb924189c9318 SHA-256 выдержки с номерами строк: d5e772387b59a78bad0f0fe71ccc3123f1e631c7495cd5666b731b6e6cfb4f6b 143 | Hello App Review Team, 144 | Thank you for reviewing our app. 145 | As explained in our response dated August 11, we investigated the previous rejection and identified an internal screenshot-production workflow that had been mistakenly retained in the production target. We understand why the presence of that workflow could have appeared to be hidden behavior. 146 | We have now submitted a corrected iOS binary: 147 | Version 1.0.2 (Build 1.0.1) 148 | This build supersedes the previously rejected binary and includes the following remediation: 149 | - All screenshot-only sample-data creation, deletion, and injection code has been removed. 150 | - The Release binary contains no screenshot route, demo-data parameter, forced-local-store parameter, language override, privacy-lock bypass, or automatic-lock bypass. 151 | - All simulated iCloud and App Group results have been removed. The app now displays only the actual status reported by Apple system services. 152 | - No alternate app-icon switching is available in the Release build. Every user receives the same primary “好记” icon. 153 | - Ledger, account, transaction, collaborator, and cold-wallet screens display only information created and stored by the user. 154 | - The app does not change, hide, or reveal functionality based on reviewer identity, date, region, device, build source, network response, or server configuration. 155 | - App Review and all users execute the same Release code path. 156 | EasyTallys (“好记”) is a local-first personal and family bookkeeping app. It has no developer-hosted account or backend, no advertising, no third-party analytics, no remote feature configuration, no in-app purchases or paywall, and does not download executable code or configuration that changes its functionality. 157 | Ledger data is stored on the user’s device. If the user enables iCloud, ledger data is synchronized only through Apple CloudKit under the user’s own Apple ID. No developer-provided login credentials are required. 158 | All features are accessible through the normal user interface: 159 | - Bookkeeping features are available from Overview, Transactions, Accounts, Budgets, Reports, and Library. 160 | - CloudKit shared-ledger features are available under Library > Sharing. Testing requires a device signed in to an Apple ID. 161 | - The on-device Keychain vault is available under Library > Cold Wallets. It only stores information manually entered by the user in the current device’s ThisDeviceOnly Keychain. It does not create cryptocurrency wallets, connect to blockchain services, perform transfers or trading, or upload vault information to any server. 162 | These features are also disclosed in the App Store description, screenshots, and Notes for Review. 163 | We respectfully request that App Review evaluate Version 1.0.2 (Build 1.0.1). 164 | If App Review still observes behavior associated with Guideline 5.6 in this corrected build, could you please identify the specific feature, navigation path, review steps, device conditions, or provide a screenshot of the observed behavior? This information would allow us to reproduce and address the concern immediately. ================================================================ E02 — EasyTallys: переопределение языка при запуске Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержка из текущего исходного кода Выбранная логика переопределения находится внутри условия DEBUG. Это не полный аудит Release-бинарного файла. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: AppleLedger Файл: AppleLedgerShared/Services/AppLanguage.swift Выбранные строки: 127–141 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: e55240c882da8632bce65b040fab307aa4e07fba12294ed488447ad1b0caa370 SHA-256 выдержки с номерами строк: 0c4537f83e79b2f38e9f5e966bdbe2746f9a5df5a876b79306cc19d123f70ad3 127 | static var selected: AppLanguage { 128 | #if DEBUG 129 | let processInfo = ProcessInfo.processInfo 130 | if let value = processInfo.environment[environmentKey], let language = AppLanguage(value) { 131 | return language 132 | } 133 | if let index = processInfo.arguments.firstIndex(of: launchArgument), 134 | processInfo.arguments.indices.contains(index + 1), 135 | let language = AppLanguage(processInfo.arguments[index + 1]) { 136 | return language 137 | } 138 | #endif 139 | let rawValue = AppSettingsStore.defaults.string(forKey: storageKey) ?? AppLanguage.system.rawValue 140 | return AppLanguage(rawValue: rawValue) ?? .system 141 | } ================================================================ E03 — EasyTallys: параметр начального экрана Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержка из текущего исходного кода Выбранное переопределение начального экрана доступно только при DEBUG; далее используется обычный главный экран по умолчанию. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: AppleLedger Файл: AppleLedgerShared/Views/RootView.swift Выбранные строки: 115–129 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: f0bb697266d3b82c98dfb214e0a91e071bbbdfe8bd83e1f908864c21dca2a9b6 SHA-256 выдержки с номерами строк: b95510fab3811e7afca1a0c19bbfc8fbb7166d64eb07108fddb8721ee810c934 115 | private struct AppInitialRoute { 116 | var section: AppSection 117 | var libraryTab: LibraryTab 118 | var quickEntryKind: TransactionKind? 119 | 120 | static var current: AppInitialRoute { 121 | #if DEBUG 122 | let arguments = ProcessInfo.processInfo.arguments 123 | if let routeArgumentIndex = arguments.firstIndex(of: "-AppleLedgerInitialRoute"), 124 | arguments.indices.contains(routeArgumentIndex + 1) { 125 | return AppInitialRoute(rawValue: arguments[routeArgumentIndex + 1]) 126 | } 127 | #endif 128 | return AppInitialRoute(section: .dashboard, libraryTab: .ledgers, quickEntryKind: nil) 129 | } ================================================================ E04 — EasyTallys: проверки хранилища и учётной записи Apple Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержка из текущего исходного кода Эти пути используют FileManager и CKContainer. Они не доказывают наличие production-entitlements, успешную синхронизацию или содержимое исторических бинарных файлов. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: AppleLedger Файл: AppleLedgerShared/Services/AppModelContainer.swift Выбранные строки: 341–345 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 5446c56d0591b286adb91933164f3d57ba18ebaf3eca6c6e0d127c4cdec81f26 SHA-256 выдержки с номерами строк: c15b66dab90d09d02b80d9bd3205fe99abfd6dc139804dad96cfe5d1df194225 341 | private static var appGroupStoreDirectory: URL? { 342 | FileManager.default 343 | .containerURL(forSecurityApplicationGroupIdentifier: appGroupIdentifier)? 344 | .appending(path: "AppleLedger", directoryHint: .isDirectory) 345 | } Проект: AppleLedger Файл: AppleLedgerShared/Services/ImportExportService.swift Выбранные строки: 436–441 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: dcadccf109343eb36c509f40027ba929a99b8c54cb2329ce6c65b013d8c65eb5 SHA-256 выдержки с номерами строк: 6ab26ec700b69059464470a8d49d50be5a8d94545d4d8075bf74cfac87d88fa2 436 | static func saveLatestBackup(_ archiveData: Data, createdAt: Date = .now) async throws -> ManualICloudBackupMetadata { 437 | #if canImport(CloudKit) 438 | let container = CKContainer(identifier: AppModelContainer.cloudKitContainerIdentifier) 439 | guard try await container.accountStatus() == .available else { 440 | throw ManualICloudBackupError.accountUnavailable 441 | } ================================================================ E05 — Общий код VPN XX: предустановленный каталог со скрытыми URL Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержка из текущего кода со скрытыми URL Ровно три значения URL заменены на [REDACTED PUBLIC SUBSCRIPTION URL] — «URL общедоступной подписки скрыт». Остальные выбранные строки сохранены. Этот каталог также есть в текущем общем дереве разработки бесплатной версии и не доказывает содержимое исторического бесплатного бинарного файла iOS 1.0.8. Сведения о выпусках PRO подтверждены разработчиком отдельно. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: VPNAccountManager Файл: VPNAccountManager/OnlineRouteCatalog.swift Выбранные строки: 13–30 Значения URL подписок скрыты; остальные выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 93b2c58cd20f34c7fabbe7fda670d7d28b7c98b3a5c3dedb0aa0d586fec7d743 SHA-256 выдержки с номерами строк: 74ed4036239b5728ff27d337c57d6f4a8259a773abe0f2c2e14794e2f199a15a 13 | enum OnlineRouteCatalog { 14 | static let sources = [ 15 | OnlineRouteSource( 16 | id: "public-source-1", 17 | displayNameKey: "网络来源 1", 18 | urlString: "[REDACTED PUBLIC SUBSCRIPTION URL]" 19 | ), 20 | OnlineRouteSource( 21 | id: "public-source-2", 22 | displayNameKey: "网络来源 2", 23 | urlString: "[REDACTED PUBLIC SUBSCRIPTION URL]" 24 | ), 25 | OnlineRouteSource( 26 | id: "public-source-3", 27 | displayNameKey: "网络来源 3", 28 | urlString: "[REDACTED PUBLIC SUBSCRIPTION URL]" 29 | ) 30 | ] ================================================================ E06 — VPN XX PRO: прежний локальный текст описания для Mac Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Локальный черновик метаданных Этот локальный черновик иллюстрирует формулировку об использовании только данных пользователя, которую требовалось исправить. Это не экспорт исторического описания App Store. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: VPNAccountManager Файл: MacAppStore/en-US.md Выбранные строки: 15–31 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 40468f539a782934115155446ef686a2bf8355e3d11bb5b817ca9cb18f3eecdf SHA-256 выдержки с номерами строк: 9da264c90414ba7b4ad309c144e4341f90465a38d90e216943c73f27698b2a92 15 | ## Description 16 | 17 | VPN XX PRO is a node and subscription manager for people who already have their own subscription links and configuration data. 18 | 19 | Key features: 20 | 21 | • Subscription management: Add, refresh, group, and organize multiple subscription links. 22 | • Multi-protocol parsing: VLESS, VMess, Trojan, Shadowsocks, ShadowsocksR, SOCKS5, HTTP, WireGuard, Hysteria, Hysteria2, TUIC, Clash/Mihomo YAML, and sing-box JSON. 23 | • Organized node list: View nodes by subscription group, with search, filtering, and expand/collapse controls. 24 | • Latency testing: Measure reachability and connection latency through real TCP connections. Results are not simulated. 25 | • QR import: Import subscription links or node configurations from QR codes. 26 | • Flexible sharing: Copy links, use the system share sheet, or create QR codes in VLESS, Clash, URI, and other supported formats. 27 | • iCloud sync: Keep your subscriptions and nodes synchronized across your own Apple devices. 28 | • Data management: Clear local data, clear iCloud data, or restore data from iCloud. 29 | • Personalization: Choose from multiple skins and switch the app language. 30 | 31 | VPN XX PRO only manages and parses configuration data supplied by the user. It does not provide VPN servers, create VPN tunnels, or sell network access. Node availability, speed, and content depend on the subscription service provided by the user. ================================================================ E07 — SpellVPN Tool: различие конфигураций на этапе компиляции Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержка из текущего исходного кода Первая выдержка показывает условие ULTRA; вторая — соответствующую ветвь без ULTRA. Пропущенные настройки ULTRA не представлены как настройки Tool. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: SuperVPN-iOS Файл: SuperVPNApp/SuperVPNApp.swift Выбранные строки: 782–783 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 137df2925bcb6597bda2605b19f9109727ec3015eaf1aa80f93928c5f7a3ec0e SHA-256 выдержки с номерами строк: 703c631f39a49caf1efe0cace10e30c7a81314068ad0c666fe9607f221777121 782 | static var current: AppProductConfiguration { 783 | #if SPELLVPN_ULTRA Проект: SuperVPN-iOS Файл: SuperVPNApp/SuperVPNApp.swift Выбранные строки: 808–833 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 137df2925bcb6597bda2605b19f9109727ec3015eaf1aa80f93928c5f7a3ec0e SHA-256 выдержки с номерами строк: 03236ad8fcfb5312901ea972ed0f440b0eb0c21dfc5739f8ec1df3aac8435abe 808 | #else 809 | return AppProductConfiguration( 810 | edition: .pro, 811 | distributionModel: "paid", 812 | adMode: "none", 813 | subscriptionProductID: "", 814 | weeklySubscriptionProductID: "", 815 | monthlySubscriptionProductID: "", 816 | quarterlySubscriptionProductID: "", 817 | yearlySubscriptionProductID: "", 818 | superWeeklySubscriptionProductID: "", 819 | superMonthlySubscriptionProductID: "", 820 | superQuarterlySubscriptionProductID: "", 821 | superYearlySubscriptionProductID: "", 822 | providerLinesEndpoint: "", 823 | providerSourceListEndpoint: "", 824 | appGroupIdentifier: plistString("SpellVPNAppGroupIdentifier", defaultValue: SuperVPNShared.appGroupIdentifier), 825 | admobApplicationID: "", 826 | yandexBannerAdUnitID: "", 827 | yandexInterstitialAdUnitID: "", 828 | yandexAppOpenAdUnitID: "", 829 | yandexNativeAdUnitID: "", 830 | adsShowPlaceholders: false 831 | ) 832 | #endif 833 | } ================================================================ E08 — SpellVPN Ultra: эндпоинты, проверка подписки и прежнее описание Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержки из текущего кода и локальных метаданных Эндпоинты служат свидетельством конфигурации, а не доступности сервиса или прав на распространение. Выдержка метаданных — локальный черновик, а не исторический экспорт App Store. Описание подписки должно раскрывать предоставляемые источники наряду с отключением рекламы. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: SuperVPN-iOS Файл: Configurations/SpellVPN-Ultra.xcconfig Выбранные строки: 35–36 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 4b55f5e8c1879ed1e70dfba420f8d6a8e2300c35e265d0387f0b13071f6bf0f3 SHA-256 выдержки с номерами строк: 4aedc8407913ba78a6ec959ac5f2ddaad58da66fd71d3f7a507ef095bf1a4c08 35 | SPELLVPN_PROVIDER_LINES_ENDPOINT = https:/$()/apixx.spellv.com/api/spellv 36 | SPELLVPN_PROVIDER_SOURCE_LIST_ENDPOINT = https:/$()/apixx.spellv.com/api/spellvNodeFlist Проект: SuperVPN-iOS Файл: SuperVPNApp/SuperVPNApp.swift Выбранные строки: 3300–3311 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 137df2925bcb6597bda2605b19f9109727ec3015eaf1aa80f93928c5f7a3ec0e SHA-256 выдержки с номерами строк: 06b433859ce49ed613dbfa90d11b39879639f4d1673c819d8eb0ebd6a476ab92 3300 | repairInvalidUltraProviderEndpointOverridesIfNeeded(context: "Curated Sources import") 3301 | let product = ultraProviderImportConfiguration 3302 | guard let sourceListURL = product.providerSourceListEndpointURL else { 3303 | finishUltraProviderImport(success: false) 3304 | storeKitStatusMessage = localizedUIString("No provider source-list backend is configured.") 3305 | logs.insert(LogEntry(level: .error, category: .connection, message: "Ultra import endpoints unavailable: \(ultraProviderImportDiagnosticSummary(using: product))"), at: 0) 3306 | return 3307 | } 3308 | guard hasMemberAccess else { 3309 | finishUltraProviderImport(success: false) 3310 | storeKitStatusMessage = localizedUIString("Ultra subscription is required for this action.") 3311 | return Проект: SuperVPN-iOS Файл: AppStoreReadyPackage/02_AppStore_Metadata/ULTRA_APP_STORE_INTRO.zh-Hans_en-US.md Выбранные строки: 59–85 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 910b646f2dbd80819e5aa862935c9a4fb1962c1b09d55dd57fc1ac73d99a90e2 SHA-256 выдержки с номерами строк: e1dc212dfac353e70f562934186ddc31bbf39d26d9cda494a8a9a63155da5b2a 59 | 60 | Import your subscription URL, proxy link, QR code, or config file, then start an iOS Packet Tunnel in one tap. Ultra is free with ads, and subscriptions remove ads. 61 | 62 | ### Short Description 63 | 64 | SpellVPN Ultra is a VPN configuration client for iPhone and iPad. It helps you import and manage configurations you are allowed to use, including sing-box, Clash/Mihomo, Shadowsocks, VLESS, Trojan, and other common proxy formats. You can import by URL, QR code, clipboard, file, or iCloud Drive, organize nodes, and start a real iOS Packet Tunnel through Apple Network Extension. 65 | 66 | SpellVPN Ultra is free to download and may show ads while no subscription is active. Weekly, monthly, quarterly, and yearly auto-renewable subscriptions remove ads and keep Ultra benefits active. Purchases and restores are handled by Apple ID and the App Store. 67 | 68 | ### Long Description 69 | 70 | SpellVPN Ultra helps you manage your own VPN configurations, subscriptions, and proxy nodes in one place. It is designed for users who already have lawful access to VPN or proxy configurations and need a clean way to import, organize, test, and connect them on iOS. 71 | 72 | Key features: 73 | 74 | - Import subscription URLs, proxy links, QR codes, clipboard text, and local config files 75 | - Support sing-box JSON, Clash/Mihomo YAML, Base64 subscriptions, and common proxy links 76 | - Organize node groups, search nodes, switch nodes, and run basic reachability checks 77 | - Start or stop an iOS Packet Tunnel with one tap 78 | - View connection status, logs, traffic stats, and basic network information 79 | - Use DNS lookup, HTTP test, TLS test, IP lookup, and other network tools 80 | - Back up and restore app data through iCloud Drive 81 | - Remove ads and keep Ultra benefits active with an Ultra subscription 82 | 83 | Important note: 84 | 85 | SpellVPN Ultra does not provide public built-in VPN server accounts. Users need to import configurations, subscriptions, or nodes they are allowed to use. VPN connectivity and performance depend on the imported configuration, remote server, and current network conditions. ================================================================ E09 — Форма апелляции: запись VPN XX Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Исходный снимок экрана, предоставленный разработчиком Разработчик предоставил снимок экрана от 4 сентября 2026 г. Он показывает выбранную причину по лицензионному соглашению и тему Pending Account Termination — предстоящее прекращение участия. Это не квитанция об отправке и не подтверждение ограничения в пять записей. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Исходное изображение: evidence/e09-original.png Исходное имя файла: 截屏2026-09-04 17.56.06.png SHA-256: ec625236af6eafbf2251951167d809ae84e1ba14c60fafa57c534367ddab4357 Байты: 169870 Изображение не редактировалось и не перекодировалось. ================================================================ E10 — Форма апелляции: VPN XX PRO и ограничение символов Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Исходный снимок экрана, предоставленный разработчиком Разработчик предоставил снимок экрана от 4 сентября 2026 г. На нём видны указание о пределе в 2 000 символов и отдельный раздел PRO. Он не устанавливает ограничение в пять записей и не доказывает отправку апелляции. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Исходное изображение: evidence/e10-original.png Исходное имя файла: 截屏2026-09-04 17.56.18.png SHA-256: e971506bb5b6093464446abe722e1cec02643ae6df6a2bd020435e4c8315e4b2 Байты: 170573 Изображение не редактировалось и не перекодировалось. ================================================================ E11 — ArtCut / Pro: версии и запрос разрешения на отслеживание Дата русского перевода: 13 сентября 2026 г. Время сохранения оригинала (UTC): 2026-09-12T15:40:59.124Z Тип материала: Выдержка из текущего исходного кода Показаны различия на этапе компиляции и один путь запроса разрешения. Они не доказывают состав связанных фреймворков в исторических архивах, успешное получение согласия на устройствах или загрузку локальных исправлений. Переведены пояснения и сведения о происхождении материалов. Код и снимки экрана оставлены на языке оригинала; русские тексты не заменяют исходные свидетельства и не означают нового одобрения Apple. Проект: VideoEditorPro Файл: VideoEditorPro/App/AppVariant.swift Выбранные строки: 1–22 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 72e091896724be8dca7c2981a23f593c8b3e9a98dd3d4b1f361835180455cf76 SHA-256 выдержки с номерами строк: 5e59357e3959e55b04ba12ef0a8e229041ee6b9841f6a51ece760ba0c365eb38 1 | import Foundation 2 | 3 | enum AppDistribution { 4 | case paid 5 | case freeWithAds 6 | } 7 | 8 | enum AppVariant { 9 | /// The App Store listing for the paid build. Keep this as a universal 10 | /// App Store URL so the storefront can localize the product name. 11 | static let proAppStoreURL = URL(string: "https://apps.apple.com/app/id6790354436")! 12 | 13 | #if ARTCUT_FREE 14 | static let distribution: AppDistribution = .freeWithAds 15 | static let displaysAds = true 16 | static let displayName = "ArtCut" 17 | #else 18 | static let distribution: AppDistribution = .paid 19 | static let displaysAds = false 20 | static let displayName = "ArtCutPro" 21 | #endif 22 | } Проект: VideoEditorPro Файл: VideoEditorPro/Services/TrackingAuthorizationManager.swift Выбранные строки: 34–52 Выдержка с исходными номерами строк; выбранные строки сохранены без изменений. SHA-256 полного исходного файла: 06092d42bedd141bd32f96880f2e5acfd368d4e48a79d5b9d6f5039a3a52d982 SHA-256 выдержки с номерами строк: 9fa52ec7f8eb9066e92101a158c010f6c7b0d9d587246f96b2d30d8728141f8b 34 | func requestIfNeededBeforeAdRequests() async -> TrackingAuthorizationState { 35 | guard AppVariant.displaysAds else { return .notRequired } 36 | 37 | #if ARTCUT_FREE && canImport(AppTrackingTransparency) 38 | let current = map(status: ATTrackingManager.trackingAuthorizationStatus) 39 | guard current == .notDetermined else { return current } 40 | 41 | if let requestTask { 42 | return await requestTask.value 43 | } 44 | 45 | let task = Task { @MainActor in 46 | try? await Task.sleep(nanoseconds: 650_000_000) 47 | return await withCheckedContinuation { continuation in 48 | ATTrackingManager.requestTrackingAuthorization { status in 49 | continuation.resume(returning: Self.map(status: status)) 50 | } 51 | } 52 | } ================================================================