.app не имеет пути к исполняемому файлу после установки поверх старой сборки - PullRequest
10 голосов
/ 01 сентября 2011

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

Ср 31 августа 20:13:28 unknown SpringBoard [1176]: Пакет 'X' в / private / var / mobile / Applications / XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX / X.app не имеет пути к исполняемому файлу.Пожалуйста, проверьте файл Info.plist пакета.

Я проверил список приложений, используя PhoneDisk, и исполняемый файл соответствовал имени приложения.Есть идеи?

Ответы [ 4 ]

10 голосов
/ 01 сентября 2011

В моем случае я не обновлял CFBundleShortVersionString между версиями, которые пытался загрузить.После того, как я обновил версию с 1.1.9.1 до 1.1.9.2 и повторно загрузил сборку adhoc, она перестала падать.

Я думаю, Apple кэширует некоторую информацию в Info.plist для сборок adhocи удара по CFBundleVersion недостаточно, чтобы уничтожить кеш.

1 голос
/ 03 июля 2012

Из "Базовых ключей": «CFBundleShortVersionString (String - iOS, Mac OS X) указывает номер версии выпуска пакета, который идентифицирует выпущенную итерацию приложения. Номер версии выпуска - это строка, состоящая из трех целых чисел, разделенных точками. Первое целое число представляет основные ревизии для приложения, например, ревизии, которые реализуют новые функции или крупные изменения. Второе целое число обозначает ревизии, которые реализуют менее заметные функции. Третье целое число представляет выпуски обслуживания. Значение этого ключа отличается от значения для «CFBundleVersion», которое идентифицирует итерацию (выпущенную или невыпущенную) приложения. Этот ключ можно локализовать, включив его в файлы InfoPlist.strings. "

CFBundleShortVersionString также не должен содержать букв, разрешены только целые числа. Поэтому, если у вас есть что-то вроде 1.2.5b1, приложение не запустится, как ни странно, с ошибкой типа «... нет пути к исполняемому файлу ...».

0 голосов
/ 20 января 2014

Вы должны указать два ключа (CFBundleVersion & CFBundleShortVersionString) в Info.plist.

CFBundleVersion (String - iOS, OS X) указывает номер версии сборки пакета, который идентифицирует итерацию (выпущенную или невыпущенную) пакета. Номер версии сборки должен быть строкой, состоящей из трех неотрицательных целых чисел, разделенных точками, причем первое целое число больше нуля. Строка должна содержать только цифры (0-9) и точку (.). Ведущие нули усекаются от каждого целого числа и будут игнорироваться (т. Е. 1.02.3 эквивалентно 1.2.3). Этот ключ не локализуем.

CFBundleShortVersionString указывает номер версии выпуска пакета, который идентифицирует выпущенную итерацию приложения.

Вы можете добавлять CFBundleVersion на 1 каждый раз, когда создаете версию adhoc для своего теста или пользователя с той же версией выпуска (CFBundleShortVersionString)

Например: ваш CFBundleShortVersionString равен 1.2.3, ваш CFBundleVersion равен 1000. Когда вы исправляете ошибку и создаете специальную версию для тестирования, вы можете изменить CFBundleShortVersionString на 1001.

0 голосов
/ 26 июня 2013

Я столкнулся с этой конкретной ошибкой в ​​случае, когда наша обычная версия приложения была n.n.n, а в обновлении мы перешли к версии приложения, которая была n.n.n.n

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

...