Dans xcode ca peut etre un peu casse tete ce genre de choses :
tu as les fichiers de données qualifiés de "ressources", qui seront dans ton .app, et auquel tu accède avec les méthodes relatives au bundle de ton application. (donc après tu distribue que ton .app)
Sinon tu peux y acceder de facon plus "classique", avec un chemin relatif (ou global) à ton executable.
Dans ce dernier cas, il faut spécifier correctement dans xcode a partir de quel emplacement est executé ton programme (je sais plus du tout ou ca se trouve, dans les options sur le target?), tu peux choisir entre Build/Debug (ou Release), ou bien la racine du projet.
Ce paramètre n'est valable bien sur que quand tu lance ton appli depuis xcode, pour la distribuer il faut que tu mette ton .app et tes fichiers externe comme tu suppose qu'il se trouve dans ton programme.