2009-07-11 3 views
25

Я разрабатываю приложение для iPhone и делаю ad-hoc-дистрибутив для бета-тестирования. Мои пользователи посылают мне краш журналов, которые говорят это:iPhone crash logs говорят: «Версия: ???»

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

Я не могу понять, как заменить эти знаки вопроса с реальным номером версии. Я настроил свой Info.plist, чтобы включить CFBundleVersion и CFBundleShortVersionString, но это не помогло ... журналы сбоев все еще содержат только вопросительные знаки, а не номер версии, которую я ожидаю.

Как установить мою версию, чтобы она отображалась в журналах сбоев?

EDIT По-видимому, из-за возможной ошибки в iPhone CrashReporter нет возможности правильно установить «Версия». Но есть ли обходной путь? Другой способ вставить номер версии (например, номер сборки или номер версии SCM) в метаданные аварийного журнала?

+1

Hey Dan - это звучит, как вы делаете все правильно. Значение в вашем Info.plist должно быть единственным номером версии, который я думаю ... Может быть, это ошибка? –

+1

все журналы сбоев, которые я вижу на своем телефоне, из нескольких приложений для релиза, имеют версию: ??? (???), поэтому я думаю, что так оно и есть. –

ответ

28

Самый простой способ - сохранить UDID всех дистрибутивов, которые вы распространяете, и сравнить их с UDID в аварийных дампах. UDID отличаются для каждой создаваемой вами сборки.

Чтобы получить 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, если это может помочь некоторым людям, искать во всех архивах Xcode 4: 'find ~/Library/Developer/Xcode/Archives/-name -print0 | xargs -0 dwarfdump -u | grep '. Я думаю, что то же самое можно достичь с помощью 'mdfind', но выглядит как прожектор, не индексирующий содержимое' .xcarchive' файлов. –

3

Это похоже на все приложения для iPhone, в том числе и от Apple. Вы можете просматривать все крешлогам iPhone приложения для устройств в консоли:

ФАЙЛЫ/~/Library/Logs/CrashReporter/MobileDevice/...

Все в этом списке появляется с неизвестными версиями для меня, для MobileSafari, который имеет несколько иную информацию, за исключением:

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

Все другие приложения, включая календарь & почты приложений Apple, появляются знаки вопроса для их версий.

Похоже, что другие разработчики заметили the same thing. Вероятно, это ошибка в программе CrashReporter от iPhone.

+0

Спасибо. Есть ли обходной путь? Другой способ вставить номер версии (например, номер сборки или номер версии SCM) в метаданные журнала сбоев? –

+0

Не то, что я знаю, к сожалению.Я уже вышел из своей лиги на этом материале :) –

2

Для adhoc и бета-тестирования просто измените свой идентификатор. MyAppNameV1.0b36 вместо MyAppName Очевидно, что это не сработает для вашей версии App Store, но вы получите бета-тестирование.

Обратите внимание, что для этого, вероятно, требуется специальный шаблон adcard, но их можно легко сделать через портал разработчиков.

+0

Я не мог заставить профиль adcard adcard работать, но для портала разработчиков всегда требуется много фиджинга. –