2015-01-30 2 views
0

Я создаю приложение iOS и тестировал его как на симуляторе, так и на моем iPad. Все отлично работало до тех пор, пока я не добавил код для регистрации для push-уведомлений в мой AppDelegate.m. Теперь, когда я пытаюсь запустить приложение на устройстве, приложение некоторое время задерживается на заставке, а затем xCode вызывает следующую ошибку.xCode теряет соединение с устройством при запуске приложения

запуск процесса не удалась: истекло время ожидания приложение для запуска

и вот код я добавил на всякий случай:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// Override point for customization after application launch. 

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 
    if ([[UIApplication sharedApplication]respondsToSelector:@selector(registerUserNotificationSettings:)]) 
    { 
     UIUserNotificationType userNTypes = (UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound); 

     UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNTypes categories:nil]; 

     NSLog(@"sherikkum registering 8.xx..."); 

     [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; 
     [[UIApplication sharedApplication] registerForRemoteNotifications]; 
    } 
    else 
    { 
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 
} 
#else 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
    (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 

#endif 

return YES; 
} 

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    NSLog(@"My token is: %@", deviceToken); 

    //I added this alert coz i couldnt view NSLogs - coz my xcode wont connect 
    UIAlertView *tokenalert = [[UIAlertView alloc] initWithTitle:@"Token" 
                message:[NSString stringWithFormat:@"%@",deviceToken] 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil, nil]; 
    [tokenalert show]; 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error 
{ 
    NSLog(@"Failed to get token, error: %@", error); 
} 

Благодаря

+0

Чтобы убедиться, что из-за кода, связанного с уведомлением, удалите его и запустите приложение еще раз. Также я не понял, почему вы использовали макрос (__IPHONE_OS_VERSION_MAX_ALLOWED), а не версию системы [[UIDevice current device]]. Этот макрос будет определять версию ОС во время компиляции вместо времени выполнения, что может создать проблемы. –

+0

Обновлен мой ответ. –

ответ

3

Вы можете использовать вместо сертификата разработчика, вместо сертификата разработчика, при запуске приложения. Измените его на Target => Настройки сборки => Подписание кода.

enter image description here

Если вы используете профиль обеспечения, созданный из сертификата распределения, ваш код не будет работать на устройстве под управлением от Xcode. Вам необходимо использовать профиль подготовки, созданный из сертификата разработки. Для получения дополнительной информации о профилях и сертификатах профайла, пожалуйста, прочитайте: Apple's Documentation.

+0

Как узнать, если это так, и как я могу его изменить? Это мой первый полный проект, и я не очень хорошо знаком с сертификатами. – ShahiM

+0

bdw ... это, похоже, было проблемой ... Я вернул свой профиль Provisioning в автоматическом режиме, и это сделало трюк. но рано или поздно мне нужно лучше узнать о сертификатах, профилях, тестах. и т. д. Итак, можете ли вы дать мне несколько советов по этому поводу, любые ссылки на хорошие учебные пособия также будут оценены. Спасибо – ShahiM

+1

Есть много, но мой любимый http://www.raywenderlich.com/2915/ios-code-signing-under-the-hood –

-1

Закройте свой симулятор, очистите приложение и запустите его снова. Он отлично работает.

+0

В соответствии с вопросом человек не может запустить его на устройстве. –

+0

при запуске приложения только на устройстве, человек потерял соединение. Почему он не может работать на устройстве? – Suneha

+0

Да, это и есть его вопрос. –

Смежные вопросы