2015-02-24 2 views
10

Я запускаю приложение watchkit, которое использует группы приложений, и я не могу заставить его работать вообще. В любое время, когда я пытаюсь запустить приложение, я получаю предупреждение, в котором говорится: «SPErrorGizmoInstallNeverFinishedErrorMessage». Код на мой взгляд, контроллер относительно короткий.SPErrorGizmoInstallNeverFinishedErrorMessage в Watchkit

let sharedGroupName = NSBundle.mainBundle().objectForInfoDictionaryKey("Shared Group") as! String 

var sharedDefaults:NSUserDefaults! 

override func willActivate() { 

    super.willActivate() 

    sharedDefaults = NSUserDefaults(suiteName: sharedGroupName) 

    var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true) 

} 

func update() { 

    println(sharedDefaults?.valueForKey("timeMessage") as! String) 

} 

код в моем ViewController.swift коротка, а также просто настройки объекта эта доля по умолчанию:

let sharedGroupName = NSBundle.mainBundle().objectForInfoDictionaryKey("Shared Group") as! String 
var sharedDefaults:NSUserDefaults! 
sharedDefaults?.setObject(timeMessage.text, forKey: "timeMessage") 
sharedDefaults?.synchronize() 

Эта ошибка мешает мне запуска любого приложения watchkit вообще. Не основное приложение, или взгляд или уведомление. У меня есть одна группа приложений, которая указана в info.plist. У меня есть настраиваемая настройка для имени групп приложений. Любая помощь будет принята с благодарностью.

+0

Эта ошибка возникает даже при отсутствии кода NSUserDefault/Shared-Groups. Решение Орана сработало. –

ответ

1

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

+1

Thia действительно работал для меня.: – Peres

+0

Я работаю на ноутбуке без внешнего дисплея, и никакое другое решение тоже не работает для меня –

0

Если вы хотите использовать эту группу для совместного использования данных с помощью приложения IOS и набора часов для яблока с помощью NSUserdefault, вы можете выполнить следующие действия: 1. Добавить идентификатор группового приложения в возможностях части целевого приложения IOS и целевой смотреть комплект 2. если вы хотите сохранить данные NSUSerDefault:

var groupData = NSUserDefaults(suiteName: "group.demoShareData") 
// note that suiteName is group app id 
//  var str = "demotest" 
     groupData?.setObject(newYearLabel.text, forKey: "timeRemaining") 
     groupData?.synchronize() 

3. если вы хотите взять данные из NSuserDefault:

var groupData = NSUserDefaults(suiteName: "group.demoShareData") 
     groupData?.synchronize() 

     if groupData?.objectForKey("timeRemaining") != nil { 
       var str = groupData?.objectForKey("timeRemaining") as String 
        println("str \(str)") 
      self.myLabel.setText(str) 

     } else { 
      println("error") 
     } 

Надежда эта помощь :)

12

Я исправил эту проблему, перейдя в приложение-компаньон для просмотра симулятора, сняв флажок с установки для приложения часов, а затем снова включив его. Ничего более не работало.

+1

Как вы поживаете? – Nicopuri

+0

@Nicopuri вы открываете приложение Apple Watch на симуляторе iPhone, выбираете приложение для наблюдения из списка и включаете и выключаете переключатель. Однако это не сработало для меня, см. Здесь: http://stackoverflow.com/a/28990516/71262 –

+7

Я хочу, чтобы яблоко установило там багги-беспорядок, который является Xcode 6. Вам почти нужно сделать танец вуду, чтобы получить там программное обеспечение для работы должным образом иногда. – LightningStryk

11

Единственное, что сработало для меня, это сбросить содержимое и настройки в симуляторе. Включение приложения «Часы» в приложении «Настройки Apple Watch» не делало этого для меня.

+0

поисковое решение за пару часов, наконец, это сработало – dann

+0

это сработало для меня –

0

Я нашел решение в Xcode 8.3. Убедитесь, что параметр сборки «Целевое семейство устройств» установлен на iPhone в расширении WatchKit.

10

От чтения других сообщений форума разработчиков Apple, SPErrorGizmoInstallNeverFinishedErrorMessage, похоже, происходит, когда приложение App Info.plist имеет неверную настройку.

Я пробовал разные версии WKCompanionAppBundleIdentifier, и это была моя ошибка. Когда я удалил скопированную строку, это снова сработало.

+2

Это было также для моего проекта. Я добавил «Категория приложения» без значения, что является первым ключом при нажатии «+». Поэтому я добавил что-то случайно в файл «Смотреть приложение» Info.plist, и это была целая проблема. –

+1

Это и послужило причиной этой проблемы для меня. Я добавил дополнительный ключ к e Наблюдайте App Info.plist и удалите его исправленные вещи –

+0

Это сработало для меня! Благодарю. – venkat

1

Для меня это был "Targeted Device Family" Настройки

Для родительского приложения, вы можете сохранить его iPhone/IPad (или iPhone, до вас);
Для watchkitextension установите его на iPhone;
Для watchkitapp, если вы хотите запустить в симуляторе, установите его на iPhone. Для фактического устройства значение кажется равным 4 (которое вы не можете установить непосредственно из Xcode еще с 20150416)

5

Это сообщение появилось при добавлении пользовательских ключей в файл info.plist.

+0

Я случайно добавил дополнительный ключ к Info.plist приложения WatchKit. Удаление ключа устранило проблему. –

+0

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

0

Я удалил приложение с тренажера и переустановил. Казалось, что он работает.

Я пробовал пару других вариантов.

1

Я ничего не сделал, кроме перезагрузки. Симулятор & Приложение для чистой сборки, затем оно снова работало. :)

0

CMD SHIFT K - чистый CMD RUN - запуск

на ошибки пропадает!

Смежные вопросы