<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코우지의 개발일기</title>
    <link>https://kouzi-dev.tistory.com/</link>
    <description>코린이의 개발 일기</description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 23:18:37 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Kouzi</managingEditor>
    <image>
      <title>코우지의 개발일기</title>
      <url>https://tistory1.daumcdn.net/tistory/6233456/attach/56dbb763704443799129dd3ae0965b6c</url>
      <link>https://kouzi-dev.tistory.com</link>
    </image>
    <item>
      <title>[iOS/Swift] Home Screen Static / Dynamic Quick Action (홈 스크린 퀵 액션) 만들기</title>
      <link>https://kouzi-dev.tistory.com/3</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요!&amp;nbsp;&lt;br&gt;오늘은 Home&amp;nbsp;Screen&amp;nbsp;Static&amp;nbsp;/&amp;nbsp;Dynamic&amp;nbsp;Quick&amp;nbsp;Actions&amp;nbsp;(홈&amp;nbsp;스크린&amp;nbsp;퀵&amp;nbsp;액션)&amp;nbsp; 을 만들어 보려고 합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;아이폰 6s 이후로 햅틱 터치가 생기면서 나온 기능인데요.&lt;br&gt;홈 스크린에서 앱 아이콘을 꾹 누르면 뜨는 바로 이런 동작 다들 아시죠 ?&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lFylh/btr8LgOFXNl/CCbeH2SczZH7FpCrllfer0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lFylh/btr8LgOFXNl/CCbeH2SczZH7FpCrllfer0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lFylh/btr8LgOFXNl/CCbeH2SczZH7FpCrllfer0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlFylh%2Fbtr8LgOFXNl%2FCCbeH2SczZH7FpCrllfer0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;638&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요걸 만들어 볼건데요 !&amp;nbsp;&lt;br&gt;일단 애플 공식문서 링크입니다&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;a href=&quot;https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Add Home Screen Quick Actions | Apple Developer Documentation&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Expose commonly used functionality with static or dynamic 3D Touch Home Screen quick actions.&quot; data-og-host=&quot;developer.apple.com&quot; data-og-source-url=&quot;https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bB7DAi/hySdtVqSOt/C3zkK09uy759Bc3KvekJe1/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Ni4iR/hySdyJdj0P/prMl0WzLNPeQRITkDOFYAK/img.jpg?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512&quot; data-og-url=&quot;https://docs.developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions&quot;&gt;&lt;a href=&quot;https://docs.developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions&quot; target=&quot;_blank&quot; data-source-url=&quot;https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bB7DAi/hySdtVqSOt/C3zkK09uy759Bc3KvekJe1/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Ni4iR/hySdyJdj0P/prMl0WzLNPeQRITkDOFYAK/img.jpg?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Add Home Screen Quick Actions | Apple Developer Documentation&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Expose commonly used functionality with static or dynamic 3D Touch Home Screen quick actions.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;developer.apple.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;공식 문서를 보면 퀵 액션의 종류에는 2가지가 있습니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;# Quick Action Type&lt;/b&gt;&lt;br&gt;&lt;b&gt;1. Static Quick Actions &lt;/b&gt;&lt;br&gt;&lt;b&gt;2. Dynamic Quick Actions&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;1번은 쉽게 말하면 앱을 실행하지 않고도 Quick Action List를 볼수가 있다는 말이구용&lt;br&gt;다시말하면 info.plist 파일에 설정해놓기때문에 앱 자체에 정의되어있어서 실행하지 않고 설치만 해도 퀵액션을 볼수가 있는것이라는 얘기입니당&lt;br&gt;&amp;nbsp;&lt;br&gt;2번은 앱을 실행하고 만들어지는데요.&lt;br&gt;실행되고 만들어지니 당연히 실행되고나면 바뀌기도하고 없어지기도하고 그렇겠죠? 그래서 앱구동중에 동적으로 바꿀수있는 퀵액션이라는 얘기입니당.&lt;br&gt;&lt;br&gt;일단 이론은 여기까지만 알아놓고.. 바로 구현 들어가보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;자 이제 본격적으로 시작해볼게용&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;(1) Static Quick Actions 만들기&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 프로젝트를 하나 만들어줘야겠죠 !&amp;nbsp;&lt;br&gt;App으로 해서 프로젝트 하나 생성해주시구요.&lt;br&gt;&amp;nbsp;&lt;br&gt;그리고 Info파일로 들어가줍니다.&lt;br&gt;Information Property List에 ( + ) 를 누르고 Home Screen Shortcut Items 를 찾아줍니다.&lt;br&gt;Home만 검색하시면 바로 나올거에요.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beqGUU/btr8XzMJaiW/gVky2HMTaO6Vt1XSwLyiQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beqGUU/btr8XzMJaiW/gVky2HMTaO6Vt1XSwLyiQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beqGUU/btr8XzMJaiW/gVky2HMTaO6Vt1XSwLyiQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeqGUU%2Fbtr8XzMJaiW%2FgVky2HMTaO6Vt1XSwLyiQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;982&quot; height=&quot;477&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;추가하고 나면 이렇게 나오는데요.&lt;br&gt;기본적으로 키는 Item Type과 Title이 추가가 되어있는데요.&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;91&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecTbzE/btr8LrvZKwK/A7RU80pZ3CtvGFn1GbS4y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecTbzE/btr8LrvZKwK/A7RU80pZ3CtvGFn1GbS4y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecTbzE/btr8LrvZKwK/A7RU80pZ3CtvGFn1GbS4y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecTbzE%2Fbtr8LrvZKwK%2FA7RU80pZ3CtvGFn1GbS4y0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;91&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;91&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;뭐가 있는지 더 볼까요?&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bf9j5o/btr8LM0WRNg/Kk9aXpojbbPRsKucHWQSF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bf9j5o/btr8LM0WRNg/Kk9aXpojbbPRsKucHWQSF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bf9j5o/btr8LM0WRNg/Kk9aXpojbbPRsKucHWQSF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf9j5o%2Fbtr8LM0WRNg%2FKk9aXpojbbPRsKucHWQSF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;308&quot; height=&quot;136&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;짜잔~&amp;nbsp;&lt;br&gt;요렇게&lt;br&gt;Icon File / Icon Type / Shortcut Item Type / Subtitle / Title / User Info Dictionary 가 있습니다.&lt;br&gt;이름 보고 대충 유추가 될거같은데..살짝 설명해드리면&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;# 필수 옵션 2개&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Shortcut Item Type - &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;앱에 전달되는 문자열입니다.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Title - &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;홈 화면에서 사용자에게 표시되는 제목입니다.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;# 선택 옵션 4개&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Subtitle - title 제목 밑에 작게 써지는 부제목 입니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Icon Type - 아이콘 타입입니다. 애플에서 제공해주는 아이콘 타입을 바로 쓸수있습니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Icon File - 사용자가 등록한 아이콘을 사용할수있습니다.&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;User Info Dictionary - dictionary data를 저장합니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;이렇게 6개의 옵션이 구성되어있습니다.&lt;br&gt;더 자세한 설명은 애플에서 제공해주는 이 내용을 참고 하시면 될것같군용&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;605&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CaQeC/btr8NebAT1W/9zuxVsUpqIz3SkflT9gSP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CaQeC/btr8NebAT1W/9zuxVsUpqIz3SkflT9gSP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CaQeC/btr8NebAT1W/9zuxVsUpqIz3SkflT9gSP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCaQeC%2Fbtr8NebAT1W%2F9zuxVsUpqIz3SkflT9gSP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1140&quot; height=&quot;605&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;605&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW36&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW36&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;iOS Keys&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;iOS Keys The iOS frameworks provide the infrastructure you need for creating iOS apps. You use the keys associated with this framework to configure the appearance of your app at launch time and the behavior of your app once it is running. UIKit keys use th&quot; data-og-host=&quot;developer.apple.com&quot; data-og-source-url=&quot;https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW36&quot; data-og-url=&quot;https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW36&quot;&gt;&lt;a href=&quot;https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW36&quot; target=&quot;_blank&quot; data-source-url=&quot;https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW36&quot;&gt;&lt;div class=&quot;og-image&quot;&gt;&lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;iOS Keys&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;iOS Keys The iOS frameworks provide the infrastructure you need for creating iOS apps. You use the keys associated with this framework to configure the appearance of your app at launch time and the behavior of your app once it is running. UIKit keys use th&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;developer.apple.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;일단 3가지 옵션만 주고 실행해보겠습니다.&lt;br&gt;&lt;b&gt;Title / Subtitle / Shortcut Item Type&lt;/b&gt; 이렇게 3가지를 주고 빌드하고 테스트합니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csx9Tk/btr8Lrpbr2o/LYPEcFwv9wZyibTMSDDhXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csx9Tk/btr8Lrpbr2o/LYPEcFwv9wZyibTMSDDhXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csx9Tk/btr8Lrpbr2o/LYPEcFwv9wZyibTMSDDhXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcsx9Tk%2Fbtr8Lrpbr2o%2FLYPEcFwv9wZyibTMSDDhXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;111&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;짠~ 이렇게 나오네요.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqqZbd/btr8PZZpjkF/dn3odGjD3QMwOZKkFifKH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqqZbd/btr8PZZpjkF/dn3odGjD3QMwOZKkFifKH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqqZbd/btr8PZZpjkF/dn3odGjD3QMwOZKkFifKH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqqZbd%2Fbtr8PZZpjkF%2Fdn3odGjD3QMwOZKkFifKH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;306&quot; height=&quot;706&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;706&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Icon Type을 지정하지 않으면 점으로 표시되나봅니다.&lt;/b&gt;&lt;br&gt;그럼 아이콘 타입까지 지정해보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;아이콘 타입은 애플에서 제공해주는 아이콘을 사용하시면 되는데요&lt;br&gt;(커스텀 아이콘을 쓰실려면 Assets 폴더에 아이콘 추가후 Icon File을 이용해서 사용하시면됩니다)&lt;br&gt;&amp;nbsp;&lt;br&gt;애플에서 제공해주는 기본 아이콘은 여기를 참고하도록 합니다.&lt;br&gt;&lt;a href=&quot;https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;UIApplicationShortcutIcon.IconType | Apple Developer Documentation&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Constants for system-provided icons.&quot; data-og-host=&quot;developer.apple.com&quot; data-og-source-url=&quot;https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cklM7V/hySdn10eRF/lVjaF1TErKOr8ns1aacSVK/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/DH5ob/hySdqLcehn/HpS2z1LCJ1anbs4pfYcOrk/img.jpg?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512&quot; data-og-url=&quot;https://docs.developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype&quot;&gt;&lt;a href=&quot;https://docs.developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype&quot; target=&quot;_blank&quot; data-source-url=&quot;https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cklM7V/hySdn10eRF/lVjaF1TErKOr8ns1aacSVK/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/DH5ob/hySdqLcehn/HpS2z1LCJ1anbs4pfYcOrk/img.jpg?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;UIApplicationShortcutIcon.IconType | Apple Developer Documentation&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Constants for system-provided icons.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;developer.apple.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이름은 기본적으로 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;UIApplicationShortcutIconType{아이콘}&lt;/b&gt;&lt;/span&gt; 형식입니다.&lt;br&gt;해당 페이지에 제일위에 있는 case compose를 예로 들면,&lt;br&gt;UIApplicationShortcutIconTypeCompose 라고 추가하시면됩니다.&lt;br&gt;그럼 요렇게 되겠죠?&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dto9sC/btr8ZVoxjWl/dIZ5PkF5mwAFw1PSl2rBK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dto9sC/btr8ZVoxjWl/dIZ5PkF5mwAFw1PSl2rBK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dto9sC/btr8ZVoxjWl/dIZ5PkF5mwAFw1PSl2rBK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdto9sC%2Fbtr8ZVoxjWl%2FdIZ5PkF5mwAFw1PSl2rBK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;654&quot; height=&quot;107&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요렇게 하고 테스트해봅시다.&lt;br&gt;짠~ Compose 아이콘으로 변경되었습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;695&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjAbNF/btr8UUKeKU3/sVISgHK3FmKwdU69yVf5b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjAbNF/btr8UUKeKU3/sVISgHK3FmKwdU69yVf5b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjAbNF/btr8UUKeKU3/sVISgHK3FmKwdU69yVf5b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjAbNF%2Fbtr8UUKeKU3%2FsVISgHK3FmKwdU69yVf5b0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;279&quot; height=&quot;695&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;695&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이렇게 하고 Kouzi 버튼을 눌러서 진입하면 어떻게 될까요 ?&lt;br&gt;정답은.. 아무일 없습니다.&lt;br&gt;아무런 동작을 안만들어 줬기 때문이죠 !&amp;nbsp;&lt;br&gt;그래서 이번엔 진입시 alert popup 이 뜨도록 해보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;SceneDelegate.swift파일로 들어가서 다음과 같이 코드를 구현해줍니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot;&gt;&lt;code&gt;class SceneDelegate: UIResponder, UIWindowSceneDelegate {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Action 타입
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enum ActionType: String {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kouziAction = &quot;KouziAction&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var savedShortCutItem: UIApplicationShortcutItem?
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var window: UIWindow?
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;guard let _ = (scene as? UIWindowScene) else { return }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if let shortcutItem = connectionOptions.shortcutItem {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Save it off for later when we become active.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;savedShortCutItem = shortcutItem
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;func sceneDidBecomeActive(_ scene: UIScene) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Called when the scene has moved from an inactive state to an active state.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;guard let item = savedShortCutItem else { return }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_ = handleShortCutItem(shortcutItem: item)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...
}

extension SceneDelegate {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 퀵액션 클릭시 처리
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -&amp;gt; Bool {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let alert = UIAlertController(title: &quot;Quick Actions Test&quot;, message: &quot;Short Cut Item Type : \(shortcutItem.type)&quot;, preferredStyle: .alert)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let action = UIAlertAction(title: &quot;OK&quot;, style: .default, handler: nil)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert.addAction(action)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if let actionTypeValue = ActionType(rawValue: shortcutItem.type) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch actionTypeValue {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case .kouziAction:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DispatchQueue.main.async {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.window?.rootViewController?.present(alert, animated: true)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 앱이 이미 실행중일때 quick action 클릭시 처리
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;func windowScene(_ windowScene: UIWindowScene,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; performActionFor shortcutItem: UIApplicationShortcutItem,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; completionHandler: @escaping (Bool) -&amp;gt; Void) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let handled = handleShortCutItem(shortcutItem: shortcutItem)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;completionHandler(handled)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;요렇게 하면 이제 퀵액션으로 앱 진입시 alert popup이 짠!&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;1299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi9huQ/btr8LkjcpQc/J7ZXuXjJ4CnbXqvYcWeHB0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi9huQ/btr8LkjcpQc/J7ZXuXjJ4CnbXqvYcWeHB0/img.gif&quot; data-alt=&quot;Static Quick Action&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi9huQ/btr8LkjcpQc/J7ZXuXjJ4CnbXqvYcWeHB0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bi9huQ/btr8LkjcpQc/J7ZXuXjJ4CnbXqvYcWeHB0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;241&quot; height=&quot;522&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;1299&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Static Quick Action&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;(2) Dynamic Quick Actions 만들기&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다이나믹 퀵 액션으로 가볼겠습니당 ㅎㅎ&lt;br&gt;&amp;nbsp;&lt;br&gt;이번엔 코드로 구현해서 Quick Action을 만들어보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;일단 storyboard에 버튼을 하나 추가해줍시다.&lt;br&gt;이제 이 버튼을 누르면 searchAction 이 뿅하고 생기게 만들거에요.&lt;br&gt;&amp;nbsp;&lt;br&gt;그리고 viewController로 가서 아까 만든 버튼을 구현해줍시다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot;&gt;&lt;code&gt;class ViewController: UIViewController {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@IBAction func addButtonAction(_ sender: Any) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let application = UIApplication.shared
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;application.shortcutItems = [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UIApplicationShortcutItem(type: &quot;SearchAction&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;localizedTitle: &quot;SearchAction Title&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;localizedSubtitle: &quot;SearchAction Subtitle&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;icon: UIApplicationShortcutIcon(type: .search))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let alert = UIAlertController(title: &quot;Search Action Add&quot;, message: &quot;성공적으로 추가되었습니다.&quot;, preferredStyle: .alert)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let action = UIAlertAction(title: &quot;OK&quot;, style: .default, handler: nil)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert.addAction(action)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;override func viewDidLoad() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;super.viewDidLoad()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Do any additional setup after loading the view.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;요런식으로 만들수있습니다.&lt;br&gt;여기서 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;shortcutItems는 배열로 추가 시키는것&lt;/b&gt;&lt;/span&gt;입니다. &lt;br&gt;그래서 여러개를 추가시킬수도 있는데 quick action은 &lt;b&gt;4개가 max&lt;/b&gt;거든요.&lt;br&gt;그래서 4개이상을 추가해도 4개까지 밖에 안나옵니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;요렇게 하고 버튼 누르면, 눌렸다고 alert팝업 하나 띄워주겠습니다.&lt;br&gt;이제 테스트해보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;분명히 처음에는 Kouzi 액션만 있다가 앱 진입해서 search action을 추가하는 버튼을 누르고 나면!&lt;br&gt;뿅하고 SearchAction이 추가된것을 보실수있습니다 ㅎㅎ&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;1299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6nz6s/btr8J4OPCoo/YKHkkwj7mWTmyvKzeke1Kk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6nz6s/btr8J4OPCoo/YKHkkwj7mWTmyvKzeke1Kk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6nz6s/btr8J4OPCoo/YKHkkwj7mWTmyvKzeke1Kk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/6nz6s/btr8J4OPCoo/YKHkkwj7mWTmyvKzeke1Kk/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;299&quot; height=&quot;647&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;1299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 설명드릴 내용은 여기서 끝 !&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;오늘 구현한 코드는 여기서 확인하실수있습니다.&lt;br&gt;&lt;a href=&quot;https://github.com/kouzi-kim/quickActionTest&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://github.com/kouzi-kim/quickActionTest&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;GitHub - kouzi-kim/quickActionTest: dynamic / static Quick Actions&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;dynamic / static Quick Actions. Contribute to kouzi-kim/quickActionTest development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/kouzi-kim/quickActionTest&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/03vHp/hySctplbp1/ASxg3jd1F5vQwIYkaGTsC1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot; data-og-url=&quot;https://github.com/kouzi-kim/quickActionTest&quot;&gt;&lt;a href=&quot;https://github.com/kouzi-kim/quickActionTest&quot; target=&quot;_blank&quot; data-source-url=&quot;https://github.com/kouzi-kim/quickActionTest&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/03vHp/hySctplbp1/ASxg3jd1F5vQwIYkaGTsC1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;GitHub - kouzi-kim/quickActionTest: dynamic / static Quick Actions&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;dynamic / static Quick Actions. Contribute to kouzi-kim/quickActionTest development by creating an account on GitHub.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;그럼 여기까지 끝 !&lt;/p&gt;</description>
      <category>iOS 개발일기/iOS</category>
      <category>Dynamic Quick Action</category>
      <category>Home Screen Quick Actions</category>
      <category>ios</category>
      <category>iOS QuickAction</category>
      <category>QuickAction</category>
      <category>ShorcutItems</category>
      <category>Static Quick Action</category>
      <category>SWIFT</category>
      <category>다이나믹 퀵 액션</category>
      <category>퀵액션</category>
      <author>Kouzi</author>
      <guid isPermaLink="true">https://kouzi-dev.tistory.com/3</guid>
      <comments>https://kouzi-dev.tistory.com/3#entry3comment</comments>
      <pubDate>Sun, 9 Apr 2023 12:30:02 +0900</pubDate>
    </item>
    <item>
      <title>[BOJ] 1026번 보물 (C++)</title>
      <link>https://kouzi-dev.tistory.com/2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;[BOJ]&amp;nbsp;1026번&amp;nbsp;보물&amp;nbsp;(C++)&lt;/span&gt;&lt;/h4&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제링크&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1026&quot;&gt;https://www.acmicpc.net/problem/1026&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1680952694930&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;1026번: 보물&quot; data-og-description=&quot;첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1026&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1026&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/sDItJ/hySdk49jIF/YcKeEZJSS77hU9M4SPOP90/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1026&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1026&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/sDItJ/hySdk49jIF/YcKeEZJSS77hU9M4SPOP90/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;1026번: 보물&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;풀이방법&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;백준 풀이 !&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제는 정말 정말 간단하다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;배열 두개가 있는데 얘네들 순서를 바꿀수있고, 그 배열 두개를 곱해서 나온 값이 최소가 되도록 하면 끝!&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;근데 잘보면 여기 문제에 함정(?)이 있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제에 설명을 보면 이러한데..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;S = A[0] &amp;times; B[0] + ... + A[N-1] &amp;times; B[N-1]&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;잘 보면 A를 배열한다는 얘기는 A의 배열 순서가 마음대로 바뀔수있다는 말이고, 결과값으로 순서를 원하는 것이 아니기 때문에 결국&lt;/b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;B도 순서를 바꿀수있다는 얘기와 같다.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그래서 결론은 A B 배열의 순서를 잘 뒤섞은후에 같은 인덱스를 가진 배열끼리 곱해서 더한값이 최소면 된다는것.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;일단 제일 먼저 생각 가능한 부분은 단순히 무식하게 B배열을 고정시키고 A배열의 모든 순열 조합을 만들어가면서 곱의 합값을 구해서 완탐하는 방법이다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그러나 이렇게 풀면 바로 시간초과.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그럼 최소값은 어떻게 구할건가?&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예시를 1개 생각해봅시다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;A[3] = {1,2,3} / B[3] = {1,2,3}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이 두개의 배열로 곱의 최소값을 만들려면 어떻게 할까?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1x1 + 2x2+ 3x3 = 14&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1x2 + 2x1 + 3x3 = 13&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323; font-family: 'Nanum Gothic';&quot;&gt;1x3 + 2x2 + 3x1 = 10&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;모든 경우의 수를 다해보면 빨간 글자 부분만 최소값인걸 알수있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이걸 다시 정리하면 A배열의 제일작은수 x B배열의 제일큰수 + A배열의 2번째로 작은수 x B배열의 2번째로 큰수 .. 의 조합으로 만든 합이 제일 작은 결과를 낸다는것을 알수있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그럼 하나는 오름차순 정렬, 하나는 내림차순 정렬후에 서로 곱해주고 더해주면 최소값이라는걸 알수있다!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;소스코드&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1680952631511&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

int N;	//50이하
int A[50];
int	B[50];

int solve() {
	sort(A, A + N);
	sort(B, B + N, greater&amp;lt;int&amp;gt;());
	int sum = 0;
	for (int i = 0; i &amp;lt; N; i++) {
		sum += A[i] * B[i];
	}

	return sum;
}

int main() {

	scanf(&quot;%d&quot;, &amp;amp;N);
	for (int i = 0; i &amp;lt; N; i++) {
		scanf(&quot;%d&quot;, &amp;amp;A[i]);
	}
	for (int i = 0; i &amp;lt; N; i++) {
		scanf(&quot;%d&quot;, &amp;amp;B[i]);
	}

	printf(&quot;%d&quot;, solve());
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>코딩 문제풀이/BOJ</category>
      <category>1026번</category>
      <category>BOJ</category>
      <category>boj 1026</category>
      <category>C++</category>
      <category>백준</category>
      <category>보물</category>
      <category>알고리즘</category>
      <category>풀이</category>
      <author>Kouzi</author>
      <guid isPermaLink="true">https://kouzi-dev.tistory.com/2</guid>
      <comments>https://kouzi-dev.tistory.com/2#entry2comment</comments>
      <pubDate>Sat, 8 Apr 2023 20:19:52 +0900</pubDate>
    </item>
    <item>
      <title>[iOS/Unity] Unity 프로젝트를 Framework로 사용하여 iOS native App에 통합하기 (1)</title>
      <link>https://kouzi-dev.tistory.com/1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요 ! &lt;br&gt;두근두근 첫 포스팅!&lt;br&gt;&amp;nbsp;&lt;br&gt;Unity 프로젝트를 Framework로 사용하여 iOS native App에 통합해보려고 합니다.&lt;br&gt;iOS Native 앱을 만드신다음에 거기에 유니티 뷰를 띄운다던지.. 하려고 할때 유니티를 라이브러리로 사용하실수 있어요 !&lt;br&gt;(Unity 공식사이트 문서참조:&amp;nbsp;&lt;a href=&quot;https://docs.unity3d.com/kr/current/Manual/UnityasaLibrary-iOS.html&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://docs.unity3d.com/kr/current/Manual/UnityasaLibrary-iOS.html&lt;/span&gt;&lt;/a&gt;)&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Unity를 네이티브 iOS 애플리케이션에 통합 - Unity 매뉴얼&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;이 페이지에서는 Unity as a Library 기능을 사용하여 Unity 런타임 라이브러리를 iOS 네이티브 애플리케이션에 통합하는 방법을 설명합니다.&quot; data-og-host=&quot;docs.unity3d.com&quot; data-og-source-url=&quot;https://docs.unity3d.com/kr/current/Manual/UnityasaLibrary-iOS.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/g2ZXG/hyR0uVghqG/5ezKYOQHA78XcoZ9E0c5x0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot; data-og-url=&quot;https://docs.unity3d.com/kr/current/Manual/UnityasaLibrary-iOS.html&quot;&gt;&lt;a href=&quot;https://docs.unity3d.com/kr/current/Manual/UnityasaLibrary-iOS.html&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.unity3d.com/kr/current/Manual/UnityasaLibrary-iOS.html&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/g2ZXG/hyR0uVghqG/5ezKYOQHA78XcoZ9E0c5x0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Unity를 네이티브 iOS 애플리케이션에 통합 - Unity 매뉴얼&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;이 페이지에서는 Unity as a Library 기능을 사용하여 Unity 런타임 라이브러리를 iOS 네이티브 애플리케이션에 통합하는 방법을 설명합니다.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.unity3d.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;다음과 같은 순서로 설명해보려고 합니다.&lt;br&gt;1. Unity 프로그램 설치 및 프로젝트 생성후 iOS App으로 빌드&lt;br&gt;2. 빌드된 Unity Project를 iOS Native App으로 import 하여 Native App에서 Unity 호출하기&lt;br&gt;3. iOS Native App과 Unity Project 사이에 데이터 전달 방법 (Objective-C Bridge 활용)&lt;br&gt;정도의 순서로 설명해볼까 합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;오늘은 가장 기초 순서인&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Unity 프로그램 설치 및 프로젝트 생성후 iOS App으로 빌드&lt;/b&gt;&lt;/span&gt;에 대해 설명드리겠습니다.&lt;br&gt;&lt;span style=&quot;color: #333333;&quot;&gt;저는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;2021.3.16f1&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;버전을 사용했습니다.&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;97&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGRfmf/btr8vIJ1gyf/uBmWprxcoNPeiN5eRsNDMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGRfmf/btr8vIJ1gyf/uBmWprxcoNPeiN5eRsNDMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGRfmf/btr8vIJ1gyf/uBmWprxcoNPeiN5eRsNDMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGRfmf%2Fbtr8vIJ1gyf%2FuBmWprxcoNPeiN5eRsNDMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;721&quot; height=&quot;97&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;97&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) Unity Project 만들기&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 적당히 만들고..&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;579&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPNeGA/btr8uUc9CWY/S3bIbJdzVXKKriNdUYyB4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPNeGA/btr8uUc9CWY/S3bIbJdzVXKKriNdUYyB4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPNeGA/btr8uUc9CWY/S3bIbJdzVXKKriNdUYyB4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPNeGA%2Fbtr8uUc9CWY%2FS3bIbJdzVXKKriNdUYyB4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1010&quot; height=&quot;579&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;579&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;뷰에다가 버튼 2개 / Text1개를 만들어줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1565&quot; data-origin-height=&quot;628&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yfCQy/btr8lOSAlUi/WFXKkPc9RkOpkcn1IB5Te1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yfCQy/btr8lOSAlUi/WFXKkPc9RkOpkcn1IB5Te1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yfCQy/btr8lOSAlUi/WFXKkPc9RkOpkcn1IB5Te1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyfCQy%2Fbtr8lOSAlUi%2FWFXKkPc9RkOpkcn1IB5Te1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1565&quot; height=&quot;628&quot; data-origin-width=&quot;1565&quot; data-origin-height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Text에는 iOS Native App으로 받는 Data를 표시해주고 ,&lt;br&gt;버튼은 1개는 Native App위에 떠있는 Unity를 종료하는 버튼, 또 하나는 iOS Native App으로 Unity의 값을 전달하는 용도가 될겁니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;이렇게 하고 exitUnity에 대한 코드 부터 작성해줍시다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QXpze/btr8uRAJul3/qhAOEMeWqwGcfca7ZiAK50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QXpze/btr8uRAJul3/qhAOEMeWqwGcfca7ZiAK50/img.png&quot; data-alt=&quot;ExitUnity C#파일 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QXpze/btr8uRAJul3/qhAOEMeWqwGcfca7ZiAK50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQXpze%2Fbtr8uRAJul3%2FqhAOEMeWqwGcfca7ZiAK50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;435&quot; height=&quot;306&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ExitUnity C#파일 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;pre id=&quot;code_1680762323245&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;csharp&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ExitUnity : MonoBehaviour
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Button button;

	public void OnExitButtonClick()
	{
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.Unload();
	}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Start is called before the first frame update
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Start()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Update is called once per frame
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Update()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;ExitUnity의 코드를 이렇게 짜줍니다.&lt;br&gt;그리고 버튼에 추가시켜주면되겠죠 ?&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;305&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gt18F/btr8nQP87oO/YokMa4kFt1bv1FTlDgk9aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gt18F/btr8nQP87oO/YokMa4kFt1bv1FTlDgk9aK/img.png&quot; data-alt=&quot;exitButton에 추가!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gt18F/btr8nQP87oO/YokMa4kFt1bv1FTlDgk9aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGt18F%2Fbtr8nQP87oO%2FYokMa4kFt1bv1FTlDgk9aK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;305&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;305&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;exitButton에 추가!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;그리고 3가지 스크립트를 더 만들겁니다.&lt;br&gt;iOS Native App으로 데이터를 전송하는 스크립트와 받는 스크립트 , 모바일 앱으로 데이터를 전송하기 위한 NativeAPI라는 스크립트를 만들겁니다.&lt;br&gt;먼저 iOS Native App으로 부터 받는 스크립트입니다.&lt;/p&gt;&lt;pre id=&quot;code_1680762323246&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;csharp&quot;&gt;&lt;code&gt;//ReceiveDataFromiOS.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Newtonsoft.Json;

public class MyClass
{
	//받을 데이터 포맷
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int testNumber;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public string testString;
}

public class ReceiveDataFromiOS : MonoBehaviour
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Text receiveText;	//받은 데이터를 보여줄 텍스트

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void setData(string jsonString) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MyClass myObject = JsonUtility.FromJson&amp;lt;MyClass&amp;gt;(jsonString);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;receiveText.text = &quot;testNumber: &quot; + myObject.testNumber + &quot;,&quot; + &quot;testString: &quot; + myObject.testString;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	//받은 데이터를 receiveText에 받아서 화면에 출력
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Start is called before the first frame update
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Start()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;receiveText.text = &quot;receiveData!&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Update is called once per frame
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Update()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;다음으로는 iOS Native App으로 보내는 스크립트입니다.&lt;/p&gt;&lt;pre id=&quot;code_1680762323249&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;csharp&quot;&gt;&lt;code&gt;//SendDataToUnity.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Data 
{
	//모바일로 보낼 데이터 타입
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int m_int;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public string m_string;
} 

public class SendDataToUnity : MonoBehaviour
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Button button;

	public void OnSendMessageButtonClick()
	{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Data data = new Data();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//보낼 테스트 데이터
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data.m_int = 1234;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data.m_string = &quot;testJson String&quot;;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string str = JsonUtility.ToJson(data);
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NativeAPI.sendMessageToMobileApp(str);
	}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Start is called before the first frame update
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Start()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;button = GetComponent&amp;lt;Button&amp;gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;button.onClick.AddListener(OnSendMessageButtonClick);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Update is called once per frame
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Update()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;그리고 NativeAPI입니다&lt;/p&gt;&lt;pre id=&quot;code_1680762323251&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;csharp&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.Runtime.InteropServices;

public class NativeAPI {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DllImport(&quot;__Internal&quot;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static extern void sendMessageToMobileApp(string message);
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이렇게 까지 하셨으면 버튼과 텍스트에 스크립트를 추가해줍시다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;88&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ty5NX/btr8vx9I5X9/2jpMLvnDxkw3mJBBvkiP5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ty5NX/btr8vx9I5X9/2jpMLvnDxkw3mJBBvkiP5k/img.png&quot; data-alt=&quot;fromiOSData&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ty5NX/btr8vx9I5X9/2jpMLvnDxkw3mJBBvkiP5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fty5NX%2Fbtr8vx9I5X9%2F2jpMLvnDxkw3mJBBvkiP5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;488&quot; height=&quot;88&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;88&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;fromiOSData&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mFqQN/btr8vxhAQTT/0uD8FbkXxSWN3xdtI443sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mFqQN/btr8vxhAQTT/0uD8FbkXxSWN3xdtI443sk/img.png&quot; data-alt=&quot;sendDataButton&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mFqQN/btr8vxhAQTT/0uD8FbkXxSWN3xdtI443sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmFqQN%2Fbtr8vxhAQTT%2F0uD8FbkXxSWN3xdtI443sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;487&quot; height=&quot;60&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;sendDataButton&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;여기까지하셨으면 Unity 프로젝트 세팅은 적당히 되었고, 이제 Xcode로 넘어가보겠습니다.&lt;br&gt;2편에서 계속...&lt;/p&gt;</description>
      <category>iOS 개발일기/Unity iOS</category>
      <category>framework</category>
      <category>ios</category>
      <category>Library</category>
      <category>Unity</category>
      <category>라이브러리</category>
      <category>유니티</category>
      <author>Kouzi</author>
      <guid isPermaLink="true">https://kouzi-dev.tistory.com/1</guid>
      <comments>https://kouzi-dev.tistory.com/1#entry1comment</comments>
      <pubDate>Thu, 6 Apr 2023 15:28:41 +0900</pubDate>
    </item>
  </channel>
</rss>