实际上,我是Unity开发人员,我对XCode和Objective C一无所知。但我必须使用ObjC库进行一些集成,并从Unity调用此函数。所以我导入该库来创建XCode项目并在Unity和XCode之间编写一些包装代码。当我尝试调用空函数时,它对我有用。但是当我尝试在C文件中编写ObjC方法时,它会导致链接器错误,我不知道它有什么问题。所以,这是交易:
在Unity MonoBehaviour.cs中:
[DllImport("__Internal")]
public static extern void startWithAPIKey(string apiKey);
...
startWithAPIKey(apiKey);
在XCode Wrapper.h中:
@interface IOSYandexMetricaWrapper : NSObject
@end
在XCode Wrapper.m中:
#import "YandexMobileMetrica.h" //library header
#import "IOSYandexMetricaWrapper.h"
void startWithAPIKey(char *apiKey) {
//method that i want to call
[YMMYandexMetrica startWithAPIKey:(NSString *)apiKey];
}
所以它编译,但链接器说这样的事情:
Undefined symbols for architecture armv7: "_OBJC_CLASS_$_YMMYandexMetrica", referenced from: objc-class-ref in IOSYandexMetricaWrapper.o
有人可以帮我解决问题吗?
答案 0 :(得分:0)
有时可能会导致这种情况,因为目标中未包含YMMYandexMetrica
。
要判断它是否包含在目标中,请按导航器中的YMMYandexMetrica.m
文件,然后打开Utilities侧栏。您应该看到一个名为“目标成员资格”的子部分 - 应勾选项目名称旁边的复选框。
有关此问题的更多详细信息可以在此处:
http://williamboles.me/_objc_class__-errors/
(它与Xcode 4有点过时,但我认为仍与您的问题相关)
答案 1 :(得分:0)
将YMMYandexMetrica
添加到项目构建阶段设置中:)