본문 바로가기
Unity

Unity Resolver이용해 라이브러리 iOS Target 설정하는 방법

by OK강프로 2024. 7. 14.
반응형

현재 근무 중인 회사에서 Unity Resolver와 Cocoapods을 이용해서, 내부에서 개발된 iOS SDK를 사용 중입니다. 

내부 모듈 중 하나가 Unity Editor에서 빌드 후 만들어진 Xcode 프로젝트에서 Target이 앱타겟이 아닌 다른 타겟으로 설정되어야 하는 Needs가 있었습니다. 

Firebase 및 Adsmob의 Native sdk 모듈들은 Unity Resolver로 최종적으로 구성되기 때문에, Unity Resolver의 가이드를 참고하니 설정하니 가능해졌습니다. 

중요한 포인트, Onpostbuild의 수행도는 순서가 정해져 있다는것입니다. 

 

using System.IO;

using UnityEditor;
using UnityEditor.Callbacks;
using UnityEngine;

public class PostProcessIOS : MonoBehaviour
{
    // Must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and
    // that it's added before "pod install" (50).
    [PostProcessBuildAttribute(45)]
    private static void PostProcessBuild_iOS(BuildTarget target, string buildPath)
    {
        if (target == BuildTarget.iOS)
        {
            using (StreamWriter sw = File.AppendText(buildPath + "/Podfile"))
            {
                // E.g. add an app extension
                sw.WriteLine("\ntarget 'NSExtension' do\n  pod 'Firebase/Messaging', '6.6.0'\nend");
            }
        }
    }
}

Sample의 가이드된 내용처럼 반드시 PostProcessbuild attribute가 40~50 사이에 이루어져야 합니다. 

 

자세한 설명 

 

https://github.com/googlesamples/unity-jar-resolver

반응형