2009-07-11 18 views
25

मैं एक आईफोन ऐप विकसित कर रहा हूं और बीटा परीक्षण के लिए विज्ञापन-प्रसार कर रहा हूं। मेरे उन मुझे भेज रहे हैं दुर्घटना लॉग है कि इस कहते हैं:आईफोन क्रैश लॉग कहते हैं "संस्करण: ???"

Identifier:  MyAppName 
Version:   ??? (???) 
Code Type:  ARM (Native) 

मैं नहीं समझ सकता है कि कैसे एक वास्तविक संस्करण संख्या के साथ उन लोगों प्रश्न चिह्न को बदलने के लिए। मैंने अपनी Info.plist को एक CFBundleVersion और एक CFBundleShortVersionString को शामिल करने के लिए कॉन्फ़िगर किया है, लेकिन इससे मदद नहीं मिली ... क्रैश लॉग में अभी भी मेरे द्वारा अपेक्षित संस्करण संख्या के बजाय प्रश्न चिह्न शामिल हैं।

मैं अपना संस्करण कैसे सेट करूं ताकि यह क्रैश लॉग में दिखाई दे?

EDIT जाहिर है, आईफोन क्रैश रिपोर्टर में संभावित बग के कारण, "संस्करण" को ठीक से सेट करने का कोई तरीका नहीं है। लेकिन क्या कोई कामकाज है? क्रैश लॉग मेटाडेटा में संस्करण संख्या (उदा। एक बिल्ड नंबर या एससीएम संशोधन संख्या) डालने का कोई अन्य तरीका?

+1

अरे दान - यह लगता है कि आप सब कुछ सही कर रहे हैं। आपके Info.plist में मान एकमात्र संस्करण संख्या होना चाहिए जो मुझे लगता है ... शायद यह एक बग है? –

+1

कई रिलीज एप्लिकेशन से, मेरे फोन पर देखे गए सभी क्रैश लॉग, सभी में संस्करण है: ??? (???), तो मुझे लगता है कि यह सिर्फ यह है कि यह कैसे है। –

उत्तर

28

सबसे आसान तरीका है कि आप वितरित सभी बाइनरी के यूडीआईडी ​​को सहेज लें, और क्रैश डंप में उन्हें यूडीआईडी ​​से तुलना करें। आपके द्वारा बनाए गए प्रत्येक निर्माण के लिए यूडीआईडी ​​अलग-अलग हैं।

UDID को पुनः प्राप्त करने के लिए:

$ dwarfdump -u /path/to/MyApp.app/MyApp 
UUID: 864F3D54-F165-3356-3292-2C9C48E97C55 (armv6) /path/to/MyApp.app/MyApp 

और crashlog की तुलना:

Binary Images: 
    0x1000 - 0x5ffff +MyApp armv6 <864F3D54F165335632922C9C48E97C55> /var/mobile/Applications/5FB3933B-348E-42D7-B99F-76DE284D2148/MyApp.app/MyApp 
+0

एक बुरी स्थिति का सबसे अच्छा, मुझे लगता है। –

+0

हाँ ... संस्करण संख्या वाला सिस्टम वास्तव में सुविधाजनक था जब यह काम करता था। – rpetrich

+2

बहुत उपयोगी, धन्यवाद @rpetrich, अगर वह कुछ लोगों को मदद कर सकता है, तो सभी एक्सकोड 4 अभिलेखागारों में खोज: 'ढूंढें ~/लाइब्रेरी/डेवलपर/एक्सकोड/अभिलेखागार/-नाम -print0 | xargs -0 dwarfdump -u | grep '। मुझे लगता है कि इसे 'mdfind' का उपयोग करके हासिल किया जा सकता है, लेकिन स्पॉटलाइट की तरह दिखता है' .xcarchive' फाइल सामग्री को अनुक्रमणित नहीं करता है। –

3

यह सभी आईफोन ऐप्स, के लिए मामला प्रतीत होता है जिसमें ऐप्पल शामिल हैं। आप कंसोल में अपने उपकरणों के लिए iPhone अनुप्रयोग क्रैश लॉग के सभी के माध्यम से देख सकते हैं:

फ़ाइलें/~/Library/लॉग्स/CrashReporter/MobileDevice/...

उस सूची में सब कुछ पता चलता है मेरे लिए अज्ञात संस्करण, MobileSafari है, जो थोड़ा अलग जानकारी नहीं है के अलावा के साथ:

OS Version:   iPhone OS 2.2.1 (5H11) 
Date:    2009-02-15 02:19:06 -0600 

सभी अन्य अनुप्रयोगों, एप्पल के कैलेंडर & मेल ऐप्स भी शामिल है, उनके संस्करण संख्याओं के लिए प्रश्न चिह्न के साथ दिखाई देते हैं।

ऐसा लगता है कि अन्य डेवलपर्स ने the same thing देखा है। यह शायद आईफोन के क्रैश रिपोर्टर कार्यक्रम में एक बग है।

+0

धन्यवाद। क्या कोई कामकाज है? क्रैश लॉग मेटाडेटा में संस्करण संख्या (जैसे बिल्ड नंबर या एससीएम संशोधन संख्या) डालने का कोई अन्य तरीका? –

+0

दुर्भाग्यवश, मुझे पता नहीं है।मैं इस सामान पर पहले से ही अपने लीग से बाहर हूं :) –

2

विज्ञापन और बीटा परीक्षण के लिए, बस अपना पहचानकर्ता बदलें। MyAppName के बजाय जाहिर है यह आपके ऐप स्टोर संस्करण के लिए काम नहीं करेगा, लेकिन यह आपको बीटा परीक्षण के माध्यम से प्राप्त करेगा।

ध्यान दें कि शायद इसे वाइल्डकार्ड विज्ञापन की आवश्यकता है, लेकिन इन्हें आसानी से डेवलपर पोर्टल के माध्यम से बनाया जा सकता है।

+0

मुझे वाइल्डकार्ड विज्ञापन को काम करने के लिए प्रोफ़ाइल नहीं मिल सका, लेकिन डेवलपर पोर्टल को हमेशा बहुत परेशानी की आवश्यकता होती है। –

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