2017-11-25 4 views
1

iOS 용 앱 확장이 포함 된 Xamarin Forms 앱을 만들려고합니다. 내 솔루션의 구조는 다음과 같다 :Xamarin.iOS 앱이 누락 된 Mono 런타임에서 충돌합니다. 적합한 이미지를 찾을 수 없습니다. 코드 서명 차단됨 mmap

MyProject 
    \BitThicket.MyProject     -- Forms project 
    \BitThicket.MyProject.Core    -- NET Standard 2.0 class library 
    \BitThicket.MyProject.iOS    -- iOS project 
    \BitThicket.MyProject.Extensions.Intents -- Intents project 

각 프로젝트 템플릿을 생성하고, 나는 몇 가지를 변경 한 -와 충돌 시작할 때 발생하는, 그래서 내 코드의 아무도 어쨌든에 도달하지 않습니다.

나는 iOS 11.1을 타겟팅하고 있으며 유효한 서명 인증서와 프로비저닝 프로파일을 설정했습니다. 앱을 빌드하고 Mac 용 Visual Studio (7.2.2)에서 기기 (내 iPhone 7 이상)에 배포 할 수 있습니다. 그러나 디버거가 나를 위해 응용 프로그램을 시작하려고하면 빈 시작보기가 표시되고 응용 프로그램이 충돌합니다. 디버거는 절대로 연결하지 않습니다. 덧붙여 말하자면 앱이 기기에서 수동으로 실행될 때와 같은 방식으로 충돌합니다.

나는 엑스 코드를 사용하여 장치 로그를 검색하고, 충돌은 다음과 같습니다

Incident Identifier: 948709A2-74AA-4E16-BEEA-072CFCF4AB38 
CrashReporter Key: ###################################### 
Hardware Model:  iPhone9,2 
Process:    BitThicket.Turns.iOS [2457] 
Path:    /private/var/containers/Bundle/Application/#####-##############-############/BitThicket.Turns.iOS.app/BitThicket.Turns.iOS 
Identifier:   com.bitthicket.Turns 
Version:    1.0 (1.0) 
Code Type:   ARM-64 (Native) 
Role:    Foreground 
Parent Process:  launchd [1] 
Coalition:   com.bitthicket.Turns [818] 


Date/Time:   2017-11-24 09:41:15.3743 -0600 
Launch Time:   2017-11-24 09:41:15.3041 -0600 
OS Version:   iPhone OS 11.1.2 (15B202) 
Baseband Version: 3.21.01 
Report Version:  104 

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Exception Note: EXC_CORPSE_NOTIFY 
Termination Description: DYLD, Library not loaded: @rpath/Mono.framework/Mono | Referenced from: /var/containers/Bundle/Application/########-####-####-####-############/BitThicket.Turns.iOS.app/BitThicket.Turns.iOS | Reason: no suitable image found. Did find: | /private/var/containers/Bundle/Application/########-####-####-####-############/BitThicket.Turns.iOS.app/Frameworks/Mono.framework/Mono: code signing blocked mmap() of '/private/var/containers/Bundle/Application/########-####-####-####-############/BitThicket.Turns.iOS.app/Frameworks/Mono.framework/Mono' 
Triggered by Thread: 0 

Filtered syslog: 
None found 

Thread 0 Crashed: 
0 dyld       0x0000000106722f1c __abort_with_payload + 8 
1 dyld       0x00000001067226f4 abort_with_payload_wrapper_internal + 100 
2 dyld       0x0000000106722720 fcntl + 0 
3 dyld       0x00000001066f8498 dyld::fastBindLazySymbol+ 17560 (ImageLoader**, unsigned long) + 0 
4 dyld       0x00000001066fb714 dyld::_main+ 30484 (macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 7376 
5 dyld       0x00000001066f521c _dyld_start + 68 

Thread 0 crashed with ARM Thread State (64-bit): 
    x0: 0x0000000000000006 x1: 0x0000000000000001 x2: 0x000000016d50a470 x3: 0x00000000000000a5 
    x4: 0x000000016d50a070 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x00000000000002f0 
    x8: 0x0000000000000020 x9: 0x0000000000000009 x10: 0x6f6e6f4d2f736b72 x11: 0x6f77656d6172662e 
    x12: 0x726f77656d617246 x13: 0x2e6f6e6f4d2f736b x14: 0x726f77656d617266 x15: 0x00276f6e6f4d2f6b 
    x16: 0x0000000000000209 x17: 0x000000008000001f x18: 0x0000000000000000 x19: 0x0000000000000000 
    x20: 0x000000016d50a070 x21: 0x00000000000000a5 x22: 0x000000016d50a470 x23: 0x0000000000000001 
    x24: 0x0000000000000006 x25: 0x00000001028f4000 x26: 0x0000000106736000 x27: 0x0000000106735f88 
    x28: 0x000000016d50ba70 fp: 0x000000016d50a040 lr: 0x00000001067226f4 
    sp: 0x000000016d50a000 pc: 0x0000000106722f1c cpsr: 0x00000000 

Binary Images: 
0x1028f4000 - 0x103e43fff BitThicket.Turns.iOS arm64 <###########################> /var/containers/Bundle/Application/########-####-####-####-############/BitThicket.Turns.iOS.app/BitThicket.Turns.iOS 
0x1066f4000 - 0x106733fff dyld arm64 <##########################> /usr/lib/dyld 

EOF 

사람이 원인이 무엇인지 알고 있나요? Xamarin 포럼이나 다른 장소 (SO를 포함하여, 불행히도)에 직접적인 답변이 많이없는 것 같습니다. Mac 용 Visual Studio를 다시 시작하거나 장치에서 응용 프로그램을 삭제하고 솔루션을 정리/다시 작성하는 등의 간단한 작업을 시도했지만 이러한 작업은 도움이되지 않습니다.

종료 설명에서 모노를로드하려고 시도한 것처럼 들리지만 mmap이 코드 서명에 의해 차단되었지만 실제로 어떻게 작동하는지 이해하지 못합니다. 앱이 빌드되어 내 기기에 배포되므로 코드 서명이 작동하는 것처럼 보입니다.

답변

1

조금 더 파고 들자 비슷한 문제가 몇 가지 발견되었고, 가장 일반적인 접근 방법은 서명 인증서가 잘못 구성된 것 같습니다. 나는 근본적인 이유에 대해 아직도 궁금해합니다. 왜 그 이유가 "왜"입니다.

"시스템" "로그인"키 체인 모두에서 "항상 신뢰할 수있는"것으로 구성된 것처럼 "Apple Worldwide Developer Relations Certificate Authority"를 보유하고 있음을 발견했습니다. 내 "로그인"키 체인에만 있었고 "시스템 기본값"으로 구성되었습니다.

이 문제를 해결하면 다시 시도했지만 여전히 문제가 있습니다. 마침내 Mac을 재부팅 한 후 사라졌습니다.

+0

내 앱에서 자동 서명을 사용하고 재부팅 (그리고 필요한 경우 확실하지는 않지만 깨끗하게 처리) 한 후에 발생한 문제입니다. :) – WickedW

관련 문제