Vraag Hoe krijg ik Xcode om de projectgroepstructuur in de mappenstructuur op schijf te repliceren?


Ik heb een Xcode-project met de volgende groepsstructuur:

ProjectName/
    Classes/
        class1.h
        class1.m
        class2.h
        class2.m
        ...
    XMLDocs/
        doc1.xml
        doc2.xml
        ...
    Resources/
        Info.plist
        MainMenu.xib
        ...

enzovoort.

Ik zou willen dat dit ook in de mappenstructuur op de schijf wordt weergegeven:

ProjectFolder/
    Project.xcodeproj
    Classes/
        class1.h
        class1.m
        class2.h
        class2.m
        ...
    XMLDocs/
        doc1.xml
        doc2.xml
        ...
    Resources/
        Info.plist
        MainMenu.xib
        ...

in tegenstelling tot de gebruikelijke alles in de root projectmap-methodologie.

Is er een manier om dit te doen zonder handmatig de mapstructuur op de schijf te maken en vervolgens alle verwijzingen in Xcode naar de nieuwe locatie opnieuw te moeten plaatsen?

Bonuspunten als u me kunt vertellen hoe dit automatisch moet gebeuren telkens wanneer ik een nieuwe groep maak of bestanden aan een bestaande groep in Xcode toevoeg.


43
2017-12-03 20:57


oorsprong


antwoorden:


Er is geen "maak mijn schijf op mijn projectstructuur" -functionaliteit in Xcode.

U kunt de taak echter automatiseren met AppleScript: u kunt de projectstructuur vanuit een script onderzoeken en wijzigen. U hoeft dus alleen een script te schrijven dat de structuur van het project doorloopt en de maphiërarchie er uit laat zien zoals de projectstructuur dat doet, en aan te passen waar het bestand en de groepsreferenties van Xcode op hetzelfde moment wijzen.


0
2017-12-06 04:39



U kan doe dit tot op zekere hoogte! Elke keer dat u een nieuwe groep maakt, hoeft u slechts één extra stap te zetten (en deze eerste keer zult u veel inhaalacties uitvoeren!):

Xcode location setting

Wanneer u een groep in Xcode maakt, selecteert u deze onmiddellijk en opent u de rechterzijbalk. Let op de instelling "Locatie:" net onder de naam. Klik op het mappictogram naast 'Geen' en stel het in op een nieuwe map met dezelfde naam.

Wanneer u nu bestanden aan de groep toevoegt, gaan ze naar de bijbehorende map op schijf. Woo!

Helaas, in deze begintijd heb je veel te doen met bestanden. (Als u de groepspaden wijzigt, worden uw bestanden allemaal rood, omdat Xcode deze in de nieuwe map gaat zoeken. U moet ze handmatig van de Finder verplaatsen om deze te repareren.) Er is echter een opdracht -line tool om deze eerste migratie voor u uit te voeren: https://github.com/venmo/synx


57
2018-01-14 20:24



Een mapverwijzing is wat u zoekt. Bij het slepen of toevoegen van bestanden aan het project is er een optie om "Mapreferenties te maken voor toegevoegde mappen". Kies dat en je krijgt het gedrag dat je wilt.

alt-tekst http://img.skitch.com/20081203-prtxsp7c36ern4afxxdixy93sq.png

U kunt proberen de volledige omsluitende map van het project toe te voegen als een mapverwijzing. Dat zou alles moeten krijgen. Of voeg afzonderlijk verwijzingen toe voor "Classes" "Resources" en "XML".


11
2017-12-04 00:01



Xcode9 lost dit probleem op. Standaard wordt een nieuwe groep gemaakt met de bijbehorende map op schijf.


1
2017-07-12 07:26