iOS8 – Single Widget для нескольких целей

Apple представила концепцию «Виджеты» в WWDC 2014. Виджеты используются для быстрого доступа к приложению с очень необходимой информацией. Я попытался добавить Виджеты в свое приложение. Это было легко, когда в приложении было только одна цель.

Но, если у нас есть несколько целей, похоже, нам нужно добавить отдельный виджет для каждой цели. Можно ли добавить один виджет и заставить его делиться со всеми Целями?

Заранее спасибо.

2 Solutions collect form web for “iOS8 – Single Widget для нескольких целей”

Это, безусловно, возможно. У меня есть приложение под названием DD-WRT , у которого есть 3 отдельные цели. В основном 1 для iPhone, 1 для iPad, а 1 – бесплатная версия «lite». (С тех пор я сделал iPhone и iPad одним и тем же универсальным приложением, но все равно нужно поддерживать все 3 в App Store).

Я хотел добавить today widget во все 3 приложения, но только с одной базой кода, как с самим приложением.

Итак, как я это сделал?

Начните с добавления целевой цели today widget для одной из ваших целей приложения. Вы можете сделать это, выбрав « Editor > Add Target и выбрав « Today Extension в разделе « Application Extension ».

Дайте виджету целевое имя и выберите одну из ваших целей приложения, на которые будет назначен этот виджет.

Добавить цель

Теперь вы увидите новую группу файлов в инспекторе файлов, в которой вы будете кодировать свой виджет Инспектор файлов

Теперь сделайте точно такой же процесс для каждой другой цели сборки приложения, но дайте каждому немного другое имя и выбрав для каждого другого целевого приложения. У вас должно быть что-то вроде этого Все цели

Теперь у вас также будет несколько файлов виджетов, чего мы не хотим. Мы хотим использовать только один набор файлов. Секрет здесь – с файлом Info.plist виджета. Идентификатор bundle identifier должен соответствовать bundle identifier пакета содержащего приложения. Поэтому переименуйте каждый из файлов Info.plist виджета, чтобы вы могли определить, для какой цели, а затем переместите все их в папку первого созданного виджета. Теперь вы можете удалить файлы и папки для дополнительных виджетов.

Теперь у вас должно быть что-то вроде этого: Файлы Info.plist

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

На вкладке « Build Settings » введите plist в поле поиска, а затем отредактируйте запись для Info.plist file на имя plist для этой цели. Изменить имя plist

Теперь вы должны установить, чтобы все ваши файлы виджетов были членами каждой цели. Для обоих TodayViewController.m и MainInterface,storyboard , выберите их, а затем в окне « File inspector отметьте каждую цель. Как это: Файловые цели

Не забывайте выбирать все ваши цели расширения при добавлении новых файлов.

Одна из последних вещей, которые я обнаружил, что я должен был сделать (я провел годы, глядя на крушение, пока не понял). На вкладке « General » для каждой цели расширения щелкните раскрывающийся список « Main Interface и MainInterface . Несмотря на то, что похоже, что он уже выбран, он фактически выбрал те, которые вы удалили. Повторная выборка гарантирует, что вы укажете только на оставшуюся.

Надеюсь, все. Дайте каждой цели Clean затем создайте и запустите каждый.

У меня была точно такая же проблема. Внедрение сегодняшнего виджета и его использование с настройками целей для разработки / развертывания и тестирования (Testflight).

Я закончил создание второго виджета, добавляющего все необходимые файлы, и использую тот же StoryBoard, что и в другом виджете. Итак, единственное, что нужно сохранить, это второй info.plist. Я не мог найти более простых способов добиться этого.

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

Надеюсь это поможет.

Interesting Posts

NSURLCache удаляет истекшие кешированные ответы?

NSInvocation возвращает значение, но приводит к сбою приложения с EXC_BAD_ACCESS

Проверьте, обновлено ли мое приложение IOS

AVPlayerStatus?

Создание PDF-файла с одной страницей с массивом изображений в iOS?

FMDB Wrapper VS Основные данные: что легче использовать и поддерживать?

Предварительный просмотр видеоролика Apple Store

Невозможно получить состояние буферизации видео в реальном времени с помощью mpmovieplayercontroller ios

Использование службы https: // asmx с помощью Monotouch

Установка радиуса угла на ячейке приводит к урону производительности UICollectionView

Struct или Enum использовать для ключей сериализации?

Что вы предпочитаете как клиент RESTful – RestKit vs Resty

Как я могу группировать элементы TableView из словаря в swift?

Конфликт UITapGestureRecognizer в UIView и UITableView

MonoTouch SIGABRT Ошибка «Ошибка из батутов типа 2»

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