Не относительные пути проекта Xcode, встроенные в двоичный файл выпуска

Я наткнулся на довольно неприятную проблему с приложением Xcode для iOS, версия Xcode - 10.1, но я помню, что эта проблема существует очень долгое время.

Релизная версия нашего приложения действительно содержит полные пути к некоторым источникам проекта, я подумал, что это макросы ФАЙЛ из утверждений, что имело место только для некоторых из них. Это вызвано некоторыми библиотеками Swift, но в них или в этих файлах нет ничего конкретного.

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

  • вручную удалите их, но не смог найти больше утверждений / NSAsserts
  • добавление флагов предварительной обработки NDEBUG и NS_BLOCK_ASSERTIONS ни один из они вносили какие-либо изменения.
  • Попытка заставить Xcode использовать относительные пути, но нам с этим не повезло

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

Что еще более интересно, если взглянуть на незашифрованные двоичные файлы основных популярных приложений iOS, большинство из них содержат такие пути.

в сборке Release в Xcode 10.1 я вижу только полные пути от макросов FILE, как вы упомянули. Что вас беспокоит? Для публично выпущенных двоичных файлов мы предоставляем только пути к файлам на сервере сборки, которые в любом случае в основном случайны. Между тем, эти идеально избыточные данные хорошо сжимаются :)

yano 18.12.2018 02:41

Я строю на своем частном компьютере, возможно, мне стоит изменить эту практику. В любом случае я просто не понимаю причину, по которой макросы FILE включены с полным путем, а не с относительным, если это вообще необходимо! Я не видел в этом необходимости в проверенных мной классах.

user4308245 18.12.2018 04:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
110
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я тоже вижу, что двоичный файл релиза содержит путь пользователя ... будет обновлен здесь, если мы получим решение.

Привет, Пока что удачи?

user4308245 21.12.2018 00:58
Ответ принят как подходящий

На данный момент я нашел только обходной путь - переместить проект на основной диск «/». Скомпилируйте релиз оттуда, тогда у него нет полных пользовательских путей. Если у кого-то есть лучшее решение, я бы хотел его услышать.

Другие вопросы по теме