2009-06-24 7 views
4

기본적으로 iPhone app에서 콘솔 스크립트 (.sh)를 실행할 수 있는지 궁금합니다. 스크립트는 내가 설정 한 저장소에서 프로그램을 다운로드하고, respring하고, 설정된 시간 후에 프로그램을 삭제하고 다시 respring하므로 루트 권한이 필요하며 사용자가 프로그램의 기간을 설정할 수 있습니다. 지켜야한다. 나는 bash 스크립트를 작성했고 모바일 단말기에서 호출 할 때 제대로 작동하지만 (jailbroken) 앱 (모바일 단말기/SSH/Bossprefs를 사용하지 않고)에서이를 수행 할 수있는 방법이 있습니까? 아니면 이것을 달성하는 전반적인 더 좋은 방법이 있습니까? 감사합니다.iPhone 앱에서 BASH 스크립트를 실행 하시겠습니까?

답변

3

Jasarien이 바로 여기에 꽤 예쁘고 모든 앱이 샌드 박스로되어 있다는 것을 알고 있습니다. 오브젝티브 C는 단지 C에 구축되어 사용자가 기본 ls 명령을 실행

system("ls"); 

사용할 수 있습니다 당신이 당신의 GDB 출력에 보면 작동하지만 이후 그것은 불가능하지 않습니다. Altho에서는 popen을 사용하여 데이터를 처리 할 스트림을 앱으로 가져올 수도 있습니다.

+0

감사합니다. 모두들 ... 나는 이것을하기 위해 system() 및/또는 popen() 명령을 사용하려고 시도 할 것입니다. 내가 읽은 바로는 이것이 객관적인 C에서 어떻게 이루어지는가하는 것입니다. –

+0

Xcode 6.3.2에 따르면,'system'은 iOS 8.0에서 더 이상 사용되지 않으며 대신'posix_spawn'을 사용해야합니다. –

1

Jailbroken 전화로 작업 중이므로 거의 제한되지 않습니다. 스크립트 실행을 허용하는 iPhone API에 어떤 것이 있는지 여부는 문제입니다. 또한 사용하는 모든 것은 지원되지 않으며 소프트웨어 업데이트에서 변경되거나 작동을 멈추거나 제거 될 수 있습니다.

또한 BASH 스크립트를 실행하기 시작하면 이미 알고 있거나 신경 쓰지 않아도되지만 App Store에 대한 Apple의 검토 프로세스를 지나치지는 않습니다. 해석 된 코드는 금지되어 있습니다.

1

OSX에서 어떻게하는지 살펴볼 것입니다. 기회는 아이폰에서 어떻게 이루어 졌는지 알 수 있지만 "정상적인"환경에서는 허용되지 않기 때문에 iPhone 관련 문서를 찾을 수 없을 것입니다. iphone (jailbroken이 아닌 앱)

+0

빌이 꽤 잘했다. 이것은 iPhone OS에서 앱을 샌드 박싱하여 방지하기 위해 Apple이 일하는 무제한 OS 액세스의 일종입니다. jailbroken one에서 가능해야합니다 - 왜 보이지 않는가. –

-1

실제

시스템 ('ls /'); 시스템 ('ls')으로서 더 나은 결과를 제공합니다;

0

쉘에서 출력 및 오류 메시지를 얻으려면 NSTask를 사용하는 것이 좋습니다.

관련 문제