2009-10-08 3 views
5

iOS 앱의 일부로 컴파일하고 실행하려는 오픈 소스 프로젝트 (gdal)가 있습니다. 내가 NSTask을 사용할 것으로 예상 했었지만 이제는 아이폰 OS 3.0에서 삭제 된 것을 볼 수 있습니다. 또 다른 곳에서는 외부 응용 프로그램을 실행하는 것이 내 응용 프로그램 번들의 리소스 일 수도 있지만 허용되지 않습니다.iPhone 용 NSTask 또는 동급

다른 사람이 iOS 응용 프로그램에서 명령 줄 도구를 실행할 수있는 방법을 찾았습니까?

+0

저는 현재 이와 비슷한 작업을하고 있습니다. –

+0

나는 이것이 낡은 실이라는 것을 알고 있지만 google의 '아이폰에 nstask'로 나오는 것은 내가 제일 먼저 jailbroken 아이폰에 대해 알아 냈다. http : //stackoverflow.com/questions/9983430/trying-to-use-cydia -libraries-nstask-on-jailbroken-iphone-crashes-with-segmenta/10019390 – apple16

답변

7

3.0에서는 제거되지 않았지만 절대로 존재하지 않았습니다. iPhone에서 별도의 프로세스를 실행할 방법이 없습니다. GDAL은 MIT 스타일 라이센스하에있는 것으로 보이며 라이브러리 인터페이스가 있으므로 iPhone 앱에 직접 연결하면 법적 또는 기술적 인 문제가 없어야합니다.

+1

감사합니다 루이, Apple에서 제공 한 프레임 워크 중 하나에 링크하는 것과 동일한 과정입니까? libgdal.a는 약 40MB로, 나머지 프로젝트보다 훨씬 크기 때문에 실행 파일 gdalinfo (약 5MB)를 사용하고 싶지만 직접 연결할 수있는 것처럼 보이지는 않습니다. 오픈 소스 아이폰 앱이 많지 않다는 것을 알고 있습니다.하지만 애플 프레임 워크가 아닌 다른 코드로 링크를하면 어떻게되는지 알 수 있습니다. – Craig

+0

음, 당연히 원하는 기능에 필요한 코드의 양은 40 메가 바이트보다 적어야합니다. 효과적으로 개 발할 수 있는지 여부는 별개의 문제입니다. 또한, 40 megs는 스트라이프가 해제되고 모든 디버그 기호 (상당히 클 수 있음)를 가지고 있다고 생각합니다. 스트립하면 얼마나 줄어들 죠? –

+0

나는이 사이트에서 더 많은 질문을해야 할 것 같아. 디버그 기호를 제거하는 방법을 잘 모르겠습니다. 그것은 "build_for_iphoneos"크리스토퍼 Stawarz에 의해 쓰여진 스크립트를 사용하여 컴파일 된, 아마 내가 설정해야 할 플래그에 대한 몇 가지 메모가 있습니다. 그동안 프레임 워크처럼 가져 와서 전체 40MB 버전에서 실행할 수있는 기능을 확인해 보겠습니다. – Craig

1

NSTask는 ios 4, ios 3 및 가능한 모든 항목에서 사용할 수 있습니다. NStask를 사용하려면 내 Mac에서 내 프로젝트 폴더로 NStask 헤더 파일을 복사해야했습니다. 또한 애플은 앱 스토어에서 NStask를 사용하는 앱을 허용하지 않을 가능성이 높습니다. Cydia가 앱을 배포하기 가장 좋은 장소 일 것입니다.

+0

기기에서 테스트 했습니까? 시뮬레이터에서 방금 테스트 한 경우, 가장 필요한 파일 인 NSTask.m이 누락되어 Mac OS X 소스를 사용했을 것입니다. – jrtc27

+0

나는 장치에서 테스트했지만 믿을 수 없다고 생각한다. – romejoe

+0

NSTask는 iOS에 있으므로 헤더를 컴파일해야한다. –

0

그냥 알림 :
NSTask는 샌드 박스 환경에서 작동하지 않습니다 ("프로세스 포크 거부"가 발생합니다). 그래서 응용 프로그램을/응용 프로그램에 넣으십시오.

+0

어요? iPhone 앱을 어디에 배치할지에 대해 많은 선택의 여지가 없다고 생각합니다. – Craig

+1

당신은 탈옥해야 할 수도 있습니다 .. – hewigovens

+0

질문 : 어떻게 그것을 복사합니까? 내 일반적인 projekt - 폴더 및 # 그것을 가져 오는 것보다? --------- 본때를 찍은 댓글에 대해 뭐라 구요? NSTask가 iOS에서 사용되는 경우 애플이 스토어에서 앱을 거부한다는 것이 사실입니까? ---------- 제가하고 싶습니다. http://stackoverflow.com/questions/16626577/ios-and-calling-terminal-commandos-with-ibaction?noredirect=1#comment23907909_16626577 – webschnecke