【Unity】 FBLPromises エラー Xcodeで非推奨になったBitcodeを自動的にオフにする
お久しぶりです。マカロンです。
今回は Xcodeで非推奨になったBitcodeを自動的にUnity内でオフして
いちいちビルドした後にXcode側で設定しなくても済むように
する方法を紹介したいと思います。
それでは早速いきましょう!
そもそもBitcodeとは
BitcodeはXcodeの機能で
を実装する際に
よく出るエラーの一つで厄介な存在です。
概要はこちらの記事がわかりやすくまとめてくれています。
FirebaseやAdmobを実装して
Xcodeでビルドした際に下記のようなエラーが出る場合があります。
これがBitcodeのエラーで非推奨となったBitcodeの機能をオフにする
必要があるのですが、Target内のどのBitcodeの設定を切ればいいのかだったり他のエラーと混合してエラーの原因を複雑にする要因なのです。
この機能が必要なパターンは存在しないのでUnity側で切っちゃって
この問題に悩むことのないようにしていきたいと思います。
コード
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using System.Collections;
using System.Collections.Generic;
#if UNITY_IOS
using UnityEditor.iOS.Xcode;
#endif
public class PostXcodeBuild
{
#if UNITY_IOS
static void addUnityFrameworkBitcodeSetting(string pathToBuiltProject)
{
string projPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";
var pbxProject = new PBXProject();
pbxProject.ReadFromFile(projPath);
// UnityFramework
string target = pbxProject.GetUnityFrameworkTargetGuid();
pbxProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
File.WriteAllText(projPath, pbxProject.WriteToString());
}
[PostProcessBuild]
public static void SetXcodePlist(BuildTarget buildTarget, string pathToBuiltProject)
{
if (buildTarget != BuildTarget.iOS)
{
return;
}
/*addUnityFrameworkBitcodeSetting*/
addUnityFrameworkBitcodeSetting(pathToBuiltProject);
}
#endif
}
こちらをAssets直下のEditorファイルに入れてください。
動きとしてはUnity FrameworkのBitcodeをオフにしているだけです。
[PostProcessBuild]で呼び出すことでXcodeの設定をUnityで設定できます。
最後に
短い記事となりましたが、忘れた頃に躓くので
未来の自分のためにも書き残しておきます。誰かの役に立てば幸いです。
もしこの記事が役に立った!と思ってくれたら
ぜひウチのゲームを遊んでやってください、お願いします!
ではまた!
ゲームを作るにはやはりお金がないとできることが限られてしまいます。なのでよろしければどうか支援してくださるとうれしいです