QA@IT

app groupを使用しても同期されない。 iOS11 Xcode9

9507 PV

iPhoneとapple watchのアプリを開発しています。
OSはiOS11 Xcode9になります。

iPhoneとwatchでデータを共有させようと
app groupを使用しているのですが、うまく同期がされません。

iOS Developer CenterでのApp Groupの設定
iPhoneアプリ側、Watchアプリ側でのApp Groups設定等は行い、
シュミレータ等(実機)で確認をしてみても値が同期されません。。

iPhone側

class ViewController: UIViewController {

@IBOutlet weak var myLable: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    // AppGroup IDで保存したcountデータを取得する
    let defaults = UserDefaults(suiteName: "group.app.vital")
    let count = defaults?.integer(forKey: "contValue") ?? 0
    // 値を表示する
    myLable.text = "\(count)"

    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func tapBtn(_ sender: Any) {
    // AppGroup IDで保存したcountデータを取得する
    let defaults = UserDefaults(suiteName: "xxxxxxx.xxxx")
    var count = defaults?.integer(forKey: "contValue") ?? 0
    // カウントアップして表示する
    count = count + 1
    myLable.text = "\(count)"
    //カウントアップした値を保存する
    defaults?.set(count as AnyObject, forKey: "contValue")
    defaults?.synchronize()
}   

}

Watch側

@IBOutlet var lblCounter: WKInterfaceLabel!

private var count = 0

override func awake(withContext context: Any?) {
    super.awake(withContext: context)
      lblCounter.setText("0")
    // Configure interface objects here.
}

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()


    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
    // AppGroup IDで保存したcountデータを取得する
    let defaults = UserDefaults(suiteName: "xxxxxxx.xxxx")
    let count = defaults?.integer(forKey: "contValue") ?? 0
    // 値を表示する
    lblCounter.setText("\(count)")
}

override func didDeactivate() {
    // This method is called when watch view controller is no longer visible
    super.didDeactivate()
}

@IBAction func tapBtn() {


    // AppGroup IDで保存したcountデータを取得する
    let defaults = UserDefaults(suiteName: "group.app.vital")
    var count = defaults?.integer(forKey: "contValue") ?? 0
    //カウントアップして表示する
    count  = count + 1
    lblCounter.setText("\(count)")
    //カウントアップした値を保存する
    defaults?.set(count, forKey: "contValue")
    defaults?.synchronize()

    //count = count + 1

    //lblCounter.setText(String(count))
}

ご教授をお願いいたします。

ウォッチ

この質問への回答やコメントをメールでお知らせします。