2013-05-13 2 views
4

Только что недавно начал получать сообщение с отправлением poststore с последующим советом.Какая правильная настройка Xcode для позиции Независимые исполняемые файлы

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

Однако установка в XCode кажется правильной, В разделе связующего я нашел

«Не Создать Position Independent Исполняемого», который установлен в NO.

(Двойной негатив YUK).

ответ

0

я получил от компании Apple реагировать с

Non-PIE Binary - Исполняемый 'ProductManualApp.app' не является позиционно-независимый исполняемый файл. Убедитесь, что ваши настройки сборки настроены для создания исполняемых файлов PIE.

Из моего исследования, проведенного Google, многие люди говорили, что это связано с «Не создавать независимые исполнимые элементы позиции». Я думаю, это должно быть недействительным, то есть «Нет»

+1

Я испытываю тот же вопрос, несмотря на то, что я сделал все, как указано в https://developer.apple.com/library/ios/#qa/qa1788 /_index.html#/apple_ref/doc/uid/DTS40013354 –

+0

То же самое для меня! кто-нибудь решил эту проблему? –

2

Возможно, вы получаете предупреждение от Apple не потому, что ваше приложение само по себе, а потому, что сторонняя библиотека, которая не была скомпилирована как PIE. Например, если вы используете Marmalade SDK Engine, вы получите это предупреждение (они исправит его в сентябре).

Но вы можете попробовать добавить больше флагов компилятора в вашей сборке Настройки:

В Другие флаги С вы можете поставить флаг: -fPIC

В Другие предупреждения флагов вы можете поставить : -Wl, - выделяющие-relocs и -Wl, - предупреждаю-разделяемой textrel

Чтобы увидеть, если ваш рр PIE:

otool -hf /path/to/your/App.app/app 

Ссылка: https://developer.apple.com/library/ios/qa/qa1788/_index.html

+2

Как узнать, была ли сборка сторонней библиотеки с помощью PIE? – user102008

+0

спасибо, эти флаги работали. Что они имеют в виду? Могут ли они отрицательно повлиять на мое приложение? –

+1

Поцарапайте, что инструмент команды показывает, что мое приложение имеет флаг PIE, однако, когда я загружаю приложение в App Store, я все еще получаю предупреждение о PIE фреймворка –

Смежные вопросы