Хорошо, я работал над приложением для iPhone, используя MonoTouch и MonoDevelop в течение последних нескольких месяцев. За это время я смог развернуть приложение на своем телефоне для целей отладки / тестирования, а также смог скомпилировать версии Adhoc для моих работодателей. Это все работало нормально ... до этой недели.
Последняя отправленная мною версия не войдет в iTunes и завершится с ошибкой:
The app "Payload.ipa" could not be added to your iTunes library because it is not a valid app.
Так что, в основном, ваше общее "что-то не так, но я не собираюсь говорить вам, что именно" ошибка.
Мои первоначальные исследования предположили, что проблема может быть связана с именем приложения, содержащим специальные символы, но, поскольку я долгое время не менял имя приложения, это не проблема. Я добавил версию пакета в info.plist, однако, удаление этой проблемы не решило проблему.
Итак, я взглянул на файлы в выходной папке и заметил, что теперь включен файл Settings.bundle (я добавил файл с именем Config.plist для хранения некоторых настроек, используемых приложением). В MonoDevelop я изменил параметры, чтобы сделать их «Содержимое» и «Всегда копировать», как это было предложено в руководствах, которым я следовал. Это прекрасно работает при запуске приложения в симуляторе или на моем телефоне через MonoDevelop. Но когда я упаковываю приложение в файл .ipa, iTunes говорит, что приложение недействительно. Если я удаляю Settings.bundle, iTunes принимает его.
Я прочитал, что параметр «Всегда копировать» не требуется при настройке «Содержимое», но файл Settings.bundle по-прежнему отображается в папке вывода (bin), даже если для этого параметра установлено значение «Не копировать».
Я также подумал, что, возможно, мне пришлось изменить имя на Root.plist, потому что это то, что используют примеры, и, возможно, так оно и будет. Но повторное изменение названия не имело значения.
Так что мне просто интересно, сталкивался ли кто-нибудь еще с этой проблемой и как вы ее решили?