Envía de forma progtwigda iMessage utilizando frameworks privados

¿Alguien sabe si es posible enviar directamente un iMessage usando un marco privado?

Intenté utilizar CTMessageCenter desde CoreTelephony pero enviará un SMS aunque mi teléfono pueda enviar iMessages.

No he probado esto, pero mira el código publicado aquí . Si miras httpResponseForMethod:URI: ves dónde envía un post (parece ser un código rígido para admitir iOS 5 o iOS 4 ):

 CKSMSService *smsService = [CKSMSService shanetworkingSMSService]; //id ct = CTTelephonyCenterGetDefault(); CKConversationList *conversationList = nil; NSString *value =[[UIDevice currentDevice] systemVersion]; if([value hasPrefix:@"5"]) { //CKMadridService *madridService = [CKMadridService shanetworkingMadridService]; //NSString *foo = [madridService _temporaryFileURLforGUID:@"A5F70DCD-F145-4D02-B308-B7EA6C248BB2"]; NSLog(@"Sending SMS"); conversationList = [CKConversationList shanetworkingConversationList]; CKSMSEntity *ckEntity = [smsService copyEntityForAddressString:Phone]; CKConversation *conversation = [conversationList conversationForRecipients:[NSArray arrayWithObject:ckEntity] create:TRUE service:smsService]; NSString *groupID = [conversation groupID]; CKSMSMessage *ckMsg = [smsService _newSMSMessageWithText:msg forConversation:conversation]; [smsService sendMessage:ckMsg]; [ckMsg release]; } else { //4.0 id ct = CTTelephonyCenterGetDefault(); void* address = CKSMSAddressCreateWithString(pid); int group = [grp intValue]; if (group <= 0) { group = CKSMSRecordCreateGroupWithMembers([NSArray arrayWithObject:address]); } void *msg_to_send = _CKSMSRecordCreateWithGroupAndAssociation(NULL, address, msg, group, 0); CKSMSRecordSend(ct, msg_to_send); } 

El código utiliza SMS normales, pero puede ver el siguiente código comentado:

 //CKMadridService *madridService = [CKMadridService shanetworkingMadridService]; 

El service "Madrid" es probablemente lo que puede enviar iMessages. Vea el encabezado privado aquí .

Las API privadas de SMS e iMessage se encuentran en ChatKit.framework .

A través de un iPhone sin jailbreak, no hay absolutamente ningún acceso a la API CoreTelephony de iMessage