2017-01-11 2 views
0

Как вы знаете, я установил профиль отладки подписи в профиль подготовки Adhoc.Возможно ли отладить мое приложение с профилем обеспечения adhoc в Xcode?

Если я запустил приложение для своего iPhone, я могу использовать свой iPhone для получения уведомлений о дистанционном push-этапе моей задней сцены. (Моя задняя часть использует профиль распространения, поэтому я должен использовать профиль adhoc или распространения).

Но каждый раз, когда я запустить приложение (используя Adhoc профиль обеспечения) на мой iPhone, он будет Unconnect:

Не удалось запустить «название проекта»
запуск процесса: не удалось получить задание для процесса xxx

Итак, я не могу отлаживать мое приложение (используя профиль подготовки Adhoc) с помощью реального устройства в своем Xcode, есть ли способ сделать это?

Мое требование идти в специальный vc, мой код в didFinishLaunchingWithOptions метода является ниже:

// If application is launched due to notification,present another view controller. 
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
if (notification) 
{ 
    [SVProgressHUD showSuccessWithStatus:[NSString stringWithFormat:@"success"]]; 

    PushDetailViewController *detail_push = [[PushDetailViewController alloc] init]; 
    detail_push.isPresentCome = YES; 

    PushModel *new_model = [PushModel initPushModelWithDic:notification.userInfo]; 

    if (new_model) { 

     detail_push.pushModel = new_model; 

     [self.window.rootViewController presentViewController:detail_push animated:NO completion:nil]; 

    } 

}else { 

    //LMLSystemAlertControllerShowSingelButtonWithMessageWL(@"没有notification 信息", @"确定"); 
} 

return YES; 

И я не знаю, что notification.userInfo является то, что, так что я хочу отладить его, и если я использую SVProgressHUD, чтобы оповестить об этом, мое приложение выйдет из строя, потому что мой iphone не связан с Xcode, я не могу получить информацию об ошибке.

Таким образом, есть некоторые вопросы:

  1. Можно ли отладить мое приложение (используя AdHoc профиль обеспечения) с моим Iphone в Xcode?
  2. notification.userInfo содержание - это то, что это мой контент-контент из моего заднего состояния?
  3. My push content (из моего состояния) где?

Покушение - 1

Я пытался предупредить notification.userInfo, но если я достигаю notification.userInfo, мое приложение будет врезаться, так что я не могу получить его, не знаю, что это такое ,

Покушение - 2

Я также использую Xcode -> Deveice найти информацию NSLog, найти ничего:

enter image description here

ответ

1

для отладки USERINFO: Поместите NSLog для печати UserInfo и проверить, являются ли значения поступают правильно. Я знаю, что вы не можете проверить NSLOG в консоли Xcode, но вы можете проверить опцию NSLOG в устройствах в Xcode. Xcode -> Window -> Devices -> На левой панели выберите ваше устройство. Здесь вы можете просмотреть все свои журналы.

Основываясь на данных UserInfo, вы можете подтвердить свой код правильно или нет.

+0

если я 'NSLog' userinfo, могу ли я увидеть информацию журнала в журнале устройства? Я вижу только информацию о стеке. – aircraft

+0

Да, вы можете просмотреть данные NSLOG в журнале устройств. После того, как вы выберете устройство на левой панели, вы получите 2 опции информации об устройстве и установленных приложениях. Ниже стрелки, указывающей на верхнюю, если вы выберете эту стрелку, вы увидите все детали NSLOG. –

+0

нет я didi не вижу это. – aircraft

0

Я не уверен, если я понять ваш вопрос правильно, но похоже, что у вас возникают проблемы с тестированием push-уведомлений, потому что вы используете «push» push-сертификат и, следовательно, пытаетесь отладить использование профиля предварительной подписки Ad-Hoc для получения уведомлений?

Если это так, то решение должно обновить сертификат push. Нам больше не требуется использовать один сертификат для «Песочницы», а другой для «Производство» - новые сертификаты push действительны в обеих средах. Поэтому вы должны иметь возможность создавать и отлаживать свое приложение, как правило, в Xcode, используя профиль разработки и получать уведомления.

Now in "Sandbox and Production"

+0

благодарит вас за ответ, и я использую back-state нашего javer, чтобы нажать, он использует профиль распределения. ваш файл (Sandbox & Production) означает, что он установлен в мое приложение с Xcode или установлен в back-state нашего javer? – aircraft

+0

жаль брата. Я тестировал, я повторно обновляю услугу Apple Push Notification SSL (Sandbox & Production), я использую профиль разработки, не получил информацию о push. – aircraft

1

Для отладки полезной нагрузки Push-уведомления в режиме построения Adhoc вы можете просто поставить UIAlertView, где хотите. И можете видеть вывод на экране вашего iPhone. :)

Например, в вашем случае.

NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
if (notification) 
    { 
     NSDictionary *apsInfo = [notification objectForKey:@"aps"]; 
     // Put AlertView here 
     UIAlertView *alert =[[UIAlertView alloc] 
     initWithTitle:@"NotificationPayload" 
     message:[NSString stringWithFormat:@"%@",apsInfo] 
     delegate:self 
     cancelButtonTitle:@"Ok" 
     otherButtonTitles: nil]; 
     [alert show]; 

     [SVProgressHUD showSuccessWithStatus:[NSString stringWithFormat:@"success"]]; 

     PushDetailViewController *detail_push = [[PushDetailViewController alloc] init]; 
     detail_push.isPresentCome = YES; 
     PushModel *new_model = [PushModel initPushModelWithDic:apsInfo]; 

     if (new_model) { 
      detail_push.pushModel = new_model; 
      [self.window.rootViewController presentViewController:detail_push animated:NO completion:nil]; 
     } 

    } 
    else { 
     //LMLSystemAlertControllerShowSingelButtonWithMessageWL(@"没有notification 信息", @"确定"); 
} 

return YES; 

Не забывайте комментировать или удалить этот AlertView код, когда вы сделали отладки.

+0

@M Zubair Shamshad, по сути, прежде чем вы ответите на вопрос, который я тестировал, я попытался предупредить 'notification.userInfo', но мое приложение будет аварийно, вот так. Если я получу 'notification.userInfo', мое приложение выйдет из строя. – aircraft

+0

Измените свою первую строку из 'UILocalNotification * notification = notificationOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];' to 'NSDictionary * notification = notificationOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];' –

+0

@M Zubair Shamshad 'UILocalNotification'? , к чему? – aircraft

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