Pods-resources.sh Odmowa uprawnień w iOS Project


87

Mam istniejący projekt od klienta i próbowałem go uruchomić na moim MAC przy użyciu XCode 5.0

Ale mam do czynienia z następującym błędem. Zainstalowałem Cocoa Pods, ale nadal nie działa. Ten projekt działa poprawnie na komputerze innego dewelopera. Bardzo potrzebuję tego w mojej maszynie.

Czego mi brakuje? Każda pomoc jest bardzo ceniona.

Z góry dziękuję.

wprowadź opis obrazu tutaj

Odpowiedzi:


165

Musisz sprawić, by skrypt był wykonywalny. Otwórz terminal i wykonaj to polecenie:

chmod a+x "/Users/shovon0203/Desktop/My Work/oDesk/momenTOGO/MomenTOGO_iPhone/Pods/Pods-resources.sh"

2
twoje polecenie działa, ale nie z Terminal: P, edytuję skrypt strąków i używam powyższego polecenia, a teraz działa :) dzięki stary!
Waqas Haider Sheikh

1
Dzieje się tak, gdy zaczynam nowy projekt, instaluję pody na moim komputerze domowym, a następnie kontynuuję projekt na moim laptopie. Czy istnieje sposób, aby ustawić domyślne uprawnienia frameworks.sh, aby nie musieć tego robić w terminalu za każdym razem, gdy przesyłam projekt między komputerem w domu a komputerem w pracy? Dzięki
aresz

6
Uruchomienie powyższego polecenia wraz z "sudo" rozwiązało problem.
Saikiran K

Ponieważ używam Subversion w moim projekcie, było to tylko tymczasowe rozwiązanie, ponieważ gdy jakakolwiek inna osoba początkowo pobierałaby ten plik, prawa do wykonywania byłyby ponownie tracone. użyj, svn propset svn:executable '*' <file>aby to naprawić.
ndreisg

Wypróbowałem to polecenie i nie zadziałało. Następnie wypróbowałem polecenie z sudo, które również nie działało. Następnie dodałem ustawienie zdefiniowane przez użytkownika do ustawień kompilacji w xcode "PODS_ROOT = $ {PROJECT_DIR} / Pods /". To właśnie naprawiło to dla mnie. Wygląda na to, że błąd odmowy uprawnień był dość mylący, ponieważ skrypt w rzeczywistości nie był w stanie znaleźć pliku.
CantThinkOfAnything

37

Spróbuj tego, działa jak urok!

rm -rf Pods/ Podfile.lock
pod install

2
To zadziałało dla mnie, ale nie ma potrzeby usuwania Podfile.lockpliku.
Fantini

18

Uruchomienie pod installw głównym katalogu projektu, w którym znajduje się plik podfile, powinno rozwiązać problem


10

Musisz sprawić, by skrypt był wykonywalny. Otwórz terminal i wykonaj to polecenie:

chmod a+x "your_path(where show permission denied)"

Sprawdź, czy w nazwie folderu nie ma miejsca, a następnie dodaj wcześniej „\”


6

dla mnie dezintegrując wszystkie strąki, a następnie ponownie je zainstalowałem:

pod deintegrate
pod install


5

Te kroki zadziałały dla mnie po wielu niepowodzeniach.

KROK 1: Przejdź do lokalizacji folderu zawierającego Pods-resources.sh

KROK 2: Otwórz terminal typu cd, a następnie przeciągnij folder zawierający Pods-resources.sh do terminala i naciśnij Enter.

KROK 3: uruchom to polecenie >> chmod a + x Pods-resources.sh

KROK 4: zrestartuj xcode i otwórz swój xxx.xworkspace

KROK 5: baw się dobrze


1
Po długich poszukiwaniach na ten temat ten w moim przypadku działa idealnie. Jedną z poprawek jest po uruchomieniu polecenia, a następnie wykonaj następujące czynności: chmod a + x Pods-ProjectName-resources.sh
Mohd Sadham

Dobrze to słyszeć, niezłe kodowanie.
Odwori

