Facebook-sdk-for-unity: Unity 2019.3-RegisterMonoModule.h ๋ˆ„๋ฝ

์— ๋งŒ๋“  2019๋…„ 11์›” 26์ผ  ยท  11์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/facebook-sdk-for-unity

## ์ฒดํฌ๋ฆฌ์ŠคํŠธ

## ํ™˜๊ฒฝ
์—ฌ๊ธฐ์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค๋ช…ํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”. ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ํฌํ•จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  • Unity ์—๋””ํ„ฐ ๋ฒ„์ „ : 2019.3.12b
  • Unity SDK ๋ฒ„์ „ : 7.18.0, 7.17.2
  • ์„ค์น˜ ํ”Œ๋žซํผ ๋ฐ ๋ฒ„์ „ : [iOS] ๋ฒ„์ „ 10.0+

    ๋ชฉํ‘œ

    Unity 2019.3์„ ์‚ฌ์šฉํ•˜์—ฌ iOS ์šฉ ๋นŒ๋“œ

    ์˜ˆ์ƒ ๊ฒฐ๊ณผ

    ์„ฑ๊ณต์ ์ธ ๋นŒ๋“œ

    ์‹ค์ œ ๊ฒฐ๊ณผ

RegisterMonoModule.h๊ฐ€ ๋” ์ด์ƒ Unity 2019.3์—์„œ ์„ค๊ณ„ ์ƒ ์ œ๊ณต๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค : https://issuetracker.unity3d.com/issues/filenotfoundexception-when-building-a-project-with-facebook-sdk-for-ios

์ตœ์†Œ Unity ์ง€์› ๋ฒ„์ „์ด ์ด๋ฏธ 5.4์ด๋ฏ€๋กœ RegisterMonoModules.cpp ๋ฐ RegisterMonoModules.hi์™€ ๊ด€๋ จ๋œ FixUp ๋ถ€๋ถ„์„ ๊ฐ„๋‹จํžˆ ์ œ๊ฑฐํ•˜๊ณ  FBUnityInterface.h์—์„œ 21-27 ํ–‰์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

## ์žฌํ˜„ ๋‹จ๊ณ„
์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  1. 2019.3+์— ๋นˆ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ
  2. FB SDK 7.18.0 ๋˜๋Š” 7.17.2 ์ถ”๊ฐ€
  3. IOS๋ฅผ์œ„ํ•œ ๋นŒ๋“œ ์‹œ๋„

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์˜ค๋ฅ˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋กœ์ปฌ ๋นŒ๋“œ๊ฐ€ ๋นŒ๋“œ๋˜์—ˆ์ง€๋งŒ ๋ˆ„๋ฝ ๋œ ํŒŒ์ผ๋กœ ์ธํ•ด ๋ฐฐ์น˜ ๋ชจ๋“œ์˜ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

Facebook / FacebookSDK / SDK / Editor / iOS / FBUnityInterface.h์—์„œ #include "RegisterMonoModules.h"๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํ•ญ์ƒ UnityTrampolineConfigure.h๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์งœ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

#if UNITY_2019_3_OR_NEWER

using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;

namespace BuildTools.Editor
{
    public static class TemporaryFacebookFix20193
    {
        [PostProcessBuild(99)]
        static void BeforeFacebookOnPostProcessBuild(BuildTarget target, string pathToBuiltProject)
        {
            if(target != BuildTarget.iOS)
            {
                return;
            }

            var fullPath = Path.Combine(pathToBuiltProject, Path.Combine("Libraries", "RegisterMonoModules.h"));
            if(!File.Exists(fullPath))
            {
                File.Create(fullPath).Close();
            }
        }
    }
}
#endif

๋ชจ๋“  11 ๋Œ“๊ธ€

ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

Facebook / FacebookSDK / SDK / Editor / iOS / FBUnityInterface.h ์—์„œ #include "RegisterMonoModules.h" ๋ฅผ ์ œ๊ฑฐ ํ•˜๊ณ  ํ•ญ์ƒ UnityTrampolineConfigure.h ํฌํ•จํ•˜๋ฉด ํšจ๊ณผ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


RegisterModules.h ๋ฉ”์„œ๋“œ ๋งŒ์žˆ๋Š” ํŒŒ์ผ : void RegisterMonoModules();
Unity 2019.3์—์„œ๋Š” ํ˜„๋ช…ํ•˜๊ฒŒ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Facebook SDK๋Š” Unity๊ฐ€ 4.3 xD๋ณด๋‹ค ์ƒˆ๋กœ์šด ๊ฒฝ์šฐ HAS_UNITY_VERSION_DEF๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์ด ํŒŒ์ผ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
https://github.com/facebook/facebook-sdk-for-unity/blob/f76fd1cec1f08a36d90b21c8ab74cba1168f0d84/Facebook.Unity.Editor/iOS/FixupFiles.cs

๋”ฐ๋ผ์„œ FBUnityInterface.h๋„ ํ•ญ์ƒ UnityTrampolineConfigure.h๋ฅผ ํฌํ•จํ•˜๋„๋ก ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค (์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋™์ž‘์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด).

๋‚˜๋„์ด ๋ฌธ์ œ๊ฐ€์žˆ๋‹ค!
#include "RegisterMonoModules.h"๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ /Pods/Headers/Public/FBSDKShareKit/FBSDKShareKit/FBSDKHashtag.h:24:9 : ๋ชจ๋“ˆ 'FBSDKCoreKit'์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Facebook์ด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐœํ‘œ ํ•  ๋•Œ๊นŒ์ง€ ์ตœ์„ ์˜ ํ•ด๊ฒฐ์ฑ…์€ ์ œ๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ ์ค‘ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋นˆ RegisterMonoModules.h ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ
  • FBUnityInterface.h ์˜†์˜ 'Unity /..../ Trampoline / ..'์•ˆ์— ๋ณต์‚ฌํ•˜์‹ญ์‹œ์˜ค.
  • ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ ํ•œ ํ›„ XCode์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋„ ๋ณต์‚ฌํ•˜์‹ญ์‹œ์˜ค.

๊ทธ ํŒŒ์ผ์€ ์ด์ œ ์“ธ๋ชจ๊ฐ€ ์—†์ง€๋งŒ FB SDK๋Š” ์—ฌ์ „ํžˆ ๊ทธ๊ฒƒ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

์ด ํŒŒ์ผ์€ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค ๋ฅผ ์ค‘๋‹จํ•˜๋Š” ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค

์•„๋ฌด๋„ ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•„์ง ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๊นŒ?

"#include RegisterModules.h"์ค„์— ์ฃผ์„์„ ๋‹ฌ์•˜์ง€๋งŒ ๊ฒŒ์ž„์„ ๋‹ค์‹œ ๋นŒ๋“œํ–ˆ์„ ๋•Œ ์—ฌ์ „ํžˆ RegisterModules.h๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@ h3902340 dll ์ค‘ ํ•˜๋‚˜์— RegisterModules.h์— ๋Œ€ํ•œ ์ฐธ์กฐ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Unity ์šฉ Facebook SDK๋ฅผ 7.18.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. "#include RegisterModules.h"์ค„ ์ด ์ œ๊ฑฐ๋˜์—ˆ์ง€๋งŒ

์˜ค๋ฅ˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋กœ์ปฌ ๋นŒ๋“œ๊ฐ€ ๋นŒ๋“œ๋˜์—ˆ์ง€๋งŒ ๋ˆ„๋ฝ ๋œ ํŒŒ์ผ๋กœ ์ธํ•ด ๋ฐฐ์น˜ ๋ชจ๋“œ์˜ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

Facebook / FacebookSDK / SDK / Editor / iOS / FBUnityInterface.h์—์„œ #include "RegisterMonoModules.h"๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํ•ญ์ƒ UnityTrampolineConfigure.h๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์งœ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

#if UNITY_2019_3_OR_NEWER

using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;

namespace BuildTools.Editor
{
    public static class TemporaryFacebookFix20193
    {
        [PostProcessBuild(99)]
        static void BeforeFacebookOnPostProcessBuild(BuildTarget target, string pathToBuiltProject)
        {
            if(target != BuildTarget.iOS)
            {
                return;
            }

            var fullPath = Path.Combine(pathToBuiltProject, Path.Combine("Libraries", "RegisterMonoModules.h"));
            if(!File.Exists(fullPath))
            {
                File.Create(fullPath).Close();
            }
        }
    }
}
#endif

๋ฐ˜๋ณต @ h3902340

177ff89235716c0f9c4225cf9c11355115da2282๊ฐ€ #include "RegisterMonoModules.h" ์ œ๊ฑฐ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ RegisterMonoModules.h์— ์˜์กดํ•˜๋Š” ์ฝ”๋“œ๋Š” ์—ฌ์ „ํžˆ ๋งˆ์Šคํ„ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ HAS_UNITY_VERSION_DEF ๋Š” FBUnityInterface.h (์ˆ˜์ • ๋œ RegisterMonoModules.h์—์„œ ์ •์˜ ๋จ)์— ์ •์˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ „์ฒ˜๋ฆฌ ๊ธฐ๊ฐ€ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

#if HAS_UNITY_VERSION_DEF
#include "UnityTrampolineConfigure.h"
#endif

์ด ํŒŒ์ผ์€ Unity 4.3 ์ด์ƒ์šฉ์œผ๋กœ ๋นŒ๋“œ ํ•  ๋•Œ Unity ์šฉ Facebook SDK์˜ ์ด์ „ ๋ฒ„์ „์— ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด 177ff89235716c0f9c4225cf9c11355115da2282 (์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์ปค๋ฐ‹)์˜ ์˜๋„ ๋œ ๋ถ€์ž‘์šฉ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

_ HAS_UNITY_VERSION_DEF ๋‹ค์‹œ ์—…๋ฐ์ดํŠธ : _
UnityTrampolineConfigure.h๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Unity์— ์˜ํ•ด ์ž๋™ ์ƒ์„ฑ ๋œ ํŒŒ์ผ๋กœ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

#define UNITY_VERSION 201930

// known unity versions
#define UNITY_4_2_0 420
#define UNITY_4_2_1 421
#define UNITY_4_2_2 422
// ---8<---
#define UNITY_2019_1_0 201910
#define UNITY_2019_2_0 201920
#define UNITY_2019_3_0 201930

๊ทธ๋ž˜์„œ #include "UnityTrampolineConfigure.h"์™€ ๊ทธ๊ฒƒ์„ ๋‘˜๋Ÿฌ์‹ผ #ifdef๋Š” ๋ฌธ์ œ์—†์ด ์ œ๊ฑฐ ๋  ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. UNITY_VERSION์€ SDK์˜ ์–ด๋””์—๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค ...

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