Ostrzeżenie: faza kompilacji zasobów pakietu kopii zawiera plik Info.plist tego celu

270

Podzieliłem projekt na dwie kompilacje i nadałem każdemu z nich plistplik. Wszystko działa dobrze, ale wciąż pojawia się ostrzeżenie o kompilacji:

Ostrzeżenie: faza kompilacji zasobów pakietu kopii zawiera plik Info.plist tego celu „MyApp-Info.plist”

Dostaję to, gdy próbuję budować MyApp. Budowanie drugiego celu daje ten sam błąd (z SecondTarget-Info.plistostrzeżeniem). Nie jestem pewien, dlaczego to ostrzeżenie, ponieważ chcę, aby kompilacja zawierała ten .plistplik. Każdy z .plistplików ma jedno docelowe członkostwo (dla własnej wersji).

Co oznacza to ostrzeżenie? Czy jest jakiś sposób, żeby to zniknęło?

Nevan King
źródło
Nie musisz dodawać Info.plist do każdego celu. Zamiast tego w każdym celu Ustawienia kompilacji -> Opakowanie -> Plik Info.plist -> lokalizacja do celu Info.plist
onmyway133

Odpowiedzi:

595

https://developer.apple.com/library/content/qa/qa1649/_index.html

Fragment:

Otrzymujesz to ostrzeżenie, ponieważ prawdopodobnie dodałeś plik Info.plist do fazy kompilacji zasobów pakietu kopii, jak pokazano na rysunku

wprowadź opis zdjęcia tutaj

Ustawienie kompilacji INFOPLIST_FILE określa nazwę Info.plist powiązaną z celem. Podczas budowania celu Xcode odczytuje to ustawienie kompilacji i kopiuje wymienioną Info.plist do pakietu aplikacji. Ponieważ Xcode automatycznie przetwarza Info.plist, nie należy dodawać go do fazy kompilacji zasobów pakietu kopii ani ustawiać go jako członka docelowego.

Aby rozwiązać to ostrzeżenie, wybierz Info.plist z fazy kompilacji Kopiuj pakiet zasobów, jak pokazano na rysunku 1, a następnie kliknij przycisk Usuń (-), aby usunąć go z fazy.

JWWalker
źródło
Jaki problem powstanie, jeśli nie zostanie rozwiązany?
hasan
2
@ hasan83, otrzymasz ostrzeżenie o kompilacji, a zbudowany produkt będzie zawierał dodatkową kopię Info.plist zajmującą trochę miejsca.
JWWalker
1
@kraftydevil, czy twój projekt ma jakieś podprojekty, aby ostrzeżenie mogło odnosić się do celu innego niż ten, który zbadałeś?
JWWalker,
5
Nadal aktualne, 7 lat później.
Jungledev
1
Rozwiązanie działało dla mnie na Xcode 9. @jungledev jest nadal aktualne, ponieważ Apple jest zajęte aktualizowaniem wersji Swift zamiast opracowywać Xcode, aby pokazać nam rozwiązanie dziwnych błędów dziwnych liczb przez cały czas.
MBH
65

Aby naprawić w xcode 4:

1) Usuń odniesienie do pliku info.plist, zaznaczając go i naciskając klawisz Delete.

2) Dodaj ponownie plik info.plist, ale nie wybieraj miejsca docelowego i odznacz opcję „dodaj do celów”.

Buchannon
źródło
2
Widzę teraz, że NIE odznaczenie opcji „dodaj do celów” podczas kopiowania pliku plist do mojego projektu było przyczyną tego problemu. Aby rozwiązać problem, wykonałem czynności opisane w powyższej „poprawnej odpowiedzi”, ale usuwanie i ponowne dodawanie bez dodawania do celów również by działało. =)
RanLearns
1
To działało dla mnie w Xcode 6.4. Wybrana odpowiedź nie.
kraftydevil
2

Jeśli ktoś napotka ten problem za pomocą Xcode 3, aby go naprawić, kliknij plik .plist w lewej kolumnie pod „Grupami i plikami” oraz w prawym górnym obszarze, odznacz pole obok nazwy pliku .plist w kolumnie pod ikoną dziesiątkę. Konieczne będzie oddalenie edytora (Widok -> Zoom Editor Out), aby wyświetlić pola wyboru.

Marc
źródło
0

Innym rozwiązaniem jest:

Możliwe, że przypadkowo usunąłeś plik projektu z podstawowych danych członkostwa docelowego.

  1. Wybierz Main.storyboard w nawigatorze projektu po lewej stronie

  2. Przejdź do „inspektora plików” (pierwsza karta) po prawej stronie

  3. Znajdź listę „Docelowe członkostwo”

  4. Zaznacz pole wyboru

  5. Daj mu trochę czasu na przetworzenie, ale gdy jesteś przy nim, sprawdź również LaunchScreen.storyboard, .xcdatamodelid, Assets.xcassets i wszystkie pliki .swift w swoim projekcie. Wszystkie powinny mieć włączone członkostwo docelowe.

  6. Uwaga: Info.plist nie powinien mieć włączonego zaznaczenia docelowego członkostwa.

Mam nadzieję że to pomoże.

Szurnięty
źródło
-2

Dla przypomnienia ... Spróbuję napisać o tym fajny radar, ale to naprawdę dziwne, jak Lokalizacja jest obsługiwana w Storyboardach w Xcode. Jeśli zapytasz „Pokaż w Finderze”, nie zobaczysz wybranego pliku .storyboard, ale zamiast niego zawiera on folder. Myślę, że ma to związek z lokalizacją scenorysu. Gdy tylko zmieniłem to z angielskiego na niemiecki (a więc nie mam już pliku w rootie lub en.lproj), zacząłem mieć problemy.

StuFF mc
źródło