Как я могу отладить сообщение «Не удалось установить»?

В настоящее время я пытаюсь разработать кроссплатформенное мобильное приложение с использованием Xamarin.forms. В рамках этого приложения мне нужно включить сторонний .framework в мой проект Xamarin.iOS. Я успешно создал библиотеку привязок Xamarin.iOS .dll и включил ее в свой проект. Я могу ссылаться на библиотеку и компилировать без ошибок, однако, когда я пытаюсь развернуть приложение на симуляторе iPhone, приложение запускается, а затем вылетает с сообщением «Не удалось установить».

Сообщение об ошибке

Если я удалю какие-либо строки кода, которые ссылаются на эту .dll, приложение будет работать нормально.

Кто-нибудь знает, как это решить?

Потенциально полезная информация:
Я разрабатываю в Visual Studio для Windows
Версия Xamarin: 16.7.000.440
Версия Xamarin.iOS: 13.20.2.2
Версия XCode: 12.0.1
Версия iOS: 14.0

Журнал сбоев устройства:

Incident Identifier: 882D82AB-5511-48C1-AFCD-4B86933B2A5C  
CrashReporter Key:   1cc59f0bc819c0d806e2c1ccdf7b24a413699a4f  
Hardware Model:      iPad7,11  
Process:             MyApp.iOS [452]  
Path:                /private/var/containers/Bundle/Application/A31E102C-4BB8-431A-ABDF-E17A503E1778/MyApp.iOS.app/MyApp.iOS  
Identifier:          com.Crossroads.MyApp  
Version:             1.0 (1.0)  
Code Type:           ARM-64 (Native)  
Role:                Foreground  
Parent Process:      launchd [1]  
Coalition:           com.Crossroads.MyApp [614]  


Date/Time:           2020-10-16 09:46:53.9542 -0500  
Launch Time:         2020-10-16 09:46:53.9106 -0500  
OS Version:          iPhone OS 13.5.1 (17F80)  
Release Type:        User  
Baseband Version:    n/a  
Report Version:      104  

Exception Type:  EXC_CRASH (SIGABRT)  
Exception Codes: 0x0000000000000000, 0x0000000000000000  
Exception Note:  EXC_CORPSE_NOTIFY  
Termination Description: DYLD, dependent dylib '@rpath/MyFramework.framework/MyFramework' not found for '/private/var/containers/Bundle/Application/A31E102C-4BB8-431A-ABDF-E17A503E1778/MyApp.iOS.app/MyApp.iOS', tried but didn't find: '@rpath/MyFramework.framework/MyFramework' '/System/Library/Frameworks/MyFramework.framework/MyFramework'  
Highlighted by Thread:  0  

Backtrace not available  

Unknown thread crashed with ARM Thread State (64-bit):  
    x0: 0x0000000000000006   x1: 0x0000000000000001   x2: 0x000000016b701390   x3: 0x00000000000000c7  
    x4: 0x000000016b700f90   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x0000000000000000  
    x8: 0x0000000000000020   x9: 0x0000000000000009  x10: 0x6f4d706163617461  x11: 0x656b6f54656c6962  
   x12: 0x6f77656d6172662e  x13: 0x63617461442f6b72  x14: 0x656c69626f4d7061  x15: 0x0020276e656b6f54  
   x16: 0x0000000000000209  x17: 0x0000000000000000  x18: 0x0000000000000000  x19: 0x0000000000000000  
   x20: 0x000000016b700f90  x21: 0x00000000000000c7  x22: 0x000000016b701390  x23: 0x0000000000000001  
   x24: 0x0000000000000006  x25: 0x0000000106cd4000  x26: 0x0000000000000001  x27: 0x0000000106cd4000  
   x28: 0x0000000000000000   fp: 0x000000016b700f60   lr: 0x0000000106cbbee8  
    sp: 0x000000016b700f20   pc: 0x0000000106cb4f68 cpsr: 0x00000000  
   esr: 0x00000000  Address size fault  

Binary images description not available  

Error Formulating Crash Report:  
Failed to create CSSymbolicatorRef - corpse still valid ¯\_(ツ)_/¯  

EOF

person Sam Rogers    schedule 14.10.2020    source источник
comment
Не могли бы вы проверить журнал устройства для получения дополнительной информации об ошибках?   -  person Jack Hua    schedule 15.10.2020
comment
@ JackHua-MSFT Я добавил в сообщение журнал сбоев.   -  person Sam Rogers    schedule 16.10.2020


Ответы (1)


Из яблока у вас есть ошибки в документе rel=objc " связал рамку, пока не тлеет.

Приложение вылетает при запуске, потому что динамический компоновщик не может найти отсутствующий фреймворк.

Итак, что вам нужно сделать, это убрать фреймворк и вот документ, на который вы можете ссылаться:

Связывание зависимостей

binding-objective-c

person Jack Hua    schedule 19.10.2020
comment
Оказывается, проблема была в моей привязке .dll. Я ссылался на MyFramework.a в .linkswith.cs вместо MyFramework.framework. - person Sam Rogers; 26.10.2020