{"id":1142,"date":"2022-08-17T14:33:07","date_gmt":"2022-08-17T05:33:07","guid":{"rendered":"https:\/\/doc.msghub.uplus.co.kr\/guide\/?post_type=docs&#038;p=1142"},"modified":"2023-11-15T17:21:37","modified_gmt":"2023-11-15T08:21:37","slug":"ios-%ea%b0%9c%eb%b0%9c%ea%b0%80%ec%9d%b4%eb%93%9c","status":"publish","type":"docs","link":"https:\/\/doc.msghub.uplus.co.kr\/guide\/d\/ios-%ea%b0%9c%eb%b0%9c%ea%b0%80%ec%9d%b4%eb%93%9c\/","title":{"rendered":"iOS \uac1c\ubc1c\uac00\uc774\ub4dc"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\uac1c\uc694<\/h2>\n\n\n\n<p>Morpheus Push\ub294 \uc2a4\ub9c8\ud2b8\ud3f0 OS\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 PNS(Push Notification Server)\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uba54\uc2dc\uc9c0 \uc804\uc1a1 \ud50c\ub7ab\ud3fc\uc774\ub2e4. iOS Client \uc5d0\uc11c\ub294 UPMC WAS \uc5d0\uc11c \uc81c\uacf5\ud558\ub294 Push API \ub97c \uac01\uac01 \ubc84\uc804 \uaddc\uaca9\uc5d0 \ub9de\ucdb0 \uc5f0\ub3d9\ud558\uc5ec \uc6d0\ud65c\ud558\uac8c Push Service \ub97c \uc6b4\uc601\ud558\uae30 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<p>iOS\uac1c\ubc1c \uc0d8\ud50c\uc740 <a href=\"https:\/\/total-msg-hub.github.io\/pushiOS_sample\/\">https:\/\/total-msg-hub.github.io\/pushiOS_sample\/<\/a> \ub97c \ucc38\uc870\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uc6a9\uc5b4<\/h2>\n\n\n\n<p><strong>APNS<\/strong><\/p>\n\n\n\n<ul>\n<li>Apple Push Notification Service \uc758 \uc904\uc784\ub9d0<\/li>\n\n\n\n<li>Apple \uc5d0\uc11c \uc9c1\uc811 \uc81c\uacf5\ud558\ub294 \uc601\uad6c\uc801\uc778 \ubcf4\uc548 \ucc44\ub110\uc5d0 \uacf5\uae09\uc790\ub97c \uc5f0\uacb0\ud558\uc5ec \ub300\uc0c1 \uc7a5\uce58\uc5d0 \uc54c\ub9bc\uc744 \ubcf4\ub0bc \uc218 \uc788\ub294 \uc11c\ube44\uc2a4<\/li>\n<\/ul>\n\n\n\n<p><strong>UPMC<\/strong><\/p>\n\n\n\n<ul>\n<li>Uracle Push Message Center \uc758 \uc904\uc784\ub9d0<\/li>\n\n\n\n<li>WAS(Web Application Server)\uc5d0 \ubc30\ud3ec\ub418\uba70, Apple APNS \uc11c\ubc84\uc640 TLS \uc778\uc99d\uc73c\ub85c \uc5f0\uacb0\ub41c APNS Provider \uc11c\ubc84\ub97c Server \ub300 Server \ub85c \uc5f0\uacc4\ud558\uc5ec \uad6c\ub3d9\ud558\ub294 \uc11c\ubc84 \uc560\ud50c\ub9ac\ucf00\uc774\uc158<\/li>\n\n\n\n<li>Receiver \ub77c\uace0\ub3c4 \ubd88\ub9bc<\/li>\n<\/ul>\n\n\n\n<p><strong>Service \ub4f1\ub85d<\/strong><\/p>\n\n\n\n<ul>\n<li>APNS \ub85c\ubd80\ud130 Token \uc744 \ud560\ub2f9 \ubc1b\uace0 <a href=\"https:\/\/clouddocs.morpheus.co.kr\/client\/sdk\/iOS.html\">UPMC<\/a>\ub85c Push \uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud558\uaca0\ub2e4\uace0 \ub4f1\ub85d\ud558\ub294 \uc808\ucc28<\/li>\n<\/ul>\n\n\n\n<p><strong>Service \ud574\uc81c<\/strong><\/p>\n\n\n\n<ul>\n<li>UPMC \ub85c Push \uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uaca0\ub2e4\uace0 \ub4f1\ub85d\uc744 \uc0ad\uc81c\ud558\ub294 \uc808\ucc28<\/li>\n<\/ul>\n\n\n\n<p><strong>User \ub4f1\ub85d<\/strong><\/p>\n\n\n\n<ul>\n<li>UPMC \ub85c Push \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \uc0ac\uc6a9\uc790\ub97c \ub4f1\ub85d \ub610\ub294 \ubcc0\uacbd\ud558\ub294 \uc808\ucc28<\/li>\n<\/ul>\n\n\n\n<p><strong>ServiceAndUser \ub4f1\ub85d<\/strong><\/p>\n\n\n\n<ul>\n<li>UPMC \ub85c Push \uc11c\ube44\uc2a4 \ub4f1\ub85d \ubc0f \uc0ac\uc6a9\uc790\ub97c \ub4f1\ub85d\uc744 \ub3d9\uc2dc\uc5d0 \uc9c4\ud589\ud558\ub294 \uc808\ucc28<\/li>\n<\/ul>\n\n\n\n<p><strong>\uc218\uc2e0 \ud655\uc778<\/strong><\/p>\n\n\n\n<ul>\n<li>\uba54\uc138\uc9c0\ub97c \uc81c\ub300\ub85c \ubc1b\uc558\uc744 \ub54c UPMC\ub85c ack\ub97c \uc8fc\ub294 \uc808\ucc28<\/li>\n<\/ul>\n\n\n\n<p><strong><strong>\uc77d\uc74c \ud655\uc778<\/strong><\/strong><\/p>\n\n\n\n<ul>\n<li>App\uc5d0\uc11c \uba54\uc138\uc9c0\ub97c \uc77d\uc5c8\uc744 \ub54c UPMC\ub85c ack\ub97c \uc8fc\ub294 \uc808\ucc28<\/li>\n<\/ul>\n\n\n\n<p><strong><strong>Project ID<\/strong><\/strong><\/p>\n\n\n\n<ul>\n<li>Push \uc11c\ube44\uc2a4 \uc774\uc6a9\uc744 \uc704\ud574 Console\uc5d0\uc11c \ubc1c\uae09\ubc1b\uc740 ID<\/li>\n<\/ul>\n\n\n\n<p><strong>Client ID<\/strong><\/p>\n\n\n\n<ul>\n<li>\uc0ac\uc6a9\uc790\ub85c \ub4f1\ub85d\ud560 Client \uc758 \uace0\uc720\ud55c ID (CUID \ub77c\uace0\ub3c4 \ud568)<\/li>\n\n\n\n<li>\uc81c\uc57d\uc740 \uc5c6\uc73c\uba70, \uc77c\ubc18\uc801\uc73c\ub85c Email, User ID, Phone Number \ub610\ub294 Device-UUID \ub4f1\uc744 CUID \ub85c \uc0ac\uc6a9\ud568<\/li>\n<\/ul>\n\n\n\n<p><strong>Client Name<\/strong><\/p>\n\n\n\n<ul>\n<li>\uc0ac\uc6a9\uc790\ub85c \ub4f1\ub85d\ud560 Client\uc758 \uc774\ub984 (CNAME \ub77c\uace0\ub3c4 \ud568)<\/li>\n\n\n\n<li>\uc0ac\uc6a9\uc790\uc758 \uc774\ub984\uc774\ub098 Nickname \ub610\ub294 Device Name\uc744 CNAME\uc73c\ub85c \uc0ac\uc6a9<\/li>\n<\/ul>\n\n\n\n<p><strong>PSID<\/strong><\/p>\n\n\n\n<ul>\n<li>Push Service ID \uc758 \uc904\uc784\ub9d0<\/li>\n\n\n\n<li>Push \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \uace0\uc720 ID<\/li>\n\n\n\n<li>APNS\uc5d0\uc11c \ud560\ub2f9 \ubc1b\uc740 Device Token\uc744 \uc0ac\uc6a9<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">APNS \uc778\uc99d\ud0a4 p8 \ubc1c\uae09 \ub530\ub77c\ud558\uae30<\/h2>\n\n\n\n<p>p8 \ud0a4\uac00 \uc0dd\uc131\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc744 \uacbd\uc6b0 Apple \uac1c\ubc1c\uc790 \uc0ac\uc774\ud2b8\uc5d0\uc11c p8 Key \ubc1c\uae09\uc774 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Apple \uac1c\ubc1c\uc790 \uc0ac\uc774\ud2b8 \uc811\uc18d<\/h3>\n\n\n\n<ul>\n<li><a href=\"https:\/\/developer.apple.com\/\">https:\/\/developer.apple.com<\/a> \uc0ac\uc774\ud2b8\ub85c \uc774\ub3d9\ud55c\ub2e4.<\/li>\n\n\n\n<li>Account \uba54\ub274\ub97c \ub20c\ub7ec \ub85c\uadf8\uc778 \ud654\uba74\uc73c\ub85c \uc774\ub3d9\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-4.png\"><img decoding=\"async\" loading=\"lazy\" width=\"695\" height=\"434\" data-id=\"1144\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-4.png\" alt=\"\" class=\"wp-image-1144\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-4.png 695w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-4-300x187.png 300w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Apple Developer\uc5d0 \ub85c\uadf8\uc778<\/h3>\n\n\n\n<ul>\n<li>1\ubc88 \ud56d\ubaa9\uc5d0 \uc560\ud50c \uac1c\ubc1c\uc790 \uc544\uc774\ub514, 2\ubc88 \ud56d\ubaa9\uc5d0 \ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-5.png\"><img decoding=\"async\" loading=\"lazy\" width=\"696\" height=\"435\" data-id=\"1145\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-5.png\" alt=\"\" class=\"wp-image-1145\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-5.png 696w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-5-300x188.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Account<\/h3>\n\n\n\n<ul>\n<li>Certificates, Identifiers &amp; Profiles \uba54\ub274\ub85c \uc774\ub3d9\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-6.png\"><img decoding=\"async\" loading=\"lazy\" width=\"692\" height=\"433\" data-id=\"1146\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-6.png\" alt=\"\" class=\"wp-image-1146\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-6.png 692w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-6-300x188.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Certificates, Identifiers &amp; Profiles<\/h3>\n\n\n\n<ul>\n<li>Keys \uba54\ub274\ub85c \uc774\ub3d9\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-7.png\"><img decoding=\"async\" loading=\"lazy\" width=\"693\" height=\"434\" data-id=\"1147\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-7.png\" alt=\"\" class=\"wp-image-1147\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-7.png 693w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-7-300x188.png 300w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Keys<\/h3>\n\n\n\n<ul>\n<li>1\ubc88 \ud56d\ubaa9\uc5d0\uc11c \uae30\uc874\uc5d0 \uc0dd\uc131\ub418\uc5b4 \uc788\ub358 p8\ud0a4\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>p8\ud0a4\ub294 \uacc4\uc815\ub2f9 2\uac1c\uae4c\uc9c0 \uc0dd\uc131\uc774 \uac00\ub2a5\ud558\uba70 \uacc4\uc815 \ub0b4\uc5d0 \ubaa8\ub4e0 \uc571\uc774 \ud568\uaed8 \uc0ac\uc6a9\ud558\ub294 \ubd80\ubd84\uc73c\ub85c \uc801\uc808\ud55c \uad00\ub9ac\uac00 \ud544\uc694\ud558\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-8.png\"><img decoding=\"async\" loading=\"lazy\" width=\"687\" height=\"430\" data-id=\"1148\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-8.png\" alt=\"\" class=\"wp-image-1148\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-8.png 687w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-8-300x188.png 300w\" sizes=\"(max-width: 687px) 100vw, 687px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<ul>\n<li>2\ubc88(+\ubc84\ud2bc)\uc744 \ub20c\ub7ec \ud0a4\ub97c \ucd94\uac00\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Register a New Key<\/h3>\n\n\n\n<ul>\n<li>1\ubc88 \ud56d\ubaa9\uc5d0 Key \uc774\ub984\uc744 \uc785\ub825\ud55c\ub2e4.<\/li>\n\n\n\n<li>2\ubc88 \ud56d\ubaa9\uc744 \uccb4\ud06c\ud558\uc5ec APNS Key\ub97c \uc120\ud0dd\ud55c\ub2e4.<\/li>\n\n\n\n<li>Continue\ub97c \ub20c\ub7ec \ub2e4\uc74c \uc808\ucc28\ub97c \uc9c4\ud589\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-11 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-9.png\"><img decoding=\"async\" loading=\"lazy\" width=\"696\" height=\"435\" data-id=\"1149\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-9.png\" alt=\"\" class=\"wp-image-1149\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-9.png 696w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-9-300x188.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">APNS Key \uc0dd\uc131 \uc911<\/h3>\n\n\n\n<ul>\n<li>\uc120\ud0dd\ud55c \uc124\uc815\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc744 \ubcf4\uc5ec\uc900\ub2e4.<\/li>\n\n\n\n<li>Register\ub97c \ub20c\ub7ec \ud0a4\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-13 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-10.png\"><img decoding=\"async\" loading=\"lazy\" width=\"655\" height=\"410\" data-id=\"1151\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-10.png\" alt=\"\" class=\"wp-image-1151\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-10.png 655w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-10-300x188.png 300w\" sizes=\"(max-width: 655px) 100vw, 655px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Download Your Key<\/h3>\n\n\n\n<ul>\n<li>Download \ubc84\ud2bc\uc744 \ub20c\ub7ec p8\ud0a4\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\ub294\ub2e4.<\/li>\n\n\n\n<li>p8\ud0a4\ub294 \uc0dd\uc131\ud560\ub54c 1\ud68c \ub2e4\uc6b4\ub85c\ub4dc\uac00 \uac00\ub2a5\ud558\uace0 \uc774\ud6c4 \ucd94\uac00 \ub2e4\uc6b4\ub85c\ub4dc\uac00 \ubd88\uac00\ud558\ub2c8 \ud0a4 \ud30c\uc77c \uad00\ub9ac\uc5d0 \uc720\uc758\ud574\uc57c \ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-15 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-11.png\"><img decoding=\"async\" loading=\"lazy\" width=\"698\" height=\"436\" data-id=\"1152\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-11.png\" alt=\"\" class=\"wp-image-1152\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-11.png 698w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-11-300x187.png 300w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Key ID<\/h3>\n\n\n\n<ul>\n<li>Apple \uac1c\ubc1c\uc790 \uc0ac\uc774\ud2b8 -&gt; Account -&gt; Certificates, Identifiers &amp; Profiles \uba54\ub274\ub85c \uc774\ub3d9\ud55c\ub2e4.<\/li>\n\n\n\n<li>Keys \ud0ed\uc5d0\uc11c \uae30\uc874\uc5d0 \uc0dd\uc131\ub418\uc5b4 \uc788\ub294 Key \ub9ac\uc2a4\ud2b8\uc640 \uadf8 Key ID\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-17 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-12.png\"><img decoding=\"async\" loading=\"lazy\" width=\"695\" height=\"434\" data-id=\"1153\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-12.png\" alt=\"\" class=\"wp-image-1153\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-12.png 695w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-12-300x187.png 300w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Team ID<\/h3>\n\n\n\n<ul>\n<li>3.8. Download Your Key \uc744 \ud1b5\ud574, \ud68d\ub4dd\ud55c p8 \ud30c\uc77c\uacfc Key ID\ub97c \ud655\uc778\ud55c\ub2e4.<\/li>\n\n\n\n<li>Apple \uac1c\ubc1c\uc790 \uc0ac\uc774\ud2b8 -&gt; Account -&gt; Membership \uc5d0\uc11c Team ID\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>\uc11c\ube44\uc2a4 \uc124\uc815 \uc2dc \uc704\uc758 \ud30c\uc77c\uacfc \uac12\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-19 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-13.png\"><img decoding=\"async\" loading=\"lazy\" width=\"692\" height=\"433\" data-id=\"1154\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-13.png\" alt=\"\" class=\"wp-image-1154\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-13.png 692w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-13-300x188.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SDK \ubc0f \uc124\uc815 \ud30c\uc77c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">SDK \ud30c\uc77c<\/h3>\n\n\n\n<ul>\n<li>iOS \uc6a9 SDK \ud30c\uc77c\n<ul>\n<li>MPushLibrary.framework : APNS Push\ub97c \ud65c\uc6a9\ud560 \uc218 \uc788\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ub2f4\uae34 framework \ud30c\uc77c<\/li>\n\n\n\n<li>MPushLibrary.bundle : MPushLibrary.framework \uc744 \uc0ac\uc6a9\ud568\uc5d0 \uc788\uc5b4 \ud544\uc694\ud55c resource\uac00 \ub2f4\uae34 bundle \ud30c\uc77c<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>iOS \uc6a9 \uc0d8\ud50c \ud30c\uc77c\n<ul>\n<li>PushRecevier : PushManagerDelegate \ub300\ub9ac\uc790 \uc0d8\ud50c \ud30c\uc77c<\/li>\n\n\n\n<li>\uad00\ub828 Frameworks \ucd94\uac00\n<ul>\n<li>XCode Project \uc124\uc815 &gt; Build Phases &gt; Link Binary With Libraries &gt; UserNotifications.framework \ucd94\uac00<\/li>\n\n\n\n<li>iOS10 \ub300\uc751\uc744 \uc704\ud574 \ucd94\uac00\ub418\ub294 UserNotifications.framework \uc744 \ucd94\uac00\ud558\uae30 \uc704\ud574\uc11c\ub294 XCode 8 \uc774\uc0c1 \ud544\uc694<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uacf5\ud1b5 \uc124\uc815 \ud30c\uc77c<\/h3>\n\n\n\n<ul>\n<li>Manifest.xml : Push \uad6c\ub3d9\uc744 \uc704\ud55c \uc124\uc815 \ud30c\uc77c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;manifest useDirectView=\"false\"&gt;\n        ...\n    &lt;settings&gt;\n        &lt;push&gt;\n            &lt;receiver&gt;\n                &lt;log&gt;y&lt;\/log&gt;\n                &lt;version&gt;x.x&lt;\/version&gt;\n                &lt;server&gt;https:\/\/upmc.msghub.uplus.co.kr\/upmc&lt;\/server&gt;\n                &lt;app-id&gt;xxxxxxxxxxxxxxxxxxxxxxx&lt;\/app-id&gt;\n            &lt;\/receiver&gt;\n        &lt;\/push&gt;\n    &lt;\/settings&gt;\n    ...\n&lt;\/manifest&gt;<\/code><\/pre>\n\n\n\n<ul>\n<li>settings.push.receiver \uc5d0 \ub300\ud55c \uc124\uc815\uac12<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-22 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Key<\/strong><\/td><td><strong>Type<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>app-id<\/td><td>String<\/td><td><strong>MsgHub console\uc5d0\uc11c \uc0dd\uc131\ud55c \uc571 \uc2dd\ubcc4\uc790<\/strong><\/td><\/tr><tr><td>log<\/td><td>String<\/td><td>Push Service \uc5d0 \ub300\ud55c Debugging \ub85c\uadf8 \ucd9c\ub825 \uc5ec\ubd80 ( y \/ n )<\/td><\/tr><tr><td>version<\/td><td>String<\/td><td>UPMC Version (5.0 &#8211; \uace0\uc815\uac12)<\/td><\/tr><tr><td>server<\/td><td>String<\/td><td>UPMC WAS \uc11c\ubc84 URL (\uace0\uc815 \uac12)<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 \ub530\ub77c\ud558\uae30<\/h2>\n\n\n\n<p>iOS \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud55c\ub2e4. Xcode11.3 \ubc84\uc804\uc744 \uae30\uc900\uc73c\ub85c \uc791\uc131\ub428<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create a new Xcode project<\/h3>\n\n\n\n<ul>\n<li>\ud15c\ud50c\ub9bf \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc120\ud0dd\ud558\uace0 Next\ub97c \ub20c\ub7ec \ub2e4\uc74c \uc808\ucc28\ub97c \uc9c4\ud589\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-23 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-14.png\"><img decoding=\"async\" loading=\"lazy\" width=\"696\" height=\"451\" data-id=\"1155\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-14.png\" alt=\"\" class=\"wp-image-1155\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-14.png 696w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-14-300x194.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\uc0c8 \ud504\ub85c\uc81d\ud2b8 \uc124\uc815<\/h3>\n\n\n\n<ul>\n<li>\uc124\uc815 \ud56d\ubaa9\ub4e4\uc740 \uc571\uc744 \uc0dd\uc131\ud6c4 \ubcc0\uacbd\uc774 \uac00\ub2a5\ud558\ub2e4.<\/li>\n\n\n\n<li>1\ubc88 \ud56d\ubaa9\uc5d0 \ud504\ub85c\uc81d\ud2b8 \uc774\ub984\uc744 \uc785\ub825\ud55c\ub2e4.<\/li>\n\n\n\n<li>2\ubc88 \ud56d\ubaa9\uc740 Apple Developer Team\uc744 \uc120\ud0dd\ud558\ub294 \ubd80\ubd84\uc73c\ub85c \uc5f0\ub3d9\ub41c \uac1c\ubc1c\uc790 \uacc4\uc815\uc774 \uc5c6\uc744 \uacbd\uc6b0 None\uc73c\ub85c \uc124\uc815\ub41c\ub2e4.<\/li>\n\n\n\n<li>3\ubc88 \ud56d\ubaa9\uc740 \uc571\uc758 \uace0\uc720\ud55c \uc544\uc774\ub514 \uac12\uc73c\ub85c \uc571\uc744 \uad6c\ubcc4\ud558\ub294 \uae30\uc900\uc774 \ub41c\ub2e4.<\/li>\n\n\n\n<li>Objective-C\ub97c \uae30\uc900\uc73c\ub85c \uc801\uc6a9\ubc29\ubc95\uc774 \uac00\uc774\ub4dc<\/li>\n\n\n\n<li>Next\ub97c \ub20c\ub7ec \ub2e4\uc74c \uc808\ucc28\ub97c \uc9c4\ud589\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-25 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-15.png\"><img decoding=\"async\" loading=\"lazy\" width=\"693\" height=\"450\" data-id=\"1156\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-15.png\" alt=\"\" class=\"wp-image-1156\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-15.png 693w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-15-300x195.png 300w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 \uacbd\ub85c \uc124\uc815<\/h3>\n\n\n\n<ul>\n<li>\ud504\ub85c\uc81d\ud2b8\uac00 \uc0dd\uc131\ub420 \uc704\uce58\ub97c \uc120\ud0dd\ud558\uace0 \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-27 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-16.png\"><img decoding=\"async\" loading=\"lazy\" width=\"641\" height=\"416\" data-id=\"1157\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-16.png\" alt=\"\" class=\"wp-image-1157\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-16.png 641w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-16-300x195.png 300w\" sizes=\"(max-width: 641px) 100vw, 641px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8\uc5d0 Push SDK \uc801\uc6a9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Push SDK \ud504\ub85c\uc81d\ud2b8\uc5d0 drag &amp; drop<\/h3>\n\n\n\n<ul>\n<li>1\ubc88 \ud56d\ubaa9\uc5d0\uc11c \ub77c\uc774\ube0c\ub7ec\ub9ac \ud30c\uc77c MPushLibrary.framework \uc640 MPushLibrary.bundle\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>Custom \ud30c\uc77c\uacfc Manifest.xml \ud30c\uc77c\uc774 \ud3ec\ud568\ub41c 2\ubc88 \ud3f4\ub354 \uc804\uccb4\ub97c \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub4dc\ub798\uadf8\ud558\uc5ec \ucd94\uac00\ud55c\ub2e4.<\/li>\n\n\n\n<li>Custom \ud30c\uc77c\uc740 \uc0ac\uc6a9\ubc29\ubc95\uc5d0 \ub530\ub77c \ucd94\uac00\ud558\uc9c0 \uc54a\uc744\uc218 \uc788\uc73c\uba70 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 Manifest.xml \uc740 \ubc18\ub4dc\uc2dc \ud3ec\ud568\ub418\uc5b4\uc57c \ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-29 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"689\" height=\"428\" data-id=\"1158\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-17.png\" alt=\"\" class=\"wp-image-1158\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-17.png 689w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-17-300x186.png 300w\" sizes=\"(max-width: 689px) 100vw, 689px\" \/><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Push SDK \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00(\uc635\uc158)<\/h3>\n\n\n\n<ul>\n<li>1\ubc88 \ud56d\ubaa9\uc774 \uccb4\ud06c\ub418\uc5b4 \uc788\uc73c\uba74 \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354\uc5d0 \ub4dc\ub798\uadf8\ud55c \ud30c\uc77c\uc774 \ubcf5\uc0ac\ub41c\ub2e4.<\/li>\n\n\n\n<li>Create groups \uc635\uc158\uc774 \uc120\ud0dd\ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/li>\n\n\n\n<li>Finish\ub97c \uc120\ud0dd\ud558\uc5ec SDK \ucd94\uac00<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-31 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-18.png\"><img decoding=\"async\" loading=\"lazy\" width=\"697\" height=\"445\" data-id=\"1159\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-18.png\" alt=\"\" class=\"wp-image-1159\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-18.png 697w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-18-300x192.png 300w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Push SDK \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00 (\uc644\ub8cc)<\/h3>\n\n\n\n<ul>\n<li>1\ubc88 \ud56d\ubaa9\uc5d0\uc11c SDK\uac00 \ucd94\uac00\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>Target -&gt; Build Phases -&gt; Link Binary With Libraries \ud56d\ubaa9\uc5d0\uc11c \ucd94\uac00\ub41c framework\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-33 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-19.png\"><img decoding=\"async\" loading=\"lazy\" width=\"694\" height=\"450\" data-id=\"1160\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-19.png\" alt=\"\" class=\"wp-image-1160\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-19.png 694w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-19-300x195.png 300w\" sizes=\"(max-width: 694px) 100vw, 694px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8 Push \uc124\uc815<\/h3>\n\n\n\n<ul>\n<li>iOS Push\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 Capabilities \ud56d\ubaa9\uc5d0 Push Notifications\ub97c \ucd94\uac00\ud574 \uc8fc\uc5b4\uc57c \ud55c\ub2e4.<\/li>\n\n\n\n<li>Target -&gt; Signing &amp; Capabilities \uba54\ub274\uc5d0\uc11c + Capabilities \ud56d\ubaa9\uc744 \uc120\ud0dd\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-35 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-20.png\"><img decoding=\"async\" loading=\"lazy\" width=\"695\" height=\"451\" data-id=\"1161\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-20.png\" alt=\"\" class=\"wp-image-1161\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-20.png 695w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-20-300x195.png 300w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8 Push \uc124\uc815(Capabilities)<\/h3>\n\n\n\n<ul>\n<li>\ud31d\uc5c5\uc5d0\uc11c Push Notifications \ud56d\ubaa9\uc744 \uc120\ud0dd\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-37 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-21.png\"><img decoding=\"async\" loading=\"lazy\" width=\"690\" height=\"428\" data-id=\"1162\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-21.png\" alt=\"\" class=\"wp-image-1162\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-21.png 690w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-21-300x186.png 300w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8 Push \uc124\uc815(\uc644\ub8cc)<\/h3>\n\n\n\n<ul>\n<li>Push Notifications \ud56d\ubaa9\uc774 \ucd94\uac00\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>\ud504\ub85c\uc81d\ud2b8\uc774\ub984.entitlements \ud30c\uc77c\uc774 \ucd94\uac00\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-39 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-22.png\"><img decoding=\"async\" loading=\"lazy\" width=\"692\" height=\"449\" data-id=\"1163\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-22.png\" alt=\"\" class=\"wp-image-1163\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-22.png 692w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-22-300x195.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Push \ub77c\uc774\ube0c\ub7ec\ub9ac \ucd08\uae30\ud654<\/h3>\n\n\n\n<ul>\n<li>\uc77c\ubc18\uc801\uc73c\ub85c Appdelegate.m \ud30c\uc77c\uc5d0\uc11c Push \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucd08\uae30\ud654\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p><strong>Case #1.<\/strong> &lt;MPushLibrary\/AppDelegate+PushManager.h&gt;\ub85c \ubc14\ub85c \uc5f0\ub3d9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#import &lt;MPushLibrary\/PushManager.h&gt;\n\/\/ (optional) PushManagerDelegate \ub300\ub9ac\uc790\ub97c \uc124\uc815\ud560 \uacbd\uc6b0\n#import \"PushReceiver.h\"\n\n- (BOOL)application:(UIApplication *)application\n                didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n\n    ...\n\n    &#091;&#091;PushManager defaultManager] application:application\n                                        didFinishLaunchingWithOptions:launchOptions];\n\n    \/\/ (optional) PushManagerDelegate \ub300\ub9ac\uc790\ub97c \uc124\uc815\ud560 \uacbd\uc6b0\n    &#091;&#091;PushManager defaultManager] initilaizeWithDelegate:&#091;&#091;PushReceiver alloc] init]];\n\n    return YES;\n}<\/code><\/pre>\n\n\n\n<p><strong>Case #2.<\/strong> Push Notification \uad00\ub828 UIApplicationDelegate \ub97c \uc9c1\uc811 \uc5f0\ub3d9\ud558\uc5ec \ucc98\ub9ac\ud560 \uacbd\uc6b0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#import &lt;MPushLibrary\/PushManager.h&gt;\n\/\/ (optional) PushManagerDelegate \ub300\ub9ac\uc790\ub97c \uc124\uc815\ud560 \uacbd\uc6b0\n#import \"PushReceiver.h\"\n\n- (BOOL)application:(UIApplication *)application\n                didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n\n    ...\n\n    &#091;&#091;PushManager defaultManager] application:application\n                        didFinishLaunchingWithOptions:launchOptions];\n\n    \/\/ (optional) PushManagerDelegate \ub300\ub9ac\uc790\ub97c \uc124\uc815\ud560 \uacbd\uc6b0\n    &#091;&#091;PushManager defaultManager] initilaizeWithDelegate:&#091;&#091;PushReceiver alloc] init]];\n\n    return YES;\n}\n\n- (void)application:(UIApplication *)application\n                didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];\n}\n\n- (void)application:(UIApplication *)application\n                didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didFailToRegisterForRemoteNotificationsWithError:error];\n}\n\n- (void)application:(UIApplication *)application\n                didReceiveLocalNotification:(UILocalNotification *)notification {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didReceiveLocalNotification:notification];\n}\n\n- (void)application:(UIApplication *)application\n                didReceiveRemoteNotification:(NSDictionary *)userInfo {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didReceiveRemoteNotification:userInfo];\n}\n\n\/*\n \/\/ Background \ubaa8\ub4dc\uc5d0\uc11c \ud638\ucd9c\ud558\ub294 \uacbd\uc6b0\uc5d0 \uc0ac\uc6a9\n- (void)application:(UIApplication *)application\n        didReceiveRemoteNotification:(NSDictionary *)userInfo\n        fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {\n\n        &#091;&#091;PushManager defaultManager] application:application\n                didReceiveRemoteNotification:userInfo\n                fetchCompletionHandler:completionHandler];\n}\n*\/\n\n- (void)application:(UIApplication *)application\n   didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                didRegisterUserNotificationSettings:notificationSettings];\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud504\ub85c\uc81d\ud2b8 \ube4c\ub4dc<\/h2>\n\n\n\n<ul>\n<li>APNS \ud14c\uc2a4\ud2b8\uc758 \uacbd\uc6b0 Simulator\uc5d0\uc11c\ub294 APNS TOKEN\uac12\uc774 \ubc1c\uae09\ub418\uc9c0 \uc54a\uc544 \ud14c\uc2a4\ud2b8\uac00 \ubd88\uac00\ud558\ub2e4.<\/li>\n\n\n\n<li>iOS \ub514\ubc14\uc774\uc2a4 \ube4c\ub4dc\ub97c \uc704\ud574\uc11c\ub294 \uc560\ud50c \uc544\uc774\ub514, \uc778\uc99d\uc11c, \ud504\ub85c\ube44\uc800\ub2dd \ud504\ub85c\ud30c\uc77c \ub4f1\uc774 \ud544\uc694\ud558\ub2e4.<\/li>\n\n\n\n<li>\ucf54\ub4dc \uc11c\uba85 <a href=\"https:\/\/developer.apple.com\/kr\/support\/code-signing\">https:\/\/developer.apple.com\/kr\/support\/code-signing<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ube4c\ub4dc \uc900\ube44<\/h3>\n\n\n\n<ul>\n<li>1\ubc88: \uc778\uc99d\uc11c, \ud504\ub85c\ube44\uc800\ub2dd \ud504\ub85c\ud30c\uc77c\uc744 \uc218\ub3d9\uc73c\ub85c \uc14b\ud305\ud560\uc9c0 \uc790\ub3d9\uc73c\ub85c \uc14b\ud305\ud560\uc9c0 \uc5ec\ubd80\ub97c \uccb4\ud06c<\/li>\n\n\n\n<li>2\ubc88: Team\uc744 \uc120\ud0dd\ud558\uae30 \uc704\ud574\uc11c\ub294 Preferences \uba54\ub274\uc5d0 Apple ID\uac00 \ub4f1\ub85d\ub418\uc5b4 \uc788\uc5b4\uc57c \ud55c\ub2e4.<\/li>\n\n\n\n<li>3\ubc88: \ube4c\ub4dc\ub97c \uc704\ud55c \uc14b\ud305 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uba74 \uad00\ub828 \uc624\ub958 \uba54\uc2dc\uc9c0\uac00 \ud45c\uae30\ub41c\ub2e4.<\/li>\n\n\n\n<li>4\ubc88: Xcode -&gt; Preferences \uba54\ub274\ub97c \uc120\ud0dd\ud558\uc5ec Apple ID\ub97c \ucd94\uac00\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-41 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-23.png\"><img decoding=\"async\" loading=\"lazy\" width=\"692\" height=\"432\" data-id=\"1164\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-23.png\" alt=\"\" class=\"wp-image-1164\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-23.png 692w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-23-300x187.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Apple ID \uc5f0\ub3d9<\/h3>\n\n\n\n<ul>\n<li>\uc560\ud50c \uac1c\ubc1c\uc790\uc0ac\uc774\ud2b8\uc5d0 \ub4f1\ub85d\ub418\uc5b4 \uc788\ub294 Apple ID\ub97c XCode\uc640 \uc5f0\ub3d9\ud558\ub294 \uacfc\uc815\uc774\ub2e4.<\/li>\n\n\n\n<li>1\ubc88: Accounts\uba54\ub274\ub97c \uc120\ud0dd\ud558\uba74 \ub4f1\ub85d\ub418\uc5b4 \uc788\ub294 \uacc4\uc815 \ub4f1\uc758 \uc815\ubcf4 \ud655\uc778\uc774 \uac00\ub2a5\ud558\ub2e4.<\/li>\n\n\n\n<li>2\ubc88 +\ubc84\ud2bc\uc744 \ub204\ub974\uace0 3\ubc88 Apple ID\ub97c \uc120\ud0dd\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-43 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-24.png\"><img decoding=\"async\" loading=\"lazy\" width=\"697\" height=\"436\" data-id=\"1165\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-24.png\" alt=\"\" class=\"wp-image-1165\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-24.png 697w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-24-300x188.png 300w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Apple ID \uc5f0\ub3d9 (\uacc4\uc815 \uc785\ub825)<\/h3>\n\n\n\n<ul>\n<li>Apple ID \uc640 Password\ub97c \uc785\ub825\ud558\uace0 Next\ub97c \ub20c\ub7ec \uacc4\uc815\uc744 \ucd94\uac00\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-45 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-25.png\"><img decoding=\"async\" loading=\"lazy\" width=\"695\" height=\"434\" data-id=\"1166\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-25.png\" alt=\"\" class=\"wp-image-1166\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-25.png 695w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-25-300x187.png 300w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Apple ID \uc5f0\ub3d9 (\uc644\ub8cc)<\/h3>\n\n\n\n<ul>\n<li>1\ubc88: \uc120\ud0dd\ub41c \uacc4\uc815\uc5d0 \uc0dd\uc131\ub418\uc5b4 \uc788\ub294 \ud504\ub85c\ube44\uc800\ub2dd \ud504\ub85c\ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud55c\ub2e4.<\/li>\n\n\n\n<li>2\ubc88: \uc120\ud0dd\ub41c \uacc4\uc815\uc5d0 \uc778\uc99d\uc11c\ub97c \uc0dd\uc131 \ud3b8\uc9d1 \ub4f1\uc744 \ud560 \uc218 \uc788\ub294 \ud3b8\uc9d1 \ucc3d\uc744 \ub744\uc6b4\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-47 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-27.png\"><img decoding=\"async\" loading=\"lazy\" width=\"695\" height=\"434\" data-id=\"1168\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-27.png\" alt=\"\" class=\"wp-image-1168\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-27.png 695w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-27-300x187.png 300w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Automatically Manage signing<\/h3>\n\n\n\n<ul>\n<li>\ub4f1\ub85d\ub418\uc5b4 \uc788\ub294 Apple ID\ub97c \uae30\uc900\uc73c\ub85c Team\uc744 \uc120\ud0dd\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>\ube4c\ub4dc \uc14b\ud305 \uad00\ub828 \uc624\ub958 \uba54\uc2dc\uc9c0\uac00 \uc0ac\ub77c\uc9c0\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \uc5f0\uacb0\ub41c \ub2e8\ub9d0\uae30\uc5d0 \ube4c\ub4dc\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-49 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-28.png\"><img decoding=\"async\" loading=\"lazy\" width=\"700\" height=\"438\" data-id=\"1169\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-28.png\" alt=\"\" class=\"wp-image-1169\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-28.png 700w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-28-300x188.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Manually Manage signing<\/h3>\n\n\n\n<ul>\n<li>Automatically Manage signing\uc744 \ud574\uc81c\ud558\uba74 \ub9e5\uc5d0 \uc124\uce58\ub418\uc5b4 \uc788\ub294 \uc778\uc99d\uc11c, \ud504\ub85c\ube44\uc800\ub2dd \ud504\ub85c\ud30c\uc77c \uae30\uc900\uc73c\ub85c \uc124\uc815\ud560 \uc218 \uc788\ub2e4<\/li>\n\n\n\n<li>Provisioning Profile \uc5d0\uc11c \uc124\uce58\ub41c \ud504\ub85c\ube44\uc800\ub2dd \ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-51 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-29.png\"><img decoding=\"async\" loading=\"lazy\" width=\"697\" height=\"436\" data-id=\"1170\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-29.png\" alt=\"\" class=\"wp-image-1170\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-29.png 697w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-29-300x188.png 300w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Signing \uba54\ub274<\/h3>\n\n\n\n<ul>\n<li>\ud504\ub85c\uc81d\ud2b8 -&gt; Target -&gt;  Build Settings\uc5d0\uc11c Signing \uba54\ub274\uc5d0\uc11c signing\uc5d0 \ub300\ud55c \uc124\uc815\uc744 \ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-53 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-30.png\"><img decoding=\"async\" loading=\"lazy\" width=\"692\" height=\"433\" data-id=\"1171\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-30.png\" alt=\"\" class=\"wp-image-1171\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-30.png 692w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-30-300x188.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ub85c\uadf8 \ubcf4\uae30<\/h3>\n\n\n\n<ul>\n<li>\ucf54\ub4dc \uc11c\uba85\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc900\ube44\uac00 \ub418\uba74 \uc5f0\uacb0\ub41c Target Device\ub97c \uc120\ud0dd\ud55c\ub2e4.<\/li>\n\n\n\n<li>run \ubc84\ud2bc\uc744 \ub204\ub974\uba74 \ud558\ub2e8 \ucc3d\uc774 \ud65c\uc0c1\ud654\ub418\uace0 \ud558\ub2e8 \ucc3d\uc774 \uc5f4\ub9ac\uc9c0 \uc54a\uc744 \uacbd\uc6b0 3\ubc88 \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ud65c\uc131\ud654\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li>\ud558\ub2e8 \ucc3d\uc758 \ub85c\uadf8\uac00 \ubcf4\uc774\uc9c0 \uc54a\uc744 \uacbd\uc6b0 4\ubc88\uc774 \ube44\ud65c\uc131\ud654 \ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778<\/li>\n\n\n\n<li>Manifest.xml \ud30c\uc77c\uc5d0\uc11c log\uac00 y\ub85c \ub418\uc5b4 \uc788\uc744 \uacbd\uc6b0\uc5d0\ub9cc Push \uad00\ub828 \ub85c\uadf8\uac00 \ud45c\uae30<\/li>\n\n\n\n<li>Push \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc815\uc0c1\uc801\uc73c\ub85c \ucd08\uae30\ud654\uac00 \ub418\uba74 \ud654\uba74\uacfc \uac19\uc740 \ub85c\uadf8\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-55 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-31.png\"><img decoding=\"async\" loading=\"lazy\" width=\"690\" height=\"447\" data-id=\"1172\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-31.png\" alt=\"\" class=\"wp-image-1172\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-31.png 690w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-31-300x194.png 300w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">APNS_MODE<\/h3>\n\n\n\n<ul>\n<li>APNS_MODE\ub294 \uc11c\ubc84\uc5d0\uc11c \uba54\uc2dc\uc9c0 \ubc1c\uc1a1 \uc2dc APNS\uc11c\ubc84\ub97c TEST\ub85c \ubc1c\uc1a1\ud560\uc9c0 REAL\ub85c \ubc1c\uc1a1\ud560\uc9c0\uc5d0 \ub300\ud55c \uc5ec\ubd80 \uac12\uc774 \ub41c\ub2e4.<\/li>\n\n\n\n<li>APNS_MODE\uac12\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc744 \uacbd\uc6b0 \uba54\uc2dc\uc9c0 \ubc1c\uc1a1 \uc2dc Bad Device Token\uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/li>\n\n\n\n<li>RegisterServiceAndUser API\ud638\ucd9c\uc2dc \uc11c\ubc84\uc5d0 \ud574\ub2f9 \uac12\uc744 \uc804\ub2ec\ud55c\ub2e4.<\/li>\n\n\n\n<li><strong>Push \ub77c\uc774\ube0c\ub7ec\ub9ac \ucd08\uae30\ud654 \uc2dc \uac12\uc774 \uc124\uc815\ub418\uba70 default \uac12\uc740 REAL<\/strong>\n<ul>\n<li>(5.0.4 \ubc84\uc804 \uc774\uc0c1 \uc2dc mobile provision \uac12\uc744 \uccb4\ud06c\ud558\uc5ec \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c \ucd08\uae30\ud654)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uac1c\ubc1c\uc6a9 \uc778\uc99d\uc11c\ub85c \uc571\uc744 \ube4c\ub4dc \uc2dc APNS TOKEN\uac12\uc740 TEST\ud1a0\ud070\uac12\uc774\ubbc0\ub85c DEV\uc124\uc815 \ud544\uc694\ud558\ub2e4.<\/li>\n\n\n\n<li>[[PushManager defaultManager].info changeMode:@\u201dDEV\u201d];<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-57 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-32.png\"><img decoding=\"async\" loading=\"lazy\" width=\"697\" height=\"452\" data-id=\"1173\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-32.png\" alt=\"\" class=\"wp-image-1173\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-32.png 697w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-32-300x195.png 300w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Push Service \uc5f0\ub3d9<\/h2>\n\n\n\n<p>Push Notification \uad00\ub828 UIApplicationDelegate \ub97c \uc9c1\uc811 \uc5f0\ub3d9\ud558\ub294 \uacbd\uc6b0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#import &lt;MPushLibrary\/PushManager.h&gt;\n\n- (BOOL)application:(UIApplication *)application\n                didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n\n    ...\n\n    &#091;&#091;PushManager defaultManager] application:application\n                        didFinishLaunchingWithOptions:launchOptions];\n\n    return YES;\n}\n\n- (void)application:(UIApplication *)application\n                didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];\n}\n\n- (void)application:(UIApplication *)application\n                didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didFailToRegisterForRemoteNotificationsWithError:error];\n}\n\n- (void)application:(UIApplication *)application\n                didReceiveLocalNotification:(UILocalNotification *)notification {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didReceiveLocalNotification:notification];\n}\n\n- (void)application:(UIApplication *)application\n                didReceiveRemoteNotification:(NSDictionary *)userInfo {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                            didReceiveRemoteNotification:userInfo];\n}\n\n\/*\n \/\/ Background \ubaa8\ub4dc\uc5d0\uc11c \ud638\ucd9c\ud558\ub294 \uacbd\uc6b0\uc5d0 \uc0ac\uc6a9\n- (void)application:(UIApplication *)application\n        didReceiveRemoteNotification:(NSDictionary *)userInfo\n        fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {\n\n        &#091;&#091;PushManager defaultManager] application:application\n                didReceiveRemoteNotification:userInfo\n                fetchCompletionHandler:completionHandler];\n}\n*\/\n\n- (void)application:(UIApplication *)application\n   didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {\n\n    &#091;&#091;PushManager defaultManager] application:application\n                didRegisterUserNotificationSettings:notificationSettings];\n}<\/code><\/pre>\n\n\n\n<p>&lt;MPushLibrary\/AppDelegate+PushManager.h&gt; \ub85c \ubc14\ub85c \uc5f0\ub3d9\ud558\ub294 \uacbd\uc6b0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#import &lt;MPushLibrary\/PushManager.h&gt;\n#import &lt;MPushLibrary\/AppDelegate+PushManager.h&gt;\n\n- (BOOL)application:(UIApplication *)application\n                didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n\n    ...\n\n    &#091;&#091;PushManager defaultManager] application:application\n                                        didFinishLaunchingWithOptions:launchOptions];\n\n    return YES;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Push APIs<\/h2>\n\n\n\n<p>Initialize with delegate<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code><strong>&#091;&#091;PushManager defaultManager] initializeWithDelegate:delegate];<\/strong><\/code><\/pre>\n\n\n\n<ul>\n<li>Push Manager \ub97c \uc2dc\uc791\ud558\uba74\uc11c delegate(\ub300\ub9ac\uc790) \uc744 \ub4f1\ub85d<\/li>\n\n\n\n<li>\ub4f1\ub85d\ub41c delegate \uc744 \ud1b5\ud574 message \uc218\uc2e0 \ub4f1 push \uc640 \uad00\ub828\ub41c business logic controller \uc5ed\ud560\uc744 \ub300\ud589<\/li>\n\n\n\n<li>delegate \uc774 \ub4f1\ub85d\ub418\uc9c0 \uc54a\uc73c\uba74 \uc571\uc774 \uc2dc\uc791\ub418\uba74\uc11c \uc804\ub2ec\ubc1b\uc740 push message \ub4e4\uc740 \uc790\ub3d9\uc73c\ub85c \uc9c0\uc5f0 \uc804\ub2ec\ub428<\/li>\n<\/ul>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>delegate<\/strong> (<em>id&lt;PushManagerDelegate&gt;<\/em>) \u2013 delegate \uac12, NotNull<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Register Service and User<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code><strong>&#091;&#091;PushManager defaultManager] registerServiceAndUser:activity, clientUID:@\"CUID\" clientName:@\"CNAME\" completionHandler:^(BOOL success) {}];<\/strong><\/code><\/pre>\n\n\n\n<ul>\n<li>Client ID\uc640 Client Name\uc73c\ub85c \uc11c\ube44\uc2a4 \ub4f1\ub85d \ubc0f \uc0ac\uc6a9\uc790 \ub4f1\ub85d\uc744 \uc9c4\ud589<\/li>\n<\/ul>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>activity<\/strong> (<em>UIViewController<\/em>) \u2013 \ud638\ucd9c\ud558\ub294 \ud654\uba74 \uc804\ub2ec, NotNull<\/li>\n\n\n\n<li><strong>clientUID<\/strong> (<em>NSString<\/em>) \u2013 <a href=\"https:\/\/clouddocs.morpheus.co.kr\/client\/sdk\/iOS.html\">Client ID<\/a> \uac12, NotNull, <strong><span style=\"text-decoration: underline\">(\uc0ac\uc6a9\uac00\ub2a5 \ubb38\uc790 : \uc54c\ud30c\ubcb3, \uc22b\uc790)<\/span><\/strong><\/li>\n\n\n\n<li><strong>clientName<\/strong> (<em>NSString<\/em>) \u2013 <a href=\"https:\/\/clouddocs.morpheus.co.kr\/client\/sdk\/iOS.html\">Client Name<\/a> \uac12, NotNull<\/li>\n\n\n\n<li><strong>completionHandler<\/strong> (<em>BlockHandler<\/em>) \u2013 User \ub4f1\ub85d \uc644\ub8cc \ud6c4 \ud638\ucd9c, Nullable<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Unregister Service<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code><strong>&#091;&#091;PushManager defaultManager] unregisterService:activity completionHandler:^(BOOL success) {}];<\/strong><\/code><\/pre>\n\n\n\n<ul>\n<li>\uc11c\ube44\uc2a4 \ud574\uc81c<\/li>\n<\/ul>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>activity<\/strong> (<em>UIViewController<\/em>) \u2013 \ud638\ucd9c\ud558\ub294 \ud654\uba74 \uc804\ub2ec, NotNull<\/li>\n\n\n\n<li><strong>completionHandler<\/strong> (<em>BlockHandler<\/em>) \u2013 Service \ud574\uc81c \uc644\ub8cc \ud6c4 \ud638\ucd9c, Nullable<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Read Message<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code><strong>&#091;&#091;PushManager defaultManager] read:activity notification:userInfo completionHandler:^(BOOL success) {}];<\/strong><\/code><\/pre>\n\n\n\n<ul>\n<li>\uc77d\uc74c \ud655\uc778 \uc815\ubcf4\ub97c \uc11c\ubc84\uc5d0 \uc804\uc1a1<\/li>\n\n\n\n<li>didReceiveRemoteNotification: \ub85c \uc804\ub2ec\ub41c userInfo \ub97c \uadf8\ub300\ub85c \uc804\ub2ec<\/li>\n<\/ul>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>activity<\/strong> (<em>UIViewController<\/em>) \u2013 \ud638\ucd9c\ud558\ub294 \ud654\uba74 \uc804\ub2ec, NotNull<\/li>\n\n\n\n<li><strong>userInfo<\/strong> (<em>NSDictionary<\/em>) \u2013 \uc218\uc2e0\ub41c Notification \ub370\uc774\ud0c0, NotNull<\/li>\n\n\n\n<li><strong>completionHandler<\/strong> (<em>BlockHandler<\/em>) \u2013 Service \ud574\uc81c \uc644\ub8cc \ud6c4 \ud638\ucd9c, Nullable<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;&#091;PushManager defaultManager]\n        read:activity notification:userInfo\n        badgeOption:PushManagerBadgeOptionKeep\n        completionHandler:^(BOOL success) {\n\n}];<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">PushManager Delegate<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">PushStatus<\/h3>\n\n\n\n<ul>\n<li>Push Message \uac00 \ubc1c\uc1a1\ub41c \uc0c1\ud0dc\uac12<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Constant<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>START<\/td><td>Push Message \ub85c \uc571\uc744 \uc2dc\uc791\ud55c \uacbd\uc6b0<\/td><\/tr><tr><td>ACTIVE<\/td><td>Application Forground Status \uc5d0\uc11c Push Message \ub97c \ubc1b\uc740 \uacbd\uc6b0<\/td><\/tr><tr><td>BACKGROUND<\/td><td>Application Background Status \uc5d0\uc11c Push Message \uac00 \uc804\ub2ec\ub41c \uacbd\uc6b0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Delegate \uc124\uc815<\/h3>\n\n\n\n<ul>\n<li>Push Message \uc218\uc2e0\uc744 \ub300\ud589\ud558\ub294 \ub300\ub9ac\uc790\ub97c \ub4f1\ub85d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code><strong>- (void)initilaizeWithDelegate:(id &lt;PushManagerDelegate&gt;)delegate {}<\/strong><\/code><\/pre>\n\n\n\n<ul>\n<li>\uc11c\ube44\uc2a4 \ud574\uc81c<\/li>\n<\/ul>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>delegate<\/strong> (<em>PushManagerDelegate<\/em>) \u2013 PushManager \uc758 \uc5ed\ud560\uc744 \ub300\ud589\ud560 \ub300\ub9ac\uc790 \ub4f1\ub85d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;&#091;PushManager defaultManager] initializeWithDelegate:self];<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Push Message \uc218\uc2e0 \ucc98\ub9ac<\/h3>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code><strong>- (void)manager:(PushManager *)manager didReceiveUserNotification:(NSDictionary *)userInfo<\/strong>\n\n<strong>\nstatus:(NSString *)status messageUID:(NSString *)messageUID {}<\/strong><\/code><\/pre>\n\n\n\n<ul>\n<li>\uc11c\ube44\uc2a4 \ud574\uc81c<\/li>\n<\/ul>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>manager<\/strong> (<em>PushManager<\/em>) \u2013 PushManager Instance, NotNull<\/li>\n\n\n\n<li><strong>userInfo<\/strong> (<em>NSDictionary<\/em>) \u2013 \uc218\uc2e0\ub41c Notification \ub370\uc774\ud0c0, NotNull<\/li>\n\n\n\n<li><strong>status<\/strong> (<a href=\"https:\/\/clouddocs.morpheus.co.kr\/client\/api\/ios_api.html\">PushStatus<\/a>) \u2013 \uc218\uc2e0\ub41c Notification \uc758 \uc0c1\ud0dc, NotNull<\/li>\n\n\n\n<li><strong>messageUUID<\/strong> (<em>NSString<\/em>) \u2013 \uc571\uc5d0\uc11c \ubd80\uc5ec\ud55c \uc218\uc2e0\ub41c \uba54\uc138\uc9c0\uc758 \uace0\uc720 ID, NotNull<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>- (void)manager:(PushManager *)manager didReceiveUserNotification:(NSDictionary *)userInfo status:(NSString *)status messageUID:(NSString *)messageUID {\n\n        PushManager *manager = &#091;PushManager defaultManager];\n\n        NSDictionary *apsInfo = &#091;userInfo objectForKey:@\"aps\"];\n\n        \/\/ \uc77d\uc74c \ud655\uc778\n        &#091;manager read:self notification:notification.userInfo completionHandler:^(BOOL success) {\n                NSString *message = ( ! success ) ? @\"Confirming Read-Message is FAIL !!\" : @\"Confirming Read-Message is SUCCESS !!\";\n                NSLog( @\"%@\", message );\n        }];\n\n        \/\/ \uc54c\ub9bc \uba54\uc138\uc9c0\n        NSString *title = &#091;NSString stringWithFormat:@\"PUSH (%@)\", status];\n        NSString *message = &#091;apsInfo objectForKey:@\"alert\"];\n\n        if ( NSClassFromString(@\"UIAlertController\") ) {\n                UIAlertController *alert = &#091;UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];\n\n                &#091;alert addAction:&#091;UIAlertAction actionWithTitle:@\"\ucde8\uc18c\" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {\n\n                }]];\n\n                &#091;alert addAction:&#091;UIAlertAction actionWithTitle:@\"\ud655\uc778\" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {\n\n                }]];\n\n                UIViewController *viewController = &#091;&#091;UIApplication sharedApplication] keyWindow].rootViewController;\n\n                if ( viewController.presentedViewController ) {\n                        viewController = viewController.presentedViewController;\n                }\n\n                &#091;viewController presentViewController:alert animated:YES completion:^{\n\n                }];\n        }\n        else {\n                UIAlertView *alert = &#091;&#091;UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@\"\ucde8\uc18c\" otherButtonTitles:@\"\ud655\uc778\", nil];\n\n                &#091;alert show];\n        }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Push Payload<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Payload \ud56d\ubaa9<\/h3>\n\n\n\n<ul>\n<li>JSONObject key \uac12\uc5d0 \ub300\ud55c \uc124\uba85 [key\uac00 \uc18c\ubb38\uc790\uc784]<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Key<\/strong><\/td><td><strong>\ud65c\uc6a9\ubc29\ubc95<\/strong><\/td><\/tr><tr><td>alert<\/td><td>\ud478\uc2dc \uba54\uc2dc\uc9c0 \uc81c\ubaa9(\uc635\uc158)\uacfc \uba54\uc2dc\uc9c0 \ub0b4\uc6a9\uc774 JSON \ud615\uc2dd\uc73c\ub85c \uc804\ub2ec\ub428<\/td><\/tr><tr><td>ext<\/td><td>\ud478\uc2dc \uba54\uc2dc\uc9c0 \uc678\uc5d0 \ucd94\uac00\uc801\uc778 \uc138\ubd80 \uc815\ubcf4\ub97c \uc804\ub2ec<\/td><\/tr><tr><td>pushkey<\/td><td>public push\uc758 \ud1a0\ud070 \uc720\ud6a8\uc131\uc744 \uc704\ud574 \uad00\ub9ac\ub418\ub294 \ud0a4 (\uc11c\ubc84\uad00\uc810)<\/td><\/tr><tr><td>seqno<\/td><td>Push message\uc758 \uace0\uc720 \ud0a4\uac12<\/td><\/tr><tr><td>appid<\/td><td>Push \uc11c\ube44\uc2a4\uac00 \uad00\ub9ac\ub418\ub294 \uc571 ID ( <a href=\"https:\/\/clouddocs.morpheus.co.kr\/client\/api\/ios_api.html\">Application ID<\/a>)<\/td><\/tr><tr><td>sender<\/td><td>\ubc1c\uc1a1\uc790 \ucf54\ub4dc (\uc11c\ubc84\uad00\uc810)<\/td><\/tr><tr><td>senddate<\/td><td>\ubc1c\uc1a1\ub41c \uc2dc\uac04 (\uc11c\ubc84\uad00\uc810)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Payload \uc608\uc2dc<\/h3>\n\n\n\n<ul>\n<li>\uc77c\ubc18(text) push \uba54\uc2dc\uc9c0 \uc608\uc2dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n   \"aps\":{\n      \"badge\":\"0\",\n      \"sound\":\"alert.aif\",\n      \"alert\":\"{\\\"title\\\":\\\"\uba54\uc2dc\uc9c0 \ud14c\uc2a4\ud2b8\\\",\\\"body\\\":\\\"\uc77c\ubc18 \uba54\uc2dc\uc9c0 \ud14c\uc2a4\ud2b8\uc785\ub2c8\ub2e4.\\\"}\"\n   },\n   \"mps\":{\n      \"appid\":\"LGU-SAMPLEAPP-00001\",\n      \"ext\":\"{}\",\n      \"seqno\":\"LtFCtmX1PI.6cJtPW\",\n      \"sender\":\"LGUR_cm-push-provider-ad-1_AD|E\",\n      \"senddate\":\"2022-06-13 09:52:28\",\n      \"db_in\":\"N\",\n      \"pushkey\":\"2427efdf1b62cd9dbdf174bbdff048f8051461e1\"\n   }\n}<\/code><\/pre>\n\n\n\n<ul>\n<li>\uc774\ubbf8\uc9c0 push \uba54\uc2dc\uc9c0 \uc608\uc2dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n   \"aps\":{\n      \"badge\":\"17\",\n      \"sound\":\"alert.aif\",\n      \"alert\":\"{\\\"title\\\":\\\"\uc774\ubbf8\uc9c0 \ud14c\uc2a4\ud2b8\\\",\\\"body\\\":\\\"\uc774\ubbf8\uc9c0\ub97c \ud3ec\ud568\ud55c \uba54\uc2dc\uc9c0 \ud14c\uc2a4\ud2b8\uc785\ub2c8\ub2e4.\\\"}\"\n   },\n   \"mps\":{\n      \"appid\":\" LGU-SAMPLEAPP-00001\",\n      \"ext\":\"{\\\"imageUrl\\\":\\\"https:\\\/\\\/df25hb5tuwkue.cloudfront.net\\\/push\\\/abc\"}\",\n      \"seqno\":\"4YslPTW9Lv.6cJtPY\",\n      \"sender\":\" LGUR_cm-push-provider-ad-1_AD|E \",\n      \"senddate\":\"2022-06-13 09:54:01\",\n      \"db_in\":\"N\",\n      \"pushkey\":\"2427efdf1b62cd9dbdf174bbdff048f805146132\"\n   }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Muable-Content\ub97c \uc774\uc6a9\ud55c \uc218\uc2e0 \ud655\uc778<\/h2>\n\n\n\n<ul>\n<li>\uc571\uc774 Background \ub610\ub294 \uc885\ub8cc \uc0c1\ud0dc\uc77c \uacbd\uc6b0\uc5d0 Push Message\uac00 mutable-content:1 \ud0c0\uc785\uc73c\ub85c \uc62c \uacbd\uc6b0 Notification Service Extention\uc5d0\uc11c \uba54\uc2dc\uc9c0\ub97c \uc6b0\uc120 \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li><strong>iOS 10 \uc774\uc0c1<\/strong> \ub2e8\ub9d0\uae30\uc5d0\uc11c\ub9cc \uc0ac\uc6a9 \uac00\ub2a5<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Notification Service Extention<\/h3>\n\n\n\n<p> 1. File -&gt; New -&gt; Target \uc120\ud0dd<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-59 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-34.png\"><img decoding=\"async\" loading=\"lazy\" width=\"673\" height=\"441\" data-id=\"1176\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-34.png\" alt=\"\" class=\"wp-image-1176\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-34.png 673w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-34-300x197.png 300w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>2. Notification Service Extention \uc120\ud0dd<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-61 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-35.png\"><img decoding=\"async\" loading=\"lazy\" width=\"700\" height=\"458\" data-id=\"1177\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-35.png\" alt=\"\" class=\"wp-image-1177\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-35.png 700w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-35-300x196.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>3. Product Name\uc744 \uc790\uc720\ub86d\uac8c \uc124\uc815<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-63 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-36.png\"><img decoding=\"async\" loading=\"lazy\" width=\"696\" height=\"454\" data-id=\"1178\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-36.png\" alt=\"\" class=\"wp-image-1178\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-36.png 696w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-36-300x196.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>4. Activate\ub97c \uc120\ud0dd\ud558\uba74 Notification Service Extention Target \ud56d\ubaa9\uc774 \ucd94\uac00<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-65 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-37.png\"><img decoding=\"async\" loading=\"lazy\" width=\"693\" height=\"451\" data-id=\"1179\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-37.png\" alt=\"\" class=\"wp-image-1179\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-37.png 693w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-37-300x195.png 300w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>5. \ucd94\uac00\ub41c NotificationService.m \ud30c\uc77c\uc5d0 Push \uad00\ub828 \ucc98\ub9ac<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-67 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-38.png\"><img decoding=\"async\" loading=\"lazy\" width=\"686\" height=\"449\" data-id=\"1180\" src=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-38.png\" alt=\"\" class=\"wp-image-1180\" srcset=\"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-38.png 686w, https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-content\/uploads\/sites\/2\/2022\/08\/image-38-300x196.png 300w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">NotificationService.m \ud30c\uc77c\uc5d0\uc11c\uc758 \uc218\uc2e0 \ud655\uc778<\/h3>\n\n\n\n<ol>\n<li>Push \uad00\ub828 \ub77c\uc774\ube0c\ub7ec\ub9ac \ud30c\uc77c\ub4e4 Target Membership\uc5d0 NotificationService \ud0c0\ucf13 \ucd94\uac00<\/li>\n\n\n\n<li>#import &lt;MPushLibrary\/MPushLibrary.h&gt; \ucd94\uac00<\/li>\n\n\n\n<li>didReceiveNotificationRequest \uba54\uc11c\ub4dc \ub0b4\uc5d0 feedback \uba54\uc11c\ub4dc \ucd94\uac00<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ NotificationService \ucabd\uc5d0\uc11c \uba54\uc2dc\uc9c0 \uc218\uc2e0\uc2dc \ub4e4\uc5b4\uc624\ub294 \uc774\ubca4\ud2b8\n- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {\n    self.contentHandler = contentHandler;\n    self.bestAttemptContent = &#091;request.content mutableCopy];\n\n    \/\/PushManager \ucd08\uae30\ud654\n    PushManager *manager = &#091;PushManager defaultManager];\n\n    \/\/Keychain Sharing\uc744 \ud1b5\ud574 feedback\uc2dc \ud544\uc694\ud55c \uc815\ubcf4\ub97c \ud68d\ub4dd\n    \/\/\ud0a4\uccb4\uc778 \uacf5\uc720 \uc678\uc5d0\ub3c4 \uc571\uadf8\ub8f9\ub4f1\uc744 \ud1b5\ud55c \ubc29\ubc95\uc73c\ub85c\ub3c4 \uacf5\uc720\uac00 \uac00\ub2a5 (app\uacfc extension \uc0ac\uc774\uc5d0 \ub370\uc774\ud130 \uacf5\uc720)\n    NSString *app_identifier = &#091;NSString stringWithFormat:@\"%@.pushDic\", @\"com.uracle.push.demo.NotificationService\"];\n    NSDictionary *pushDic = &#091;KeychainController loadValueForKey:app_identifier forAccessGroup:@\"com.uracle.push.demo.NotificationService\"];\n\n    \/\/\uad00\ub828\uc815\ubcf4\uac00 \uc5c6\uc744 \uacbd\uc6b0\uc5d0\ub294 feedback\ucc98\ub9ac \uc5c6\uc774 \uc644\ub8cc\n    if(pushDic == nil)\n    {\n        self.contentHandler(self.bestAttemptContent);\n        return;\n    }\n    else\n    {\n        \/\/\ub370\uc774\ud130 \uacf5\uc720\uc2dc\uc758 \uac12\uc758 \uc815\ubcf4 \ucd9c\ucc98 \uc0d8\ud50c\n        \/\/&#091;pushDic setObject:&#091;PushManager defaultManager].info.clientUID forKey:@\"cuid\"];\n        \/\/&#091;pushDic setObject:&#091;PushManager defaultManager].info.pushServiceID forKey:@\"psid\"];\n        \/\/&#091;pushDic setObject:&#091;PushManager defaultManager].info.host forKey:@\"host\"];\n\n        NSString *cuid = &#091;pushDic objectForKey:@\"cuid\"];\n        NSString *psid = &#091;pushDic objectForKey:@\"psid\"];\n        NSString *host = &#091;pushDic objectForKey:@\"host\"];\n\n        if(host)\n        {\n            \/\/\uc11c\ubc84 \ud638\uc2a4\ud2b8 \uc815\ubcf4\ub97c \uc14b\ud305\n            &#091;manager.info changeHost:host];\n        }\n        if(cuid &amp;&amp; psid)\n        {\n            \/\/feedback API \ud638\ucd9c\n            \/\/push\uba54\uc2dc\uc9c0 \uac1d\uccb4\uc640 cuid, psid\uac12\uc774 \ud544\uc694\n            &#091;manager feedback:self notification:self.bestAttemptContent.userInfo clientUID:cuid psID:psid completionHandler:^(BOOL success) {\n                \/\/\uc571\uc5d0\uc11c \uc911\ubcf5\uc73c\ub85c feedback\ucc98\ub9ac\ub97c \ud558\uc9c0 \uc54a\ub3c4\ub85d \uba54\uc2dc\uc9c0 \uac1d\uccb4\uc5d0 feedback \uc815\ubcf4\uc5d0 \ub300\ud55c \uac12\uc744 \uc14b\ud305\ud6c4 \uc804\ub2ec\n                NSMutableDictionary *userInfo = &#091;self.bestAttemptContent.userInfo mutableCopy];\n                &#091;userInfo setObject:@\"true\" forKey:@\"feedback\"];\n                self.bestAttemptContent.userInfo = userInfo;\n\n                self.contentHandler(self.bestAttemptContent);\n            }];\n        }\n        else\n        {\n            self.contentHandler(self.bestAttemptContent);\n        }\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\uac1c\uc694 Morpheus Push\ub294 \uc2a4\ub9c8\ud2b8\ud3f0 OS\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 PNS(Push Notification Server)\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uba54\uc2dc\uc9c0 \uc804\uc1a1 \ud50c\ub7ab\ud3fc\uc774\ub2e4. iOS Client \uc5d0\uc11c\ub294 UPMC WAS \uc5d0\uc11c \uc81c\uacf5\ud558\ub294 Push API \ub97c \uac01\uac01 \ubc84\uc804 \uaddc\uaca9\uc5d0 \ub9de\ucdb0 \uc5f0\ub3d9\ud558\uc5ec \uc6d0\ud65c\ud558\uac8c Push Service \ub97c \uc6b4\uc601\ud558\uae30 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc81c\uacf5\ud55c\ub2e4. iOS\uac1c\ubc1c \uc0d8\ud50c\uc740 https:\/\/total-msg-hub.github.io\/pushiOS_sample\/ \ub97c \ucc38\uc870\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. \uc6a9\uc5b4 APNS UPMC Service \ub4f1\ub85d Service \ud574\uc81c User \ub4f1\ub85d ServiceAndUser \ub4f1\ub85d \uc218\uc2e0 [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}}},"doc_category":[32],"doc_tag":[],"_links":{"self":[{"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/docs\/1142"}],"collection":[{"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/comments?post=1142"}],"version-history":[{"count":16,"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/docs\/1142\/revisions"}],"predecessor-version":[{"id":3667,"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/docs\/1142\/revisions\/3667"}],"wp:attachment":[{"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/media?parent=1142"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/doc_category?post=1142"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/doc.msghub.uplus.co.kr\/guide\/wp-json\/wp\/v2\/doc_tag?post=1142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}