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

Может ли кто-нибудь представить примеры приложений Adobe Air для iOS?

Изображение большого пальца не перемещается к краю UISlider

CGAffineTransformScale не сбрасывает

Изменить язык описания приложения по умолчанию

UICollectionView – подобранная анимация, например приложение для iPhone

Что происходит, когда вы закрываете файл с использованием шифрования iOS «Защищенный без открытия»?

iOS: использование модальной страницыFlip делает странную анимацию клеток в UITableViewController

Как добавить фоновое изображение в сгруппированный стиль UITableViewController в iOS 6?

Есть ли способ получить результат поиска, который я получаю в приложении App Store на устройстве iOS? (Как получить файл ipa в «App Store»?)

Использование эффекта реверберации iOS

Глобальный помощник для спецификаций Kiwi

Как использовать cocoapod для включения общей структуры как для приложения iOS, так и для расширения часов

iOS 11 – Высота клавиатуры возвращается 0 в уведомлении клавиатуры

доступ к NSSet моего управляемого объекта в основных данных

Автоматическая компоновка UICollectionViewCell

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