2016-12-07 8 views
1

한 달에 필요한 보안 조정을 한 후 iOS 10.0을 포함한 상당 수준의 사용자와 함께 정상적으로 작동하는 Cordova 앱 (Android 및 iOS 용으로 작성 됨)이 있습니다. 또는 2 전에. 이제 최근 10.1 업그레이드 (현재 10.1.1에서 테스트 중)에서 비디오 캡처 기능을 호출하려는 시도가 JS 관점에서 디버깅 할 수있는 옵션없이 Cordova와 완전히 충돌합니다. Android 측에는 문제가 없습니다. 이것은 iOS의 최신 업데이트 일 뿐이며 코드 또는 플러그인 업데이트 또는 변경 사항이 없습니다.

ngCordova와 함께 cordova-plugin-media-capture 플러그인 v1.4.0을 사용하고 있습니다. $cordovaCapture.captureImage을 통해 사진을 찍으라는 플러그인이 iOS 10.1.1에서 제대로 작동합니다. 그것은 $cordovaCapture.captureVideo로 전화를 걸어 Cordova를 완전하고 즉시 충돌시킵니다. Xcode를 살펴 보았습니다. 새롭거나 이상한 설정이 있고 모든 것이 올바른 것 같으므로이 문제를 해결하기위한 제안을 환영 할 것입니다.

:

이전 (한두 달 전에) 우리는 Config.xml의이 아이폰 OS 설정 (미리보기가 표시)로 코르도바 - 플러그인 - 설정 - 후크 플러그인을 사용하여 새로운 아이폰 OS 10 권한 문제 해결

<platform name="ios"> 
    <config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist"> 
     <string>Reason goes here...</string> 
    </config-file> 
    <config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist"> 
     <string>Reason goes here....</string> 
    </config-file> 
    <config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist"> 
     <string>Reason goes here...</string> 
    </config-file> 

Xcode를 사용하여 이러한 설정을 확인했습니다.

$cordovaCapture.captureVideo 
({ 
    limit:  1, // how many clips to record (iOS must be 1) 
    duration: 300 // maximum length (in seconds) = 5 minutes 
}) 

희망 다른 사람이 같은 문제를 해결하기 위해 관리하고 해결 방법을 공유 할 의사가 다음과 같이 우리가 실제 호출에 전달하는 매개 변수입니다.

+0

:

는 IOS의 단점을 참조하십시오. 나는 최신 v6.4.0으로 업그레이드하고 재시험했지만 동일한 iOS 문제를 겪고 있습니다. –

+0

친절하게 마이크 권한을 살펴 보는 두 사람에게. 나는 더 파헤 쳤다. 충돌 보고서에서 충돌하는 이유가있는 것 같다. config.xml 설정이 모두 포함되어있어 뭔가 어딘가에서 망쳐 버려야한다. Xcode에서도 이유 문자열을 볼 수있다. 현재, 애플 리케이션은 그것을 가지고 있지 않습니다. –

+0

config.xml에서 마이크 설정을 유지하려고 시도한 다음'cordova clean ios'가 다시 빌드되어 실행 중입니다. 트릭을했는데 이제 비디오를 다시 녹화 할 수 있습니다. 그래서 근본적인 문제는 마이크 설정 이었지만, 빌드 과정에서 엉망이 된 것도있었습니다. –

답변

1

동영상을 녹화 할 때 필요한 NSMicrophoneUsageDescription이 누락되었습니다.

플러그인의 1.4.0 버전은 모든 UsageDescriptions를 추가해야합니다. cordova-plugin-settings-hook은 필요하지 않지만 어떤 이유로 추가하지 않으면 작동하지 않습니다. 플러그인.

1.4.0 미디어 플러그인이있는 깨끗한 새 프로젝트에서 충돌없이 예상대로 작동합니다.

+0

제안 해 주셔서 감사합니다. 대단히 감사합니다! 그걸 살펴보고 해결되면 대답을 받아 들일 것입니다. 우리가 10.0에서 사용 권한을 처리해야하는 이상한 일들이 있었고 모든 것이 작동했습니다. 아마도이 권한은 10.1에서만 시행됩니다. –

+0

불행히도 문제가 해결되지 않았습니다.(여전히 충돌합니다.) 어쨌든 필요한 권한이므로 +1 할 것입니다. –

+0

후속 조치 ... Xcode의 [정보] 섹션에 있더라도 마이크 사용량 누락 문자열이 크래시로 인한 것임을 보여주는 오류 로그 (Xcode 장치 메뉴의)가 나타납니다. 그래서 마이크 설정을 추가하고 cordova clean ios 명령을 실행하면 결국 트릭을 만들었습니다. 마이크 설정을 제안한 사람은 처음 이었으므로 "깨끗한"이라는 단어를 사용하는 경우에도 정답으로 표시됩니다. –

1

iOS 10 업데이트에서 사용 권한 설명이있는 변수와 함께 플러그인을 추가해야합니다. cordova 프로젝트의 config.xml에서 아래 코드를 사용하십시오.

<plugin name="cordova-plugin-media-capture" spec="1.4.0"> 
    <variable name="CAMERA_USAGE_DESCRIPTION" value="To take videos"/> 
    <variable name="MICROPHONE_USAGE_DESCRIPTION" value="To record voice while taking videos"/> 
    <variable name="PHOTO_LIBRARY_USAGE_DESCRIPTION" value="To provide photo browsing."/> 
</plugin> 

이렇게하면 문제가 해결됩니다. 참고 응용 프로그램은 원래 코르도바 v6.2.0를 사용했다 https://github.com/apache/cordova-plugin-media-capture

+0

공유해 주셔서 감사합니다. 불행히도 이것은 별 차이가 없었습니다. –

+0

이 티켓의 다른 부분에서 알 수 있듯이 마이크 설정 조합과 코드바 클린 ios 명령이 트릭을 수행했습니다. jcesarmobile은 마이크 설정을 먼저 지적 했으므로 거기에서 수여 할 것이지만 이것은 이미 사용하고있는 settings-hook 플러그인을 사용하고 싶지 않은 사람에게도 좋은 대답이었습니다. –