Имя пакета, исполняемое имя, название продукта... что-нибудь еще?

Название пакета, исполняемое имя, название продукта... больше

Может кто-то может помочь прояснить использование каждого из них в Xcode в проекте iPhone? Они никогда не перестают путать живого байеса из меня... и я устал от того, что они ошибаются.

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

Ответ 1

Если вы посмотрите на info.plist, он выглядит примерно так:

Bundle Display Name - ${PRODUCT_NAME}
Executable File - ${EXECUTABLE_NAME}
Bundle Name - ${PRODUCT_NAME}

Таким образом, вы можете видеть, что обычно PRODUCT_NAME дает вам то же имя для пакета и того, что видит пользователь.

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

Вы не должны изменять способ их настройки в info.plist, если у вас нет веских причин... просто измените PRODUCT_NAME.

Ответ 2

Имя пакета - это имя папки, в которой будет храниться ваше приложение (включая исполняемый файл и все ресурсы) (Cool Program.app).

Исполняемое имя - это двоичное имя программы, т.е. Cool Program.app/CoolProgram

Отображаемое имя пакета - это то, что будет отображаться на экране iPhone, например Cool Prog (поскольку Cool Program, вероятно, не поместится на Springboard).

И Apple утверждает, что имя Bundle Display должно соответствовать имени Bundle, т.е. вы не можете использовать имя пакета TheApplication и отображаемое имя пакета Something Other

Ответ 3

Когда у вас есть приложение с пользовательским интерфейсом (например: Калькулятор), большинство из них будет одинаковым и не имеет большого значения, но если ваш проект является просто пакетом (некоторым движком), тогда вы можете иметь разные исполняемые файлы (приложения/frontend с пользовательским интерфейсом, который использует узел ur в качестве backend) вашего пакета, который вы можете указать, используя другое исполняемое имя. И в идеале, как сказал Кендалл, имя пакета будет таким же, как название продукта. Обратитесь к руководству по системному руководству Xcode для лучшего понимания. Надеюсь это поможет.:-).

Ответ 4

Существует также ${TARGET_NAME} - например, если у вас есть один проект, который создает несколько целей с разными "Отображаемыми именами Bundle".

Ответ 5

Согласно документам Apple.com, это точно противоположно тому, что вы ожидаете.

"Отображаемое имя" - это АКТУАЛЬНОЕ имя пакета.

Но имя "Bundle name" - это просто краткое имя "DISPLAY".

Фактическое вырезание/вставка из Apple.com:

CFBundleName (рекомендуется, локализуемое) Фактическое имя пакета.

CFBundleDisplayName (рекомендуется, локализуемое) Краткое отображаемое имя пакета.

Тьфу.