Undefined symbol: _OBJC_CLASS_$_ADClient in Xcode 16

Hi, I get issue after build for iOS in new Macos Sequila and Xcode 16 that undefined symbol ADClient in UnityFramework. I tried all fix step using chat gpt and nothing solving this issue. Please help me if anyone have solved this issue. Thanks

Unity 2022.3.37f1
Adapty.io plugin for Unity
Ads mediation 8.3.0
Macos Sequila
Xcode 16

Looks like Unity 2020.3 is finally not fully supported in the new version of Xcode anymore (it’s still referencing the iAd framework, which has been deprecated for a long time).
Since the missing class is not very important, and haven’t worked for a long anyway, a very quick-and-dirty way to fix it is to just add an empty implementation yourself directly into one of the UnityFramework header files.
This is what I did, I added the following code at the end of UnityFramework.h in Xcode, and it seems to not cause any problems:

#pragma once

@interface ADClient : NSObject {}

+ (ADClient *)sharedClient;

- (void)requestAttributionDetailsWithBlock:(void (^)(NSDictionary<NSString *,NSObject *> * attributionDetails, NSError * error)) completionHandler;

@end

@implementation ADClient

static ADClient *sharedInstance = nil;

+ (ADClient *)sharedClient {
    if (sharedInstance == nil) {
        sharedInstance = [[ADClient alloc] init]; 
    }
    
    return sharedInstance; 
}

- (void)requestAttributionDetailsWithBlock:(void (^)(NSDictionary<NSString *,NSObject *> * attributionDetails, NSError * error)) completionHandler {
    
}

@end

Hope it’ll work for other people and solve a few headaches. One note is that this is probably going to be cleared out when you re-build from Unity, someone else will have to figure out a more permanent solution :stuck_out_tongue:

1 Like

Wow! Thanks, it works!