Сохранение приложения в фоновом режиме неограниченное (для приложения Cydia)

Я не возражаю против использования частных API или чего-то подобного, что Apple не любит, но предпочел бы быстрое решение, которое не похоже на тишину в фоновом режиме или на swizzling.

Очевидно, это не для магазина приложений, поэтому, пожалуйста, не читайте лекции 🙂

Итак, как вы работаете в фоновом режиме без каких-либо ограничений, таких как «backgrounder»? Мне не удалось найти ответ, кроме некоторых людей, которые были в разных направлениях, но, возможно, с тех пор кому-то удалось его выкопать.

2 Solutions collect form web for “Сохранение приложения в фоновом режиме неограниченное (для приложения Cydia)”

В зависимости от того, что будет делать ваше приложение, вы можете подключить MobileSubstrate. Это будет загружено SpringBoard и, по сути, будет работать «в фоновом режиме».

Если вы хотите написать фактическое приложение, вы также можете написать «Динамическую библиотеку», которая будет загружена SpringBoard MobileSUbstrate. Вы можете говорить между этим dylib и вашим приложением, используя NSNotificationCenter ; создание и публикация уведомлений.

Обновить:

Это решение больше не кажется достаточным (~ iOS 7+ или 7.1+). Я оставляю исходный ответ для исторической справки, и в случае, если это поможет создать будущее решение, основанное на этом устаревшем:


Это зависит от того, что вы подразумеваете под приложением . Если вы говорите о неграфическом фоновом сервисе , то то, что вы хотите, – это демон запуска. См. Здесь, как создать демон запуска .

Если у вас есть обычное приложение пользовательского интерфейса, но когда пользователь нажимает кнопку «домой», вы хотите, чтобы он не спал в фоновом режиме в течение неограниченного времени, тогда вы можете использовать некоторые недокументированные фоновые режимы в файле Info.plist вашего приложения :

 <key>UIBackgroundModes</key> <array> <string>continuous</string> <string>unboundedTaskCompletion</string> </array> 

Затем, когда iOS готова разместить ваше приложение в фоновом режиме (например, пользователь нажимает кнопку «домой»), вы можете сделать это в своем делете приложения:

 @property (nonatomic, assign) UIBackgroundTaskIdentifier bgTask; - (void)applicationDidEnterBackground:(UIApplication *)application { // Delay execution of my block for 15 minutes. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 15 * 60 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{ NSLog(@"I'm still alive!"); }); self.bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ // should never get here under normal circumstances [application endBackgroundTask: self.bgTask]; self.bgTask = UIBackgroundTaskInvalid; NSLog(@"I'm going away now ...."); }]; } 

Обычно iOS дает вам до 10 минут, чтобы приложение UI работало в фоновом режиме. В режиме недокументированного фона вы сможете продолжать жить за 10 минут.

Примечание. Это не требует подключения к MobileSubstrate. Если вы используете второй метод (недокументированные фоновые режимы), то он требует установки вашего приложения в /Applications/ , а не в обычной области песочницы ( /var/mobile/Applications/ ).

  • Текст UITextfield перемещается по редактированию
  • Режим фона iOS для веб-просмотра
  • Создание события календаря с помощью сигнала тревоги с помощью EKEventEditViewController
  • Изгибание вида, как страницы книги
  • Таблица повторного использования Просмотр переменных Swift
  • Добавление программ программно в UITableView
  • Уменьшить высоту клавиатуры ios
  • iOS: как вызвать силовую атаку пользователя на iPhone?
  • Google плюс признаки сбоев в ios 9
  • Не удалось запустить ipa-файл в реальном устройстве IOS 10 с помощью appium 1.6.0
  • Сохранение изображения только на пользовательском альбоме
  • Interesting Posts

    Ошибка представления / распространения приложения Store "не удалось открыть сеанс ssh"

    -Answered-Получить событие события для UIButton в UIControl / поворачиваемом виде

    массив float * в NSArray, iOS

    Звук не воспроизводится на iPad, но отлично работает в наушниках и на iPod Touch / iPhone

    Не удалось скомпилировать шейдер в swift

    Restkit, как сделать сопоставление (для многих) с помощью первичного ключа

    Пользовательский пейджинг UIScrollView с scrollViewWillEndDragging

    Код должен выполняться один раз после короткой задержки

    Изменение NSFetchRequest, генерирующего индекс NSRangeException 0 за пределами для пустого массива

    Добавить наложение перевернутого круга для отображения карты

    iOS – Как я могу получить продолжительность воспроизведения AVPlayer

    Как установить «Идентичность» полезной нагрузки MDM в iPCU?

    Установить текст UILabel внутри блока кода

    как найти электронные письма в данном сообщении и заменить на XXXXX в iOS

    делегаты протокола цели-c

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.