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

Tasnim Alam Shovon
źródło

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"
Kevin
źródło
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
iTALIYA
źródło
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

brycejl
źródło
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 „\”

Amardeep puvar
źródło
6

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

pod deintegrate
pod install
Mostafa ElShazly
źródło
5

Po prostu usuń folder Pods-[Your_Project_Name]całkowicie i zrób nowypod install

Mike Keskinov
źródło
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

Odwori
źródło
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!

produkcja namiotów
źródło
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.

CantThinkOfAnything
źródło
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
Saneesh
źródło
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.

Dilmurat Abduqayyum
źródło