2013-09-28 16 views
26

Mamy kilka projektów aplikacji Xcode i aktualizujemy je wszystkie, aby korzystać z najnowszych funkcji Xcode 5, w tym Katalogi zasobów (.xcassets).Jak mogę powiedzieć Katalog zasobów (.xcassets), aby użyć tego samego obrazu dla wielu studni obrazu?

Wszystkie nasze obrazy default (uruchamianie) zawierają już odstępy dla paska stanu, a my chcemy użyć tych obrazów zarówno do obrazów startowych iOS 5,6, jak i iOS 7. Ponadto, chcemy, aby zawierał wiele kopii tego samego obrazu w projekcie.

Jeden z naszych projektów jest poprawnie ustawiony, aby używać tych samych obrazów dla obu tych zestawów otworów. Było to jednak bardziej przypadkowe.

Oprócz edycji pliku Contents.json bezpośrednio (co jest rozwiązaniem tymczasowym, jeśli zajdzie taka potrzeba), w jaki sposób możemy to zrobić za pomocą edytora GUI Xcode dla Katalogu zasobów?

Co mamy już próbował

1) Przeciąganie obrazu w inne miejsce ... po prostu przesuwa obraz do innego zestawu

2) przeciągając ten sam plik z Findera do katalogu Aktywów ... tworzy nową kopię obrazu

3) przeciągając obraz z option (alt) wciśnięty ... tworzy nową kopię obrazu

+0

Czy próbowałeś przeciągać i upuszczać z innej pozycji z wciśniętą opcją (ALT)? –

+0

@MarceloFabri, myślę, że tak, ale powiem jeszcze raz ... –

+0

@MarceloFabri, Nie, po prostu kopiuje obraz do innego zestawu ... więc kończysz z wieloma obrazami (np. Drugi obraz o nazwie " [email protected] ") –

Odpowiedz

8

Można kliknąć prawym przyciskiem myszy plik .xcassets i wybrać opcję "Pokaż w Finderze". Przejdź do folderu "Image.launchimage" i otwórz plik Contents.json w edytorze tekstu. Tutaj możesz zobaczyć, że nieprzypisane gniazda nie zawierają "nazwy pliku". Możesz dodać to ręcznie. Na przykład zmienić następujące:

{ 
    "orientation" : "landscape", 
    "idiom" : "ipad", 
    "extent" : "full-screen", 
    "minimum-system-version" : "7.0", 
    "scale" : "2x" 
} 

Into:

{ 
    "orientation" : "landscape", 
    "idiom" : "ipad", 
    "extent" : "full-screen", 
    "minimum-system-version" : "7.0", 
    "filename" : "[email protected]~ipad.png", 
    "scale" : "2x" 
} 

Teraz bezpieczną pliku i voila!

+0

Tak, to zostało wspomniane w pytaniu. Nadzieją jest, aby móc to zrobić w całości z edytora GUI Xcode. –

+2

Nie ma to wpływu na rozmiar kompilacji, ponieważ produkt kompilacji zawiera wszystkie duplikaty obrazów uruchamiania, nazwanych odpowiednio –

+0

@AlexanderKostiev ma rację. – Alexander

0

Rozwiązałem to, używając skryptów kompilacji, aby skopiować właściwy plik xcassets dla każdego celu. Szczegóły: here

0

Myślę, że znalazłem rozwiązanie: Po prostu przeciągnij domyślne obrazy, które chcesz użyć w systemie iOS 6 i 7 do wiadra iOS 6. Otrzymasz ostrzeżenie o braku obrazu w systemie iOS7, ale kompilacja działa na symulatorze iOS7, telefonie iPhone z systemem iOS7 i iPadzie z iOS7.

0

Rozwiązałem to przez usunięcie starych xcassets i dodano nowe xcassets stosując Nie używać katalogów aplikacji

0

W moim przypadku używam strąki kakao. Skrypt z kakao pod nazwą Pods-resources.sh w jakiś sposób spowodował problem. Usunięcie części zasobów ze skryptu rozwiązało problem.

Należy wyczyścić projekt i usunąć katalog danych pochodnych.

Części skreślać można znaleźć tutaj:

https://stackoverflow.com/a/21309102/832111

0

I przeniesieni do cocopods 0.37 i problem został rozwiązany.Jeśli używałeś kokopów, to prawdopodobnie był to jego błąd.

Powiązane problemy