Вы можете найти местоположение .app по [[NSBundle mainBundle] bundleURL];
или [[NSBundle mainBundle] bundlePath];
.
Однако вы, вероятно, захотите получить доступ к ресурсам внутри .app, пройдя через NSBundle
, чтобы найтиих в большинстве случаев (это касается таких вопросов, как локализация).
Примечание: Если вы планируете изменить комплект приложений; не. Вы не должны, не можете и не должны предполагать, что у вас есть права на запись в пакет приложений;и если вы это сделаете, то, скорее всего, что-то очень не так.
Редактировать: Интересно, если вы пишете программу на C для OS X и вам нужно найти местоположение исполняемого файла;Вы можете использовать непереносимое главное объявление, например:
int main (int argc, const char *argv[], const char *env[], const char *path[]) {
// path[0] now contains the path to the executable
// NOT PORTABLE! OS X ONLY!
return 0;
}