Могу ли я программно перевернуть значения Info.plist во время работы моего приложения?

StackOverflow https://stackoverflow.com/questions/1429886

  •  07-07-2019
  •  | 
  •  

Вопрос

Я заинтересован в использовании ключей SBUsesNetwork и UIRequiresPersistentWiFi в моем приложении; Однако я хотел бы включить их только при использовании определенного набора контроллеров представления. Есть ли способ программно перевернуть эти значения ключа во время работы приложения?

Это было полезно?

Решение

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

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

Я знаю, что вы можете получить ваш info.plist в качестве NSDictionary через NSBundle со следующим:

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];

оттуда вы можете сделать mutableCopy из NSDictionary и установить в нем значения. При выполнении запросов к ключам вы должны будете обязательно запрашивать NSDictionary , а не свой файл info.plist, но не должно быть сложно инкапсулировать все это в класс, который обрабатывает оба проблемы для вас.

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

Вы не можете изменять Info.plist. Похоже, что Apple не разрешает делать то, что вам нужно.

Я не думаю, что это сработает. [NSBundle mainBundle] имеет указатель на определенный infoDictionary. Даже если вы возьмете изменчивую копию, NSBundle ничего не узнает о нашем новом списке. Кто-нибудь еще пробовал?

Info.plist - это всего лишь словарь. Следовательно это может быть отредактировано.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top