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이 코드 서명에 의해 차단되었지만 실제로 어떻게 작동하는지 이해하지 못합니다. 앱이 빌드되어 내 기기에 배포되므로 코드 서명이 작동하는 것처럼 보입니다.
내 앱에서 자동 서명을 사용하고 재부팅 (그리고 필요한 경우 확실하지는 않지만 깨끗하게 처리) 한 후에 발생한 문제입니다. :) – WickedW