Имя пакета, исполняемое имя, название продукта... что-нибудь еще?
Название пакета, исполняемое имя, название продукта... больше
Может кто-то может помочь прояснить использование каждого из них в 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 (рекомендуется, локализуемое) Краткое отображаемое имя пакета.
Тьфу.