Unity Cloud Build에서 Admob에 가입한 Unity 프로젝트에 대한 구성 오류 발생 시 대응 방법
6730 단어 adMobUnityCloudBuildUnityiOS
환경을 확인하다
이벤트
Unity가 제작한 애플리케이션AdMob을 표시하기 위해 가져왔지만Google Mobile Ads Unity Plugin Unity Cloud Build에 iOS를 구축하는 경우 다음과 같은 오류가 발생합니다.Android 구성은 정상적으로 수행됩니다.
log1.txt
2479: [Unity] 'pod' command not found; unable to generate a usable Xcode project. You can install cocoapods with the Ruby gem package manager:
2480: [Unity] > sudo gem install -n /usr/local/bin cocoapods
2481: [Unity] > pod setup
log2.txt2491: [Unity] Error running cocoapods. Please ensure you have at least version 1.0.0. You can install cocoapods with the Ruby gem package manager:
2492: [Unity] > sudo gem install -n /usr/local/bin cocoapods
2493: [Unity] > pod setup
2494: [Unity] 'pod --version' returned status: 1
2495: [Unity] output:
까닭
Google Mobile Ads Unity Plugin 내부에서 iOS 라이브러리의 의존 관계를 관리하기 위해 코코팟을 사용하지만, 유니티 클라우드 빌드에서 코코팟을 사용할 수 없기 때문이다.
해결책
임시 대응일 뿐이지만
Assets/GoogleMobileAds/Editor/AdMobDependencies.cs
의 53줄에서 63줄로 논평을 하고 스크립트를 통해 라이브러리의 의존 관계를 해결하지 않는 것으로 변경했다.AdMobDependencies.cs
#elif UNITY_IOS
// Type iosResolver = Google.VersionHandler.FindClass(
// "Google.IOSResolver", "Google.IOSResolver");
// if (iosResolver == null) {
// return;
// }
// Google.VersionHandler.InvokeStaticMethod(
// iosResolver, "AddPod",
// new object[] { "Google-Mobile-Ads-SDK" },
// namedArgs: new Dictionary<string, object>() {
// { "version", "7.13+" }
// });
#endif // UNITY_IOS
위의 설명을 통해 수동으로 가져오기Google Mobile Ads SDK를 수행해야 하므로 Unity 프로젝트Assets/Plugins/iOS
내에서 구성GoogleMobileAds.framework
해야 합니다.마지막으로 Xcode 프로젝트
Enable Modules (C and Objective-C)
를 자동으로 YES
로 설정하기 위해 Assets/Editor
근처에서 다음 PostProcessBuild 스크립트를 설정하십시오.(Unity에서 Editor 폴더를 특수 폴더로 처리합니다.자세한 내용은 여기. 참조)XcodePostProcessBuild.cs
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
public static class XcodePostProcessBuild
{
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget target, string path)
{
if (target != BuildTarget.iOS)
{
return;
}
var project = new PBXProject();
project.ReadFromFile(PBXProject.GetPBXProjectPath(path));
var projectGuid = project.TargetGuidByName(PBXProject.GetUnityTargetName());
// Enable Modules (C and Objective-C)をYESに設定する
project.SetBuildProperty(projectGuid, "CLANG_ENABLE_MODULES", "YES");
project.WriteToFile(PBXProject.GetPBXProjectPath(path));
}
}
이렇게 되면 Unity Cloud Build에서도 iOS를 통해 구축할 수 있다.
참고 자료
Reference
이 문제에 관하여(Unity Cloud Build에서 Admob에 가입한 Unity 프로젝트에 대한 구성 오류 발생 시 대응 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/murapong/items/98977331e6db4bd6a03f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)