저는 앱을 arm64 아키텍처로 이식하기 전까지는 잘 실행되는 PDF 내보내기 메소드로 고민하고 있습니다.64bit 디바이스에서 UIGraphicsBeginPDFPage()가 무작위로 충돌합니다 (CGPDFSecurityManagerCreateDecryptor())
방법은 기존 PDF를 열고 새로운 PDF 파일을 만들고 더 많은 콘텐츠 페이지를 추가하기 전에 새로 만든 PDF 파일의 내용을 그려 넣습니다.
이 메서드는 새 PDF 문서에 새 PDF 페이지를 만들려고 할 때 (첫 번째 PDF가 새 PDF에 통합 된 후) UIGraphicsBeginPDFPage()에서 EXC_BAD_ACCESS 경고가 발생하면 응용 프로그램이 충돌합니다. 전화.
일부 PDF 파일에서만 발생하며 일부는 64 비트 장치에서만 발생합니다.
다음은 CGPDFSecurityManagerCreateDecryptor() 호출을 보여주는 스택 트레이스입니다. 이 사고에 대해 어떤 생각을 가지고있는 경우
Thread 14Queue : NSOperationQueue 0x14f6dd3a0 :: NSOperation 0x17504a470 (serial)
#0 0x00000001838aeee4 in CGPDFSecurityManagerCreateDecryptor()
#1 0x00000001838d1004 in pdf_filter_chain_create()
#2 0x0000000183831e00 in CGPDFStreamCreateFilterChain()
#3 0x000000018383226c in chain_get_bytes()
#4 0x0000000183b5e0ac in unpackImageRow()
#5 0x0000000183b5dfd4 in PDFImageEmitData()
#6 0x0000000183b5f684 in emit_image()
#7 0x0000000183b5ef9c in PDFImageEmitDefinition()
#8 0x0000000183464584 in __CFSetApplyFunction_block_invoke()
#9 0x00000001834643bc in CFBasicHashApply()
#10 0x00000001834642e4 in CFSetApplyFunction()
#11 0x0000000183b5fa9c in PDFImageSetEmitDefinitions()
#12 0x0000000183b590c0 in emit_page_resources(PDFDocument*)()
#13 0x0000000183b5904c in PDFDocumentEndPage()
#14 0x0000000183b57cf0 in pdf_EndPage()
#15 0x0000000187fda904 in UIGraphicsBeginPDFPageWithInfo()
#16 0x00000001002093e8 in -[ExportTools renderPdfContentToContext:forPlanVersion:]
#17 0x00000001001fba60 in -[ExportTools generatePdfReportWithOptions:]
#18 0x00000001000f7eb4 in -[DetailViewController generatePdfAndShowModalOpenWithAppWithOptions:]
#19 0x00000001835883c0 in __invoking___()
#20 0x0000000183486138 in -[NSInvocation invoke]()
#21 0x000000018443ba20 in -[NSInvocationOperation main]()
#22 0x000000018437c61c in -[__NSOperationInternal _start:]()
#23 0x000000018443e26c in __NSOQSchedule_f()
#24 0x000000010105cdf0 in _dispatch_client_callout()
#25 0x0000000101067854 in _dispatch_queue_drain()
#26 0x0000000101060120 in _dispatch_queue_invoke()
#27 0x000000010106975c in _dispatch_root_queue_drain()
#28 0x000000010106af18 in _dispatch_worker_thread3()
#29 0x00000001945012e4 in _pthread_wqthread()
, 당신의 도움이 크게 ... 일일이 문제를 해결하기 위해 모든 노력과는 UIKit 버그가 아니라면 궁금 beggening하고,
감사
을 감상 할 수있다CGPDFDocumentRelease(pdf);
CGDataProviderRelease(provider);
UIGraphicsEndPDFContext();
CGPDFSecurityManagerCreateDecryptor 호 :
동일한 기능에서 같은 스택 크래시가 발생합니다. 문제의 소프트웨어를 작성하지는 않았지만 PDF 문서 작업을하고 OS X 10.10에서 실행 중임을 확인할 수 있으므로 64 비트 – HairOfTheDog