Неопределенные символы для архитектуры armv7 _OBJC_CLASS_$_ALApplicationList theos

Я пытаюсь использовать AppList от rpetrich для динамического отображения списка приложений. . Но при компиляции я получаю следующую ошибку:

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_ALApplicationList", referenced from:
      objc-class-ref in Settings.mm.9ffba1be.o
ld: symbol(s) not found for architecture armv7

Я думаю, что разместил все необходимые заголовочные файлы и библиотеку в правильном месте, как указано в ссылке, т.е. Заголовочные файлы в папке theos include и libapplist.dylib в папке библиотеки theos. Вот мой make-файл:

Создать файл:

include theos/makefiles/common.mk

BUNDLE_NAME = Settings
Settings_FILES = Settings.mm
Settings_INSTALL_PATH = /Library/PreferenceBundles
Settings_FRAMEWORKS = UIKit
Settings_PRIVATE_FRAMEWORKS = Preferences
Settings_LIBRARIES = applist
Settings_LDFLAGS = -lapplist

include $(THEOS_MAKE_PATH)/bundle.mk

internal-stage::
    $(ECHO_NOTHING)mkdir -p $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences$(ECHO_END)
    $(ECHO_NOTHING)cp entry.plist $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/Settings.plist$(ECHO_END)

Настройки.mm

#import <Preferences/Preferences.h>
#import <UIKit/UIKit.h>
#import <AppList/ALApplicationList.h> //no error here. compiles fine

@interface SettingsListController: PSListController {
}
@end

@implementation SettingsListController
- (id)specifiers {
    if(_specifiers == nil) {
        _specifiers = [[self loadSpecifiersFromPlistName:@"Settings" target:self] retain];
    }
    return _specifiers;
}
@end

@interface ApplicationsList : PSListController
{
    BOOL found;
}

@end

@implementation ApplicationsList

- (id)specifiers {
    if(_specifiers == nil) {


        NSMutableArray *__specifiers = [[[NSMutableArray alloc]init] retain];

           ALApplicationList *apps = [ALApplicationList sharedApplicationList]; //list all the apps

         NSArray *displayIdentifiers = [[apps.applications allKeys] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
         return [[apps.applications objectForKey:obj1] caseInsensitiveCompare:[apps.applications objectForKey:obj2]];}]; //sort the apps by display name
        // [displayIdentifiers retain]; //make sure it doesn't disappear when you actually need to use it, if you only use it once, release it

        if(displayIdentifiers.count > 0)
        {
            UIAlertView *myAlert = [[UIAlertView alloc]initWithTitle:@"title" message:@"Wow!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [myAlert show];
            [myAlert release];

        }
        for (int i = 0; i < displayIdentifiers.count; i++) {
            PSSpecifier* specifier = [PSSpecifier preferenceSpecifierNamed:[displayIdentifiers objectAtIndex:i]
                                                                    target:self
                                                                       set:NULL
                                                                       get:NULL
                                                                    detail:Nil
                                                                      cell:PSSwitchCell
                                                                      edit:Nil];


            [specifier setProperty:bundle forKey:@"lazy-bundle"];
            specifier->action = @selector(lazyLoadBundle:);
            [__specifiers addObject:specifier];
            }
            [specifier release];
        }
        _specifiers = [NSArray arrayWithArray:__specifiers];

    }
    return _specifiers;
}

@end

Пожалуйста, скажите мне, что мне не хватает? Я действительно не могу разобраться в этом вопросе. Большое спасибо.


person NightFury    schedule 09.06.2014    source источник
comment
stackoverflow.com/questions/10357311 /   -  person iPatel    schedule 09.06.2014
comment
@iPatel спасибо за ссылку. Но где я должен это сделать в makefile?   -  person NightFury    schedule 09.06.2014
comment
Вы когда-нибудь получали решение для этого?   -  person newenglander    schedule 15.10.2017
comment
Жаль, что прошли годы. Не помню как решил :(   -  person NightFury    schedule 15.10.2017