Facebook-sdk-for-unity: ์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐํ˜ธ : swiftCompatibility

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

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

ํ™˜๊ฒฝ

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

  • Unity ์—๋””ํ„ฐ ๋ฒ„์ „ : 2018.4.23
  • Unity SDK ๋ฒ„์ „ : 7.21.0
  • ์„ค์น˜ ํ”Œ๋žซํผ ๋ฐ ๋ฒ„์ „ : iOS

๋ชฉํ‘œ

์ง€์†์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ์—†์ด Facebook SDK๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

XCode๋Š” SDK๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ

XCode ๋นŒ๋“œ ์‹คํŒจ

์žฌํ˜„ ๋‹จ๊ณ„

7.20.0-> 7.21.0์—์„œ ์—…๋ฐ์ดํŠธํ•˜๊ณ  XCode์—์„œ ๋นŒ๋“œ

์ฝ”๋“œ ์ƒ˜ํ”Œ ๋ฐ ์„ธ๋ถ€ ์ •๋ณด

์ตœ๊ทผ ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ
์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐํ˜ธ : __swift_FORCE_LOAD _ $ _ swiftCompatibilityDynamicReplacements
์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐํ˜ธ : __swift_FORCE_LOAD _ $ _ swiftCompatibility50

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

@ Khaled-Wolf ์ฝ”๋“œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ •๋ง ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ฒŒํ•˜๋”๋ผ๋„ ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์ž๋™์œผ๋กœ ํฌํ•จ๋˜์ง€ ์•Š๊ณ  @NumaNumaNuma๊ฐ€ ์–ธ๊ธ‰ ํ•œ๋Œ€๋กœ ์‹œ์ž‘์‹œ ์•ฑ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ์— FB ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ž„๋ฒ ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์–ด๋–ค ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ค ํŒŒ์ผ์„ ์–ด๋–ค ๋Œ€์ƒ์— ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”์ง€ ์†”์งํžˆ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋“  ์‹œ๋„๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค ... ๊ทธ์— ๋Œ€ํ•œ ๋‹จ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? (๋˜ํ•œ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋‹จ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?)

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

ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‚ด ๋ณด๋‚ธ XCode ํ”„๋กœ์ ํŠธ์˜ Podfile์— use_framework! ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‚ด ๋ณด๋‚ธ XCode ํ”„๋กœ์ ํŠธ์˜ Podfile์— use_framework! ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@KylinChang ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @KylinChang ,
SDK ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€์—์„œ ๋ฒ„๊ทธ๊ฐ€์žˆ๋Š” ๋ฒ„์ „์˜ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๋กœ๊ทธ์— ๋ญ”๊ฐ€ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ use_frameworks! (๋ณต์ˆ˜) ๐Ÿ‘

use_frameworks ์ถ”๊ฐ€ ํ›„! ํ”„๋กœ์ ํŠธ๊ฐ€ ๋นŒ๋“œ๋˜์ง€๋งŒ ์‹œ์ž‘์‹œ์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
[13858:5861271] Error loading /var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit Referenced from: /private/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework Reason: image not found

์ž„๋ฒ ๋””๋“œ ํ”„๋ ˆ์ž„ ์›Œํฌ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด๋„ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! "use_frameworks!"๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋นŒ๋“œ๋Š” ์—ฌ์ „ํžˆ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

use_frameworks ์ถ”๊ฐ€ ํ›„! ํ”„๋กœ์ ํŠธ๊ฐ€ ๋นŒ๋“œ๋˜์ง€๋งŒ ์‹œ์ž‘์‹œ์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
[13858:5861271] Error loading /var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit Referenced from: /private/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework Reason: image not found

์ž„๋ฒ ๋””๋“œ ํ”„๋ ˆ์ž„ ์›Œํฌ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด๋„ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ์–ป๋Š”๋‹ค : /

@KylinChang podfile ์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ ๋นŒ๋“œ ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์‹คํ–‰ํ•  ๋•Œ ๋™์ผํ•œ ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

Unity 2019.4.1, Facebook SDK 7.21.1์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

use_frameworks! ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ปดํŒŒ์ผ๋˜์ง€๋งŒ ๊ทธ๋Ÿฐ ํ”„๋ ˆ์ž„ ์›Œํฌ๋Š” ์–ด๋–ป๊ฒŒ ๋“  ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ด๊ฒƒ์„ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์ง€๋งŒ ์–ด์จŒ๋“  Unity ์ƒ์„ฑ XCode ์ž‘์—… ์˜์—ญ / ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋ฏธ ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด CI ์‹œ์Šคํ…œ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

podfile์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ • ํ•œ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ Facebook SDK๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์‰ฌ์šด ์ž‘์—…์„ ์œ„ํ•ด ํ•  ํ•„์š”๊ฐ€์—†๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.

Unity 2019.4.1, Facebook SDK 7.21.1์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

use_frameworks! ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ปดํŒŒ์ผ๋˜์ง€๋งŒ ๊ทธ๋Ÿฐ ํ”„๋ ˆ์ž„ ์›Œํฌ๋Š” ์–ด๋–ป๊ฒŒ ๋“  ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ด๊ฒƒ์„ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์ง€๋งŒ ์–ด์จŒ๋“  Unity ์ƒ์„ฑ XCode ์ž‘์—… ์˜์—ญ / ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋ฏธ ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด CI ์‹œ์Šคํ…œ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

podfile์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ • ํ•œ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ Facebook SDK๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์‰ฌ์šด ์ž‘์—…์„ ์œ„ํ•ด ํ•  ํ•„์š”๊ฐ€์—†๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ podfile์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํฌ์ŠคํŠธ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ MonoBehaviour ํŒŒ์ผ (์˜ˆ : PostProcessBuild_Podfile.cs)์„ ๋งŒ๋“ค๊ณ  Assets / Editor ํด๋”์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

System.Collections ์‚ฌ์šฉ;
System.Linq ์‚ฌ์šฉ;
System.Collections.Generic ์‚ฌ์šฉ;
UnityEngine ์‚ฌ์šฉ;
UnityEditor ์‚ฌ์šฉ;
UnityEditor.Callbacks ์‚ฌ์šฉ;
System.IO ์‚ฌ์šฉ;

๊ณต์šฉ ํด๋ž˜์Šค PostProcessBuild_Podfile : MonoBehaviour
{
[PostProcessBuildAttribute (45)] // Podfile ์ƒ์„ฑ (40)์— ์˜ํ•ด ์žฌ์ •์˜๋˜์ง€ ์•Š๊ณ  "pod ์„ค์น˜"(50) ์ „์— ์ถ”๊ฐ€๋˜๋„๋กํ•˜๋ ค๋ฉด 40์—์„œ 50 ์‚ฌ์ด ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.
๊ฐœ์ธ ์ •์  ๋ฌดํšจ PostProcessBuild_iOS (BuildTarget ๋Œ€์ƒ, ๋ฌธ์ž์—ด buildPath)
{
if (๋Œ€์ƒ == BuildTarget.iOS)
{
var fileName = buildPath + "/ Podfile";
var endTag = "ํ”Œ๋žซํผ : ios, '9.0'";
var lineToAdd = "use_frameworks!";

        Debug.Log("PostProcess: Adding use_frameworks! to podfile, this fix for new Facebook SDK");
        var txtLines = File.ReadAllLines(fileName).ToList();
        txtLines.Insert(txtLines.IndexOf(endTag)+1, lineToAdd);
        File.WriteAllLines(fileName, txtLines);
        Debug.Log("PostProcess: Adding use_frameworks! to podfile Completed successfully!");
    }
}

}

image

@ Khaled-Wolf ์ฝ”๋“œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ •๋ง ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ฒŒํ•˜๋”๋ผ๋„ ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์ž๋™์œผ๋กœ ํฌํ•จ๋˜์ง€ ์•Š๊ณ  @NumaNumaNuma๊ฐ€ ์–ธ๊ธ‰ ํ•œ๋Œ€๋กœ ์‹œ์ž‘์‹œ ์•ฑ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ์— FB ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ž„๋ฒ ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์–ด๋–ค ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ค ํŒŒ์ผ์„ ์–ด๋–ค ๋Œ€์ƒ์— ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”์ง€ ์†”์งํžˆ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋“  ์‹œ๋„๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค ... ๊ทธ์— ๋Œ€ํ•œ ๋‹จ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? (๋˜ํ•œ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋‹จ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?)

์ง€๊ธˆ์€ ์ด์ „ ๋ฒ„์ „์˜ sdk๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋˜๋Œ ๋ ธ์Šต๋‹ˆ๋‹ค (7.19.2๋Š” 7.0 swift iOS sdk๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ตœ์‹  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค).

๋˜ํ•œ use_frameworks๋กœ 7.19.2๋กœ ๋˜๋Œ ๋ ธ์Šต๋‹ˆ๋‹ค! ๋‚ด๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ ๋‹ค๋ฅธ ํฌ๋“œ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ ๋œ Facebook SDK๊ฐ€ ๋‹ค์‹œ ์‹œ๋„ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@NumaNumaNuma ์˜ˆ, ์ง€๊ธˆ์€ ์œ ์ผํ•œ ์˜ต์…˜ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์—†์ด ์ปดํŒŒ์ผ๋˜๊ณ  ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค! ๊ณต์œ  ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ "use_frameworks!"๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Podfile์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋‚ด ๋ณด๋‚ธ iOS ํ”„๋กœ์ ํŠธ์— ๋นˆ ์‹ ์†ํ•œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ์ด ๋ฌธ์ œ๋Š” https://github.com/facebook/facebook-sdk-for-unity/commit/8fdb57a76d2f5a14c168e91663280d40f274c74c ์—์„œ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@KylinChang ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ด๋ฏธ ๊ทธ ์ปค๋ฐ‹์—์„œ 6 ์ผ์ž…๋‹ˆ๋‹ค. ํŠธ๋ž˜๋น„์Šค์—์„œ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ์ด์œ ์™€ ์•„์ง ์ถœ์‹œ๋˜์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@Thaina ์„œ๋‘๋ฅด๋ฉด ์ˆ˜๋™์œผ๋กœ ์‹œ๋„ํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฐ‹์„ ๋ณด๋ฉด ๋งค์šฐ ์ž‘์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋ฏ€๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นˆ swift ํŒŒ์ผ๊ณผ 2 ๊ฐœ์˜ ๋นŒ๋“œ ์†์„ฑ์„ unity์˜ ๋นŒ๋“œ ํ›„ ์Šคํฌ๋ฆฝํŠธ์—์„œ xcode ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœํ•ด์•ผํ•˜๋Š” ์ผ์€ ์งœ์ฆ๋‚˜์ง€๋งŒ ์ถœ์‹œํ•˜๋Š” ๋™์•ˆ ๋ฉฐ์น  (๋ช‡ ์ฃผ?)์„ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋‹ˆ๋ฉด ๊ทธ๋“ค์€ ๋งค์ฃผ ๋ฐœํ‘œํ•˜๊ณ  ๋‚ด์ผ ๋‚˜์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค : D

@NumaNumaNuma ๋จผ์ € ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ–ˆ๊ฑฐ๋‚˜ ์ˆ˜์ •์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ํŽ˜์ด์Šค ๋ถ SDK ํŒจํ‚ค์ง€์—์„œ ์ง์ ‘ ์ˆ˜์ •ํ•ด์•ผํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ, ๊ณต์‹์ ์ด์ง€ ์•Š์•„ ๋‚ด ์ฝ”๋“œ๋ฅผ ์˜ค์—ผ์‹œํ‚ค๊ณ  ํ–ฅํ›„ ์‹ค์ œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋‚˜์˜ฌ ๋•Œ ์‹ค์ œ๋กœ ์ œ๊ฑฐํ•ด์•ผํ•˜๋ฏ€๋กœ์ด๋ฅผ ํ”ผํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ํŽ˜์ด์Šค ๋ถ์ด ๊ณง ์ถœ์‹œํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ธฐ ์ „์— ๊ทธ๋ ‡๊ฒŒํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์…‹์งธ, ์ ์–ด๋„ Unity 2020.2์—์„œ๋Š” ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  • .swift ๋Š” Editor ํด๋”์—์žˆ์„ ์ˆ˜ ์—†์œผ๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‹ค์ œ xcode ํ”„๋กœ์ ํŠธ์— ๋ณต์‚ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 2019.3 ์ดํ›„ Unity๋Š” ๋นŒ๋“œ ๊ตฌ์กฐ๋ฅผ ๋ฉ”์ธ ๋ฐ ํ”„๋ ˆ์ž„ ์›Œํฌ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    • ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์ฃผ ๋Œ€์ƒ์—์„œ๋งŒ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES ๋ฅผ YES ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • Invalid bundleโ€ฆ contains disallowed file 'frameworks' ์˜ค๋ฅ˜ ์›์ธ์„ ๋ชจ๋‘ ๋Œ€์ƒ์œผ๋กœ ์„ค์ •

์ œ ๊ฒฝ์šฐ์—๋Š” .swift ์™ธ๋ถ€๋กœ Assets ํด๋”๋กœ ์ด๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด์™€ ๊ฐ™์€ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

```C #

UNITY_2019_3_OR_NEWER ์ธ ๊ฒฝ์šฐ

    string target = proj.GetUnityMainTargetGuid();

๊ทธ๋ฐ–์—

    string targetName = PBXProject.GetUnityTargetName();
    string target = proj.TargetGuidByName(targetName);

endif

////

UNITY_2019_3_OR_NEWER ์ธ ๊ฒฝ์šฐ

    foreach(var framework in new [] { target,proj.GetUnityFrameworkTargetGuid() })

๊ทธ๋ฐ–์—

    foreach(var framework in new [] { target })

endif

    {
        proj.SetBuildProperty(framework, "ENABLE_BITCODE", "NO");
        proj.SetBuildProperty(framework, "EMBEDDED_CONTENT_CONTAINS_SWIFT", "YES");
        proj.SetBuildProperty(framework, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
        proj.SetBuildProperty(framework, "SWIFT_VERSION", "5.0");
    }

```

ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ "use_frameworks!"๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Podfile์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋‚ด ๋ณด๋‚ธ iOS ํ”„๋กœ์ ํŠธ์— ๋นˆ ์‹ ์†ํ•œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ์ด ๋ฌธ์ œ๋Š” 8fdb57a ์—์„œ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”! ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฆด๋ฆฌ์Šค ํ•  ๋•Œ ๋ง์”€ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

@KylinChang ์ด ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด์ „ ๋ฒ„์ „์˜ Unity์— ์ ํ•ฉํ•˜์ง€๋งŒ Unity 2019.3 ์ด์ƒ์—์„œ๋Š” "์ˆ˜์ •"ํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ๋Œ€์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/YousicianGit/facebook-sdk-for-unity/commit/878fc7b73d9a2c3751bb36792f0276cdfacf9495

๊ณง PR์— ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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