El marco de iOS no se puede actualizar después del file inicial.

Estoy creando un marco de iOS para usar en otra aplicación. Rudamente seguí este tutorial para levantarme y seguir.

Todo funcionó bien inicialmente. Archivé el proyecto que era tan simple como el siguiente:

Eh

#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> FOUNDATION_EXPORT double EVersionNumber; FOUNDATION_EXPORT const unsigned char EVersionString[]; @interface E : NSObject + (void)showAlert; @end 

Em

 #import "Eh" @implementation E + (void)showAlert { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello There!" message:@"" delegate:nil cancelButtonTitle:@"Cool" otherButtonTitles:nil]; [alert show]; } @end 

Incluí la salida archivada de los directorys Debug y Release en mi aplicación y agregué la reference al file .framework través de la sección Embedded Binary de la configuration de compilation de la aplicación.

Corrí la aplicación con esta parte principal:

ViewController.m

 #import "ViewController.h" #import "Eh" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [E showAlert]; } @end 

Todo funciona perfectamente aquí.

Sin embargo, la rareza comenzó cuando intenté agregar un método al código del marco. Actualicé todo el control de versiones, limpié, archivé la nueva versión del framework, eliminé toda la información del framework anterior de la aplicación donde se incluyó y luego agregué la nueva versión del framework a la aplicación.

Estos son los files de estructura actualizados:

Eh

 #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> FOUNDATION_EXPORT double EVersionNumber; FOUNDATION_EXPORT const unsigned char EVersionString[]; @interface E : NSObject + (void)showAlert; + (void)showNewAlert; @end 

Em

 #import "Eh" @implementation E + (void)showAlert { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello There!" message:@"" delegate:nil cancelButtonTitle:@"Cool" otherButtonTitles:nil]; [alert show]; } + (void)showNewAlert { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New Method!" message:@"Does this work??" delegate:nil cancelButtonTitle:@"Cool" otherButtonTitles:nil]; [alert show]; } @end 

Corrí la aplicación con este nuevo código:

ViewController.m

 #import "ViewController.h" #import "Eh" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [E showNewAlert]; } @end 

La aplicación se comstack con éxito, pero obtengo esto cuando lo ejecuto:

 +[E showNewAlert]: unrecognized selector sent to class 0x10ef57188 

¿Por qué E es una subclass de NSObject y no una subclass de UIViewController?