Unity에서 Xcode 래퍼 메서드 호출 방법

1. C++ 인터페이스 구현

// C++ 스타일 코드로 컴파일 지시어 추가
#ifdef __cplusplus
extern "C" {
#endif

// C 문자열을 NSString으로 변환
NSString* CStringToNSString(const char* c) {
return [NSString stringWithCString:c encoding:NSUTF8StringEncoding];
}

// Unity 초기화 메서드
void Initialize(const char* objectName) {
[UnityExtension sharedInstance].observer = CStringToNSString(objectName);
NSLog(@"등록된 객체명: %@", objectName);
}

#ifdef __cplusplus
}
#endif

2. 라이브러리 패키징 및 통합

프로젝트 설정 화면에서 아래와 같이 구성 후 실행 버튼 클릭
빌드 완료 후 생성된 .a 파일을 Unity의 Plugins/ios 폴더에 복사

3. Unity C# 인터페이스 구현

using System;
using UnityEngine;

/// <summary>
/// iOS 네이티브 API 브릿지
/// </summary>
public class IOSBridge 
{
   #if UNITY_IOS
   
    [DllImport("__Internal")]
    public static extern void Initialize(string objectName);

   #endif
}
using System;
using UnityEngine;

/// <summary>
/// 확장 기능 관리자
/// </summary>
public class ExtensionManager : MonoBehaviour
{
    private void Awake() {
        DontDestroyOnLoad(this);
    }

    public void SetupSDK() {
        #if UNITY_IOS
        IOSBridge.Initialize(gameObject.name);
        #endif
    }
}
using UnityEngine;

/// <summary>
/// 싱글톤 패턴 기반 컨테이너
/// </summary>
/// <typeparam name="T">타입 파라미터</typeparam>
public abstract class SingletonContainer<T> : MonoBehaviour where T : SingletonContainer<T> {
    private static T _instance;

    public static T Instance {
        get {
            if (_instance == null) {
                _instance = FindObjectOfType<T>();
                if (_instance == null) {
                    GameObject container = new GameObject($"Singleton_{typeof(T)}");
                    _instance = container.AddComponent<T>();
                    _instance.Init();
                }
            }
            return _instance;
        }
    }

    protected virtual void Init() { }
}
using UnityEngine;

public class TestInitializer : MonoBehaviour {
    void Start() {
        Debug.Log("=== SDK 초기화 시작 ===");
        ExtensionManager.Instance.SetupSDK();
    }
}

4. iOS 배포 설정

5. 테스트 실행 절차

생성한 .ipa 파일을 이중클릭하여 설치
계정 인증 후 앱 실행 시 메시지 확인
성공적으로 연결되었음을 나타내는 로그 출력 확인

태그: Unity C++ iOS DllImport Objective-C

5월 30일 03:16에 게시됨