3

Powyższa odpowiedź działa. Jednak miałem ten sam problem, ale powracał. To dotyczyło wyewidencjonowania tej samej gałęzi na wielu komputerach. Będzie działać na jednej maszynie, a nie na innych. Używamy TFS jak nasze kontroli źródła (to OK, można sądzić), która nie gra ładnie .sh, .pyitd plików. Musieliśmy dodać .tpattributesplik do każdego katalogu z plikiem .shlub .py, abyśmy mogli uruchamiać .shi .pypliki jako pliki wykonywalne.

Wpisy w .tpattributespliku wyglądają następująco:

Pods-MyTarget-frameworks.sh:x
Pods-MyTarget-resources.sh:x

To przekłada się na chmod +x "Pods-MyTarget-frameworks.sh"

Działa jak marzenie!


gdzie umieściłeś: .tpattributesplik?
el.severo

W Pods> Target Support Files> Pods- [Target Name]
tentmaking

dzięki, dodano, ale nadal otrzymuję następujący problem . Co jeszcze sugerujesz? (PS - tutaj jest treść skryptu i tutaj się zawiesza)
el.severo

@tentmaking Właśnie napotykam ten sam problem z TFS. Czy możesz podać trochę więcej informacji o tym, jak to naprawiłeś?
steventnorris

@steventnorris Dodaliśmy plik (.tpattributes) do każdego katalogu Pods- [Target] (znajdującego się w Pods> Target Support Files> Pods- [Target], który ma wpis widoczny w mojej odpowiedzi powyżej. Nie jestem pewien, jakich innych informacji potrzebujesz.
namiotów

1

Opublikowałem to jako komentarz do odpowiedzi Kevinsa https://stackoverflow.com/a/19687227/3114383 . Ale pomyślałem, że równie dobrze mogę to ująć jako odpowiedź, ponieważ ludziom będzie to łatwiejsze w ten sposób i to rozwiązało mój problem. To może zadziałać również dla innych: D

Próbowałem uruchomić polecenie chmod z odpowiedzi kevinsa i nie zadziałało. Następnie wypróbowałem polecenie z sudo, które również nie działało. Następnie dodałem ustawienie zdefiniowane przez użytkownika do ustawień kompilacji w xcode "PODS_ROOT = $ {PROJECT_DIR} / Pods /". To właśnie naprawiło to dla mnie. Wygląda na to, że błąd odmowy uprawnień był dość mylący, ponieważ skrypt w rzeczywistości nie był w stanie znaleźć pliku.


Cześć @CantThink! Czy możesz podać przykład, w jaki sposób dodałeś to ustawienie?
Gehlen

1
@Gehlen Możesz zdefiniować tego rodzaju ustawienia w sekcji ustawień kompilacji xcode. Zobacz medium.com/@kavithakumarasamy89/…
CantThinkOfAnything

Niż ty @CantThink, bardzo nieuchwytny!
Gehlen

Cześć @CantThinkOfAnyThing! Tak! Ale w moim przypadku konfigurowałem CI na bambusie, a problem polegał na tym, że próbowałem uzyskać dostęp do $ TMPDIR w fazie kompilacji, więc nie mam dostępu. Po prostu go usuwam i działa! Mimo wszystko dziekuję !
Gehlen

@Gehlen cieszę się, że mogłem pomóc :)
CantThinkOfAnything

0

Ja też miałem do czynienia z tym problemem. Oto co zrobiłem:

  1. Utwórz zupełnie nowy projekt o tej samej nazwie i tej samej nazwie pakietu
  2. W terminalu katalogu projektu Pod init
  3. Otwórz plik pod w edytorze
  4. Skopiuj i wklej stare pliki pod projektu do nowego
  5. Skopiuj wszystkie pliki i zasoby do nowego projektu
  6. Po prostu zrób pod install

0

Napotkałem ten sam problem z Pods-project-frameworks.sh, rozwiązany przez usunięcie pierwszej linii #!/bin/shz pliku Pods-project-frameworks.sh.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.