Mac Plus

Hello Swift

appgroup 사용하기

이슈체크

  1. 이미지푸시를 사용하기 위해서 Notification Service Extension을 사용하고 있다.
  2. 푸시를 보낼때 가상의 문자를 넣어서 보내주면 고객이름이 적혀서 푸시가 내려와야한다.
  • Extension에서 앱내에 저장되어있는 고객이름값을 접근할 수 있는가? No -> appgroup를 이용하여 접근하면 데이터를 공유할 수 있다고 한다
  • apple의 developer사이트는 항상 달라지기 때문에 순서가 달라질 수도 있습니다. (작성기준 200207, xcode version 11.2.1)
  1. Certificates, IDs & Profiles -> Identifiers -> 해당앱의 identifier 선택 -> App Groups 체크 -> Register an App Group 클릭 -> Description은 알아서 작성 identifier는 앞에 자동으로 group가 붙는다.

  2. 다 만들었으면 xcode로 돌아와서 해당 target선택 -> Signing & Capabilities 선택 -> 맨왼쪽위에보면 + 체크버튼이 있는데 선택하고 App Groups를 선택해주자 그러면 3단계에서 만든 group.~~가 보이는데 체크

  3. 이제 준비는 됬으니 데이터를 공유하는 방법을 알아보자 기존의 UserDefaults와는 조금 다르다. 앱내의 데이터를 저장해야하는 곳에서 let userDefault = UserDefaults(suiteName: “group.~~”) -> appgroup의 identifier를 적어줘야한다. userDefault?.set(“공유할 데이터값”, forKey: “appgroupTest”)

  4. Extension으로 와서 데이터를 불러온다. let userDefault = UserDefaults(suiteName: “group.~~”) var userName = userDefault?.object(forKey: “appgroupTest”) as? String ?? “고객”

이렇게 해주면 푸시가 들어왔을때 저장된 고객의 이름값이 있으면 **님 이라고 나오고 저장된 값이 없으면 고객님이라고 푸시가 날라오게된다.