5

Przepraszam, z góry, za to długie pytanie, ale zmarnowałem 3 dni bezskutecznie próbując skonfigurować środowisko programistyczne Xamarin.iOS, które pozwala mi debugować urządzenie fizyczne (nie symulator iPhone'a) i nie mam pojęcia, co wypróbować.Jak debugować aplikację Xamarin.iOS na fizycznym urządzeniu z systemem iOS

wierzę moja konfiguracja jest dość standardowa konfiguracja Xamarin:

  • systemu Windows 10 PC z systemem Visual Studio 2015 i Xamarin v4.2.0.703
  • HTC telefon USB podłączony do komputera dla Androida debugowania (działa bez zarzutu)
  • MacBook z systemem OS X 10.11 z Xamarin Studio v6.1.1 i Xcode 8.0
  • iPhone lub iPad USB podłączony do komputera Mac na iOS debugowania

Zacząłem od utworzenia rozwiązania Xamarin w Visual Studio, które początkowo opracowałem i debugowałem na systemie Android.

Aby przejść do debugowania systemu iOS Następnie skonfigurowałem komputer Mac z Xcode i Xamarin Studio, włączono go do zdalnego logowania i utworzyłem fałszywy projekt Xcode z tym samym identyfikatorem pakietu, co moja aplikacja Xamarin.iOS. Podjąłem także próbę dość skomplikowanego procesu tworzenia tożsamości podpisu i profilu udostępniania aplikacji oraz pobierania/instalowania ich na komputerze Mac. Ten proces jest tak niezrozumiały (a wizualna informacja zwrotna w Xcode jest tak słaba), że nie jestem pewien, czy zrobiłem to poprawnie. Jednak jestem w stanie uruchomić manekinowy projekt Xcode na iPhonie, więc zakładam, że to musi być w porządku?

Na Windows PC, Xamarin>Opcje iOS szyba w ustawieniach Visual Studio potwierdza, że ​​Visual Studio jest podłączony do komputera Mac i załączonym iPhone jest również wymieniony jako urządzenia docelowego kandydat, więc wydaje się, że wszystko jest skonfigurowany do debugowania na urządzeniu.

Jeśli spróbuję debugować aplikację na symulatorze iPhone'a z Visual Studio, działa poprawnie. Jednak debugowanie na fizycznym iPhone nie powiedzie się z następującym pomocny komunikat:

Xamarin.Messaging.Exceptions.MonotouchException: error MT1006: Could not install the 
application '/Users/Tim/Library/Caches/Xamarin/mtbs/builds/Test.iOS/c4f40041b6c58fc579a727bccfc18614/bin/iPhoneSimulator/Debug/TestiOS.app' 
on the device 'Tim’s iPhone': AMDeviceSecureInstallApplicationBundle returned: 0xe8008001. 

Dla porównania, ja również próbował debugowanie bezpośrednio na komputerze Mac, używając Xamarin Studio. Ponownie, symulator iPhone'a działa poprawnie, ale niemożliwe jest nawet uruchomienie sesji debugowania za pomocą urządzenia fizycznego, ponieważ podłączony telefon iPhone nie jest wymieniony jako kandydujące urządzenie docelowe do debugowania | Konfiguracja iPhone'a.

Jeśli otworzyć opcje projektu i przejdź do iOS Debug widzenia, widzę, że platforma związane z konfiguracją Debug jest iPhoneSimulator. Zmiana na iPhone i zapisanie konfiguracji wydaje się działać, ale zmiany nie zostały zapisane. Sądzę, że to jest powód, dla którego moje urządzenie testowe nie jest wymienione, ale nie jestem pewien, co muszę zrobić, aby Xamarin Studio zaakceptowało moje zmiany.

Po tych wszystkich eksperymentach jestem całkowicie zagubiony. Byłoby pomocne mieć kompletny, solidny samouczek A-Z dla tego procesu instalacji, ale w przeciwnym razie wszelkie sugestie, co powinienem spróbować następnym razem, byłyby bardzo doceniane.

AKTUALIZACJA: Jeśli korzystam z konfiguracji projektu Ad-Hoc (w Visual Studio lub Xamarin Studio), to poprawnie wdraża i uruchamia aplikację na urządzeniu, ale nie dołącza debuggera. Jeśli jawnie włączę debugowanie w konfiguracji projektu Ad-Hoc, program Xamarin Studio je zignoruje, ale program Visual Studio następnie dołącza debugger, ale nie trafia żadnych punktów przerwania. Czy to wszystko brzmi dobrze? Czy oferuje jakieś wskazówki, które muszę zmienić, aby prawdziwa konfiguracja Debug działała poprawnie?

+0

Nie wygląda na to, że masz zabezpieczony iPhone/iPad: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/ – SushiHangover

+0

@SushiHangover: Thanks. Korzystając z Xcode> Okno> Urządzenia, właśnie sprawdziłem, czy na iPhonie jest zainstalowany profil informacyjny. Sprawdziłem zainstalowany profil na moim koncie Apple i zawiera on mój identyfikator podpisywania programistycznego oraz listę 3 urządzeń, z których jeden to iPhone, który próbuję debugować. –

+0

Dziwne ... Mamy kupę androidów, które nie działają z debugerem Xamarina (ale robią w/A.S.), ale nigdy nie miały problemu z systemem iOS, jeśli są obsługiwane. Jakie wersje iOS znajdują się na iDevices (10?)? – SushiHangover

Odpowiedz

1

Dla każdego, kto boryka się z podobnym problemem, rozwiązanie, które ostatecznie przyjęłam, wymagało podejścia "brutalnej siły".

Zacząłem od utworzenia nowego rozwiązania Xamarin.Forms (przy użyciu standardowego szablonu Visual Studio) i usunięcia niechcianych projektów platform (UWP i Windows Phone). W tym stanie początkowym zweryfikowałem, że był on w stanie uruchomić debugowanie zarówno na urządzeniach z Androidem i iOS, jak i ich emulatorach/symulatorach. Wszystko działało poprawnie, potwierdzając, że moja konfiguracja Maca była poprawna, a także dostarczając mi dokładną konfigurację projektu iOS, która jest wymagana do debugowania.

W tym momencie założyłem, że problem z konfiguracją musi być odpowiedzialny za wcześniejsze problemy, więc dokładnie zreplikowałem każdy detal roboczej konfiguracji w moim oryginalnym rozwiązaniu. Mimo to odmówił debugowania na iOS.

Potem zacząłem podejrzewać, że problem dotyczy pakietu referencyjnego Nuget, dlatego dodałem wszystkie pakiety z pierwotnej implementacji do nowego rozwiązania testowego. Spodziewałem się, że to przerwie debugowanie na iOS, ale tak się nie stało.

Na koniec ostrożnie przeszczepiłem całą zawartość oryginalnego rozwiązania (XAML & plików z kodami, przeglądam modele, zasoby itp.) Do rozwiązania testowego i kontynuowałem prawidłowe debugowanie.

Tak więc, w przypadku braku wykonalnej procedury diagnostycznej, skutecznie rozwiązałem problem przez odbudowanie mojego rozwiązania od podstaw. Żaden kod nie został zmieniony i, według mojej wiedzy, żadne ustawienia konfiguracyjne nie zostały zmienione, ale nowa implementacja jest teraz niezawodnie debugowana we wszystkich środowiskach docelowych.

+0

Może być konieczne ręczne ustawienie profilu informacyjnego w VS we właściwościach projektu IOS, w sekcji podpisu pakietu iOS, jak opisano w następującym artykule: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/free-provisioning/#Launching_your_App (jest to 10 kroków) – nrudnyk