<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>iOS on James's Devlog</title><link>https://coolishbee.github.io/devlog/posts/ios/</link><description>Recent content in iOS on James's Devlog</description><generator>Hugo -- gohugo.io</generator><language>ko-KR</language><lastBuildDate>Fri, 28 Aug 2026 16:00:00 +0900</lastBuildDate><atom:link href="https://coolishbee.github.io/devlog/posts/ios/index.xml" rel="self" type="application/rss+xml"/><item><title>iOS 키체인 접근 그룹 변경으로 UUID가 바뀐 문제</title><link>https://coolishbee.github.io/devlog/posts/ios/ios-keychain-access-group-uuid/</link><pubDate>Fri, 28 Aug 2026 16:00:00 +0900</pubDate><guid>https://coolishbee.github.io/devlog/posts/ios/ios-keychain-access-group-uuid/</guid><description>빌드 파이프라인 변경 후 기존 UUID를 읽지 못했던 원인과 키체인 접근 그룹 마이그레이션, 네이티브 코드 수정 과정을 정리했습니다.</description></item><item><title>Cocoapod 으로 소스 공개(Public)용으로 프레임워크 배포</title><link>https://coolishbee.github.io/devlog/posts/ios/cocoapods-public/</link><pubDate>Mon, 16 Jan 2023 01:56:38 +0900</pubDate><guid>https://coolishbee.github.io/devlog/posts/ios/cocoapods-public/</guid><description>&lt;h3 id="podspec-파일-생성-및-편집하기"&gt;PodSpec 파일 생성 및 편집하기&lt;/h3&gt;
&lt;p&gt;spec 파일만 따로 만드는 방법이 있다. 사실 이 파일만 있다면 배포가 가능하다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ pod spec create pod_name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;.podspec 이 로컬에 생성 될 것이다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;Pod&lt;/span&gt;&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Spec&lt;/span&gt;&lt;span style="color:#f92672"&gt;.&lt;/span&gt;new &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; &lt;span style="color:#f92672"&gt;|&lt;/span&gt;s&lt;span style="color:#f92672"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;git-public-pod-public&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;version &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;0.1.5&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;summary &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;The SDK for iOS Swift provides a modern way of implementing APIs.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;description &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt;-DESC
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;Developed&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;in&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;Swift&lt;/span&gt;, the &lt;span style="color:#66d9ef"&gt;SDK&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; iOS &lt;span style="color:#66d9ef"&gt;Swift&lt;/span&gt; provides a modern way of implementing
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;LINE&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;APIs&lt;/span&gt;&lt;span style="color:#f92672"&gt;.&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;The&lt;/span&gt; features included &lt;span style="color:#66d9ef"&gt;in&lt;/span&gt; this &lt;span style="color:#66d9ef"&gt;SDK&lt;/span&gt; will help you develop an iOS app with
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; engaging &lt;span style="color:#f92672"&gt;and&lt;/span&gt; personalized user experience&lt;span style="color:#f92672"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;DESC&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;homepage &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;https://github.com/james-chun-dev/git-public-pod-public&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;license &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Apache License, Version 2.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;author &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;James&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;platform &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;:ios&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;13.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;module_name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;SDK1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;source &lt;span style="color:#f92672"&gt;=&lt;/span&gt; { &lt;span style="color:#e6db74"&gt;:git&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;https://github.com/james-chun-dev/git-public-pod-public.git&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;:tag&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;#{&lt;/span&gt;s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;version&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#f92672"&gt;.&lt;/span&gt;source_files &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;SDK1/SDK1/SDK1.h&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;더 많은 정보를 원한다면 cocoapods 공식사이트 문서 참고.&lt;/p&gt;</description></item><item><title>Cocoapod 으로 소스 비공개(private)용으로 프레임워크 배포</title><link>https://coolishbee.github.io/devlog/posts/ios/cocoapods-private/</link><pubDate>Mon, 16 Jan 2023 01:56:38 +0900</pubDate><guid>https://coolishbee.github.io/devlog/posts/ios/cocoapods-private/</guid><description>&lt;h3 id="git-repo-만들기"&gt;Git repo 만들기&lt;/h3&gt;
&lt;p&gt;git 주소가 2개가 필요하다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;git lib repo (라이브러리 프로젝트)&lt;/li&gt;
&lt;li&gt;git specs repo (public 에서 사용한 cocoapod repo 역할을 할 git spec파일 저장소)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;우선 라이브러리 git repo 가 있다는 전제하에 설명한다. 물론 podspec 파일도 셋팅되어있어야 한다.&lt;/p&gt;
&lt;p&gt;.podspec 파일을 편집해주고 파일 유효성 검사. 이건 공개용과 동일하다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ pod spec lint --verbose specfilename.podspec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;빈 레퍼지토리 &lt;a href="https://github.com/james-chun-dev/specs.git" target="_blank" rel="noopener"&gt;https://github.com/james-chun-dev/specs.git&lt;/a&gt; 하나를 private 으로 만들었다.&lt;/p&gt;
&lt;p&gt;그리고 pod repo 에 add 해준다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ pod repo add git-private-pod-private https://github.com/james-chun-dev/specs.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://coolishbee.github.io/devlog/posts/ios/cocoapods-private/images/104162444-f6792100-5437-11eb-8e9d-20f152268d67.png" alt="repo dir"&gt;&lt;/p&gt;</description></item><item><title>앱을 포함한 라이브러리 프로젝트 생성</title><link>https://coolishbee.github.io/devlog/posts/ios/app-with-framework/</link><pubDate>Mon, 16 Jan 2023 01:56:38 +0900</pubDate><guid>https://coolishbee.github.io/devlog/posts/ios/app-with-framework/</guid><description>&lt;p&gt;Workspace 를 생성하여 라이브러리와 앱 프로젝트를 생성하는 방식.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;우선 빈폴더를 만들고 프로젝트 이름을 정합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://coolishbee.github.io/devlog/posts/ios/app-with-framework/images/103735958-841cd100-5032-11eb-86c1-08ab8974be70.png" alt="newFolder"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;File &amp;gt; New &amp;gt; Workspace&lt;/strong&gt;&amp;hellip;을 클릭합니다. Workspace 이름을 지정하고 &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://coolishbee.github.io/devlog/posts/ios/app-with-framework/images/103735983-8e3ecf80-5032-11eb-801c-1d589a84092c.png" alt="workspace save"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;**File &amp;gt; New &amp;gt; Project&amp;hellip;**을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://coolishbee.github.io/devlog/posts/ios/app-with-framework/images/103736137-fdb4bf00-5032-11eb-9170-a1e3f849b57c.png" alt="newProject"&gt;&lt;/p&gt;
&lt;p&gt;먼저 앱 프로젝트를 생성하겠습니다.(순서는 상관없음)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://coolishbee.github.io/devlog/posts/ios/app-with-framework/images/103736419-90edf480-5033-11eb-8bb6-66d399bc53e7.png" alt="newapp"&gt;&lt;/p&gt;
&lt;p&gt;Product Name 을 정하고 Interface, Life Cycle, Language 각자 선호도에 맞게 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://coolishbee.github.io/devlog/posts/ios/app-with-framework/images/103736439-9b0ff300-5033-11eb-8573-d34a0f73f319.png" alt="create"&gt;&lt;/p&gt;
&lt;p&gt;Add to, Group 모두 타겟을 처음 만든 Workspace 를 선택해줍니다.(Framework 생성도 똑같음)&lt;/p&gt;
&lt;p&gt;Framework 도 동일하게 진행하게 되면 프로젝트 폴더구조는 다음과 같습니다.&lt;/p&gt;</description></item></channel></rss>