2010-07-21 21 views
7

मेरा आईफोन एप्लिकेशन कभी-कभी इंस्टॉल होने के बाद चलाए जाने पर पहली बार दुर्घटनाग्रस्त हो जाता है। इसके बाद हर बार जब मैं ऐप को आजमाता हूं और चलाता हूं तो यह स्प्लैश स्क्रीन या यहां तक ​​कि एक ब्लैक स्क्रीन पर रहता है जब तक कि यह मर जाता है। एप्लिकेशन को काम करने के लिए मुझे डिवाइस को पुनरारंभ करना होगा। इसके बाद यह हर बार ठीक काम करता है। ओएस 3 कोड और 4 के बीच एकमात्र परिवर्तन संपत्ति 'UIAplplicationExitsOnSuspend' है जो ऐप को निलंबित करने के बजाय हर बार पुनः लोड करने के लिए मजबूर करता है। कोई भी मदद बहुत अच्छी रहेगी।आईफोन एप्लिकेशन क्रैश (आईओएस 4 केवल)

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{ 
    taskListViewController = [[TaskListViewController alloc] initWithNibName:@"TaskListView" bundle:nil]; 
    taskListViewController.managedObjectContext = self.managedObjectContext; 

    [taskListViewController setAppDefaults]; 

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:taskListViewController]; 
    [taskListViewController release]; 

    navController.navigationBar.tintColor = [UIColor blackColor]; 

    [window addSubview:[navController view]]; 
    [window makeKeyAndVisible]; 

}

- (void)viewDidLoad 
{ 
    NSLog(@"viewDidLoad - Start"); 
    [super viewDidLoad]; 

    NSError *error = nil; 
    if(![[self fetchedResultsController] performFetch:&error]) 
    { 
    NSLog(@"Error with initial fetch %@, %@", error, [error userInfo]); 
    } 

    [activityIndicator startAnimating]; 

    self.navigationItem.leftBarButtonItem.enabled = NO; 
    self.navigationItem.rightBarButtonItem.enabled = NO; 
    infoButton.enabled = NO; 
    syncButton.enabled = NO; 

    taskListTable.userInteractionEnabled = NO; 
    taskListTable.allowsSelection = NO; 

    checkingRecovery = true; 
    [self insertCheck]; 
} 

अन्य तरीके कि ऊपर उल्लेख किया:

यहाँ दो कोड के टुकड़े कर रहे हैं

[taskListViewController setAppDefaults] 
    [self insertCheck]; 

setAppDefaults - सेटिंग्स के माध्यम से विश्लेषण करता NSUserDefaults को defaultValues ​​लागू करने के बंडल यदि वे पहले से ही उपयोगकर्ता द्वारा peferences में सेट नहीं किया गया है।

सम्मिलित करें - ऑडियो रिकॉर्डिंग पर फ़ाइल अखंडता सुनिश्चित करने के लिए डीबी पर कुछ प्रश्न करता है लेकिन इस मामले में यह पहली बार ऐप लोड होने पर यह कुछ भी नहीं करेगा।

अद्यतन:

मैं अतिरिक्त विधि कॉल (ऊपर दो) बाहर टिप्पणी की है और मैं अभी भी समस्या हो रही है।

मुझे कुछ समाधान मिलते हैं जिनमें सेब डेवलपर फ़ोरम पर कोई समाधान नहीं है। एक जवाब एक उपयोगकर्ता से एक ही समस्या है, लेकिन एप्लिकेशन को ऐप स्टोर पर अनुमोदित किया गया था।

धन्यवाद एसजे

+0

आप अपने पोस्ट को संपादित करने के लिए क्या आपके 'applicationDidFinishLaunching' और' viewDidLoad' तरीकों में हो रहा है के लिए कोड शामिल कर सकते हैं। इसके अलावा, उन से पता चला किसी भी त्रुटि संदेश के बिना एक दुर्घटना का कारण बन सकती यकीन है कि (जब यह उदाहरण के लिए एक% @ होना चाहिए% d) आप गलत डेटा स्वरूप तार के साथ किसी भी 'NSLogs' नहीं है बनाते हैं। – iwasrobbed

+0

आपकी विंडो लोडिंग सामान्य दिखती है, मैं कहूंगा कि यह आपके उपयोगकर्ता डिफ़ॉल्ट के कारण नहीं है, तो अपने डेटाबेस चेक कोड या प्रारंभिक fetch परिणामों के माध्यम से अपना रास्ता डिबग करना प्रारंभ करें। – iwasrobbed

उत्तर

0

क्या आपने लॉग फाइलों को देखा है?

यदि आप इसे प्लग करते हैं, तो आप उन्हें अपने आईफोन से कॉपी कर सकते हैं, ऑर्गनाइज़र लोड कर सकते हैं (एक्सकोड में विंडोज-> ऑर्गनाइज़र) और डिवाइस लॉग का चयन करें।

आप समय अपने आवेदन दुर्घटनाग्रस्त हो गया के लिए एक लॉग देखते हैं, तो कॉल स्टैक

वैकल्पिक रूप से यह हो सकता है कि आप कुछ कोड रन में फंस रहे हैं (जो समारोह में यह दुर्घटना के कारण शामिल होना चाहिए) को शामिल करना चाहिए स्टार्टअप पर - और यदि आपका एप्लिकेशन समय पर मनोरंजक (30 सेकंड के भीतर आईआईआरसी के भीतर) शुरू नहीं होता है तो आईओएस इसे मार देता है।

+0

यह एप्लिकेशन के संबंध में कोई क्रैश लॉग नहीं दिखता है। धन्यवाद। – Sjblack

+0

मैंने कुछ और देखा है कि ऐप को अनइंस्टॉल करना और डिवाइस को पुनरारंभ किए बिना इसे पुनर्स्थापित करना समस्या को ठीक नहीं करता है! एक बार फिर धन्यवाद। – Sjblack

0

इसे प्रबंधित ऑब्जेक्ट कॉन्टेक्स्ट टुकड़े के बिना आज़माएं और देखें कि क्या आप अभी भी क्रैश हो रहे हैं या नहीं। जब आप दुर्घटनाग्रस्त हो जाते हैं तो लॉग क्या कहता है? क्या आपको स्मृति अपवाद मिलता है?

1

आप आवेदन डिबगिंग रहे हैं, तो जब यह दुर्घटनाओं, आप एक स्टैक ट्रेस, जो आप क्या अनुप्रयोग क्रैश लाइन पर दिखाई देगा मिलना चाहिए।

आप स्टैक ट्रेस यह दुर्घटना के कारणों का पता लगाने के लिए बहुत आसान होगा प्रदान कर सकता है।

+0

मुझे डर लगता है जब यह दुर्घटनाग्रस्त हो जाता है तो यह कोड में ऐप के प्रवेश बिंदु तक नहीं पहुंच पाता है इसलिए किसी भी क्रैश लॉग को बिल्कुल प्राप्त न करें। धन्यवाद - एसजे – Sjblack

संबंधित मुद्दे