You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 23, 2024. It is now read-only.
Apple M1 Max
Unity: 2021.3.32f1 Personal
XCODE: Version 15.0.1 (15A507)
Не знаю по каким причинам, запрос к IDFA больше не показывается.
Я перепробовал всё, и даже более старые версии Unity.
Что-то мне подсказывает что, что-то поменялось в Xcode.
Я начал смотреть и дебажить вашу реализацию запроса.
Вот она
/Assets/AppMetrica/Plugins/iOS/YMMBridge.m
void ymm_requestTrackingAuthorization(YMMRequestTrackingAuthorization callbackDelegate, YMMAction actionPtr)
{
if (@available(iOS 14, *)) {
void *handle = dlopen("AppTrackingTransparency.framework/AppTrackingTransparency", RTLD_LAZY);
if (handle != NULL) {
Class gMMSTrackingManager = NSClassFromString(@"ATTrackingManager");
if ([gMMSTrackingManager respondsToSelector:@selector(requestTrackingAuthorizationWithCompletionHandler:)]) {
[gMMSTrackingManager performSelector:@selector(requestTrackingAuthorizationWithCompletionHandler:) withObject:^(YMMTrackingStatus status) {
if (callbackDelegate != nil) {
callbackDelegate(actionPtr, status);
}
}];
}
}
}
}
и заметил что он не находит библиотеку при попытке динамической загрузки.
void *handle = dlopen("AppTrackingTransparency.framework/AppTrackingTransparency", RTLD_LAZY);
ну и дальше собственно ничего не происходит.
Я решил временно для себя вопрос, руками добавил
#import <AppTrackingTransparency/AppTrackingTransparency.h>
его же добавил в xcode в UnityFramework -> General -> Framework and Libraries -> AppTrackingTransparency.framework
в вашем коде убрал динамическую загрузку и все начинает работать .
void ymm_requestTrackingAuthorization(YMMRequestTrackingAuthorization callbackDelegate, YMMAction actionPtr)
{
if (@available(iOS 14, *)) {
Class gMMSTrackingManager = NSClassFromString(@"ATTrackingManager");
if ([gMMSTrackingManager respondsToSelector:@selector(requestTrackingAuthorizationWithCompletionHandler:)]) {
[gMMSTrackingManager performSelector:@selector(requestTrackingAuthorizationWithCompletionHandler:) withObject:^(YMMTrackingStatus status) {
if (callbackDelegate != nil) {
callbackDelegate(actionPtr, status);
}
}];
}
}
}
The text was updated successfully, but these errors were encountered:
Мне почему то кажется что Xcode выпилил возможность динамически подключать этот фреймворк потому что он теперь доступен в XCODE. и добавляется через Линковку.
В динамическом подключении мне думается уже нет смысла.
Я так же добавил в юнити при билде автоматическое подключение этого фреймворвка, чтобы при каждом билде его не добавлять руками.
/Assets/Editor/XcodeSwiftVersionPostProcess.cs
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
public static class XcodeSwiftVersionPostProcess
{
[PostProcessBuild(999)]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
if (buildTarget == BuildTarget.iOS)
{
AddAppTrackingTransparency(path);
}
}
private static void AddAppTrackingTransparency(string path)
{
// Путь к папке проекта Xcode
string projPath = PBXProject.GetPBXProjectPath(path);
PBXProject proj = new PBXProject();
proj.ReadFromFile(projPath);
#if UNITY_2019_3_OR_NEWER
string targetGuid = proj.GetUnityMainTargetGuid();
#else
string targetGuid = proj.TargetGuidByName(PBXProject.GetUnityTargetName());
#endif
// Добавить фреймворк AppTrackingTransparency.framework
proj.AddFrameworkToProject(targetGuid, "AppTrackingTransparency.framework", false);
// Сохранить изменения в файле проекта
proj.WriteToFile(projPath);
}
}
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Apple M1 Max
Unity: 2021.3.32f1 Personal
XCODE: Version 15.0.1 (15A507)
Не знаю по каким причинам, запрос к IDFA больше не показывается.
Я перепробовал всё, и даже более старые версии Unity.
Что-то мне подсказывает что, что-то поменялось в Xcode.
Я начал смотреть и дебажить вашу реализацию запроса.
Вот она
/Assets/AppMetrica/Plugins/iOS/YMMBridge.m
и заметил что он не находит библиотеку при попытке динамической загрузки.
void *handle = dlopen("AppTrackingTransparency.framework/AppTrackingTransparency", RTLD_LAZY);
ну и дальше собственно ничего не происходит.
Я решил временно для себя вопрос, руками добавил
#import <AppTrackingTransparency/AppTrackingTransparency.h>
его же добавил в xcode в UnityFramework -> General -> Framework and Libraries -> AppTrackingTransparency.framework
в вашем коде убрал динамическую загрузку и все начинает работать .
The text was updated successfully, but these errors were encountered: