Xcode создает архив вместо IPA

Я пытаюсь создать файл ipa (Product->Archive->Share), но Xcode создает только архивный файл.

Это работало хорошо несколько дней назад. У меня всегда работал ipa, но теперь я не могу заставить его производить ipa (когда я нажимаю на общий доступ в архиве, я не могу подписать код). В течение нескольких последних дней я добавил подпроект в основной проект (CorePlot-CocoaTouch). Я не на сто уверен, что это может иметь отношение.


person Engeor    schedule 05.01.2012    source источник


Ответы (6)


Если вы добавили статическую библиотеку, теперь она устанавливается по умолчанию. Это не нормально для приложений iPhone. Перейдите к файлу проекта и выберите цель статической библиотеки. Под Build Settings перейдите в раздел Deployment и измените параметр Skip Install на YES. Начиная с Xcode 4, теперь по умолчанию используется NO, что нарушит ваш IPA (поскольку единственный двоичный файл, который вы можете установить на законных основаниях, — это двоичный файл самого приложения).

Возможно, вам придется переключиться с представления Basic на представление All, чтобы увидеть этот параметр.

person Jason Coco    schedule 05.01.2012
comment
Спасибо за ваш ответ. Я уже сделал это (установил для всех пропущенных установок значение «да»), но с тем же результатом. Он по-прежнему предлагает мне архив без возможности поделиться им как ipa. - person Engeor; 05.01.2012
comment
@Engeor Тогда что-то еще устанавливается. Загляните в исходный архив, который был создан (или даже в новый, который он создает). Единственное, что там должно быть, это ваш набор приложений. Узнайте, что еще туда входит, и у вас будет подсказка, где искать дальше. - person Jason Coco; 05.01.2012
comment
Единственная разница между старым архивом, который работал, и новым архивом, который не работает, это папка с заголовочными файлами CorePlot. Помимо этого есть только один файл приложения. Я потерян :-( - person Engeor; 05.01.2012
comment
@Engeor В этом проблема! Не устанавливайте заголовочные файлы. Измените их на проектные или частные, и все будет готово. - person Jason Coco; 05.01.2012
comment
Спасибо. Тем временем я включил coreplot как статическую библиотеку, а не проект, который решил проблему. Но большое спасибо за помощь! - person Engeor; 05.01.2012

Поскольку ответ, который сработал для меня, скрыт в комментариях, я подумал, что вынесу его наверх. В моем случае изменение файлов заголовков для статической библиотеки на Project устранило проблему.

Для этого выберите целевую библиотеку, затем перейдите в раздел «Фазы сборки» > «Копировать заголовки» и переместите файлы заголовков из общедоступного в проект.

person Brian Rak    schedule 30.11.2012
comment
Ваше решение мне очень помогло! Спасибо. - person Rajan Maharjan; 21.03.2013

Тот, кто пробовал все другие ответы и ему не повезло, установите этот флажок, надеюсь, это поможет (сделал трюк для меня xcode 6.0.1)

введите здесь описание изображения

person Inder Kumar Rathore    schedule 24.09.2014

В XCode 5 та же ошибка возникает, если у вас есть несколько целей и неправильные галочки в «Управлении схемами». Затем Xcode помещает 2 двоичных файла в 1 универсальный архив. Это не влияет на зарегистрированные файлы, например. мерзавец!

person cat    schedule 30.01.2014

Все остальные ответы, вероятно, верны, но в моем случае не помогли. Я потратил на это часы и, наконец, перезагрузился. Затем я снова получил архив приложений, который получил неделю назад.

person David Dunham    schedule 05.02.2014

Если вы включаете проект, создающий статическую библиотеку, попробуйте установить флажок «копировать только при установке». Это помешало Xcode включить статическую библиотеку в архив моего приложения. Я использовал Xcode 6.3.2.

person Brad Wright    schedule 14.06.2015