2012-02-21 8 views
7

हम अनचाहे अपवादों को ट्रैक करने के लिए testflight.com sdk और flurry.com sdk दोनों का उपयोग कर रहे हैं। मुद्दा यह है कि testflight.com sdk को जोड़ने के बाद flurry द्वारा कोई अपवाद नहीं उठाया जाता है।Testflight.com और Flurry.com अपवाद हैंडलिंग लागू करना

विधि शुरू हो रहा एक बिना क्रिया का अपवाद इस तरह दिखता है होते हैं, जब:

void uncaughtExceptionHandler(NSException *exception) 
{ 
    [FlurryAnalytics logError:@"ERROR_NAME" message:@"ERROR_MESSAGE" exception:exception]; 
} 

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    #if !TARGET_IPHONE_SIMULATOR 
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 

    struct sigaction newSignalAction; 
    memset(&newSignalAction, 0, sizeof(newSignalAction)); 
    newSignalAction.sa_handler = &signalHandler; 
    sigaction(SIGABRT, &newSignalAction, NULL); 
    sigaction(SIGILL, &newSignalAction, NULL); 
    sigaction(SIGBUS, &newSignalAction, NULL); 

    [FlurryAnalytics startSession:kFlurryKey]; 
    [TestFlight takeOff:kTestflightKey];  

    [[UIApplication sharedApplication] 
    registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | 
            UIRemoteNotificationTypeSound | 
            UIRemoteNotificationTypeAlert)];  
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;  
    #endif 
    . 
    . 
    . 

मुझे यकीन है कि कैसे testflight.com यह करता है नहीं कर रहा हूँ, लेकिन ऐसा लगता है जैसे वे बिना खुद के लिए अपवाद रोकना और रजिस्टर डेटा पंजीकृत विधि को चलाने देना?

क्या इनमें से दोनों के साथ सह-अस्तित्व में कोई रास्ता है?

+0

आप इस हल किया ? – Jules

+0

मैंने ईमानदार होने की कोशिश नहीं की है। मैं आजकल कोको को कोडिंग नहीं कर रहा हूं, इसलिए मेरा ध्यान कहीं और है। –

उत्तर

4

मुझे Testflightapp.com टीम से पुष्टि मिली है कि यह एक ज्ञात मुद्दा है। वे अगले संस्करण में फिक्स करने की उम्मीद करते हैं।

+1

अभी भी तय नहीं है :( –

+0

मैं टेस्टफलाइट, क्रिटरसिज्म और फ्लुरी का उपयोग करता हूं। यह पता चला है कि टेस्टफलाइट लगातार किसी अन्य अपवाद हैंडलिंग को ओवरराइट करता है। कम से कम यही कारण है कि क्रिटरसिज्म ने मुझे बताया क्योंकि उनके पास एक ही समस्या थी और इसे डिबगिंग के माध्यम से मिला। – Bot

0

मैं इस सीधे परीक्षण करने में सक्षम नहीं हूँ, लेकिन TestFlight documentation यह कहने लगता है:

का उपयोग करते हैं, तो न आया हुआ अपवाद या संकेत संचालकों टेकऑफ़ कॉल करने से पहले अपने संचालकों स्थापित करें। हमारे एसडीके तब आपके हैंडलर को कॉल करेंगे जबकि हमारा चल रहा है।

वे कुछ example code भी प्रदान करते हैं जो आपको यह काम करने में मदद कर सकता है।

+1

हां, मुझे पता है, और मैं इसे सही तरीके से कर रहा हूं जहां तक ​​मैं देख सकता हूं। यह दिखाने के लिए मूल पोस्ट को संपादित करना कि मैंने इसे अपने आवेदन प्रतिनिधि में भी कैसे कार्यान्वित किया है। –

+0

मैं टेस्टफलाइट से पूछने का सुझाव दूंगा कि यदि आप निश्चित हैं कि यह काम नहीं कर रहा है, तो मुझे लगता है कि यह उनके एसडीके में एक समस्या होनी चाहिए जो आपके परिभाषित हैंडलर पर नियंत्रण न दे, जैसा कि वे कहते हैं। – mattjgalloway

+0

हाँ, उनके साथ एक टिकट पंजीकृत है, और फ्लोरी। यदि वे कारण ढूंढने में सक्षम हैं तो यहां समाधान पोस्ट करेंगे। –

0

मुझे ब्लॉग पर एक समाधान मिला है, यह सुनिश्चित नहीं है कि यह फ्लोरी के लिए भी काम करता है, यह कहता है कि अनइंस्टॉलक्रैशशैंडर्स विधि (TestFlight.h में घोषित) को दो बार टेस्टफलाइट टेकऑफ: @ "कुंजी"] विधि को कॉल करना है , और उसके बाद अन्य सेवा पंजीकृत करें जिसके लिए आप क्रैश रिपोर्टिंग के लिए उपयोग करना चाहते हैं। टेस्टफलाइट बनाम क्रैशलिटिक्स

टेस्टफलाइट की क्रैश रिपोर्टिंग को अक्षम करना काफी सरल है। निम्न कोड जोड़ें अपने AppDelegate.m में शामिल हैं:

... 
#import TestFlight.h 

// Function prototype for UninstallCrashHandler 
extern void UninstallCrashHandlers(BOOL restore); 

didFinishLaunchingWithOptions में, कोई साथ और उसके बाद हाँ के साथ पहली बार इस विधि कॉल की तरह:

- (BOOL)application:(UIApplication *)application 
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [TestFlight takeOff:@"<TestFlightKey>"]; 

    UninstallCrashHandlers(NO); 
    UninstallCrashHandlers(YES); 

    [Crashlytics startWithAPIKey:@"<CrashlyticsKey>"]; 

    return YES; 
} 

रेफरी: http://www.grahamdennis.me/blog/2012/10/21/how-to-disable-testflights-crash-handlers/

+0

यदि कोई भी कर सकता है जांचें और इसकी पुष्टि करें, मैं समाधान को समाधान के रूप में चिह्नित करूंगा। अब मैं मोबाइल प्लेटफार्मों के लिए विकास नहीं कर रहा हूं, इसलिए मैं खुद को जांचने में असमर्थ हूं। –

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