# Debugowanie aplikacji iOS z bibliotekami natywnymi na Windows
Debugowanie aplikacji .NET MAUI iOS z komputera z systemem Windows nie ładuje natywnych bibliotek firm trzecich, takich jak IronOCR. Aplikacja moze uruchomic sie na podlaczonym iPhone, ale natywny kod Tesseract, na ktorym opiera sie IronOCR, nie jest poprawnie wdrazany.
```txt
Failed to locate 'libtesseract.5'...
Access to the path ... is denied.
```
Przyczyna jest scisle kontrolowany model rozwoju Apple. Aplikacje iOS musza byc **podpisane** waznym certyfikatem Apple Developer, natywne biblioteki musza byc **kompilowane dla ARM64** i laczone przez lancuchy narzedzi Apple, a aplikacje działaja w **scislym sandbox**, ktory ogranicza dostep do systemu plikow w czasie wykonywania. Narzedzia Apple (`Xcode`, `codesign`, `lipo`) dzialaja tylko na macOS, wiec komputer z Windows nie moze w pelni pakietowac ani podpisywać natywnej biblioteki. Gdy debugujesz z Windows, plik binarny Tesseract jest brakujacy, niepodpisany lub zablokowany przez sandbox, co prowadzi do bledow wymienionych powyzej.
Dlatego utrzymywanie tej samej bazy kodowej dziala bezproblemowo na Androidzie lub celowach Windows: te platformy laduja natywne biblioteki bez wymagan dotyczacych podpisywania od Apple, a dolaczony do IronOCR Tesseract dziala zgodnie z oczekiwaniami.
## Rozwiązanie
### 1. Buduj przez Mac
Rozwijaj sie bezposrednio na macOS lub skorzystaj z funkcji **Sparuj z Mac** w Visual Studio, aby przekazac budowanie iOS na Mac, podczas gdy kodujesz na Windows. Przekazanie budowy przez lancuch narzedzi Apple to jedyny sposob na prawidlowe kompilowanie i podpisywanie natywnej biblioteki.
### 2. Pozwol IronOCR wdrozyc swoje wlasne biblioteki
Nie kopiuj ani nie przemieszczaj recznie plikow biblioteki natywnej. IronOCR zajmuje sie wdrazaniem Tesseract za ciebie, a reczna edycja sciezek lamie model pakietowania iOS.
[[w:(Reczne kopiowanie bibliotek natywnych na iOS z reguly wywoluje bledy dostepu do sandbox opisane powyzej. Pozostaw wdrazanie IronOCR, jesli nie rozumiesz w pelni zasad wdrazania Apple.)]]
### 3. Przetestuj na prawdziwych urzadzeniach za posrednictwem macOS
Przeprowadz testy na fizycznym iPhone lub symulatorze iOS uruchomionym z Mac. Daje to dokladny obraz zachowania podpisanej, osadzonej w sandbox aplikacji, ktorego nie moze odtworzyc sesja debugowania w Windows.
Debugowanie aplikacji .NET MAUI iOS z komputera z systemem Windows nie ładuje natywnych bibliotek firm trzecich, takich jak IronOCR. Aplikacja moze uruchomic sie na podlaczonym iPhone, ale natywny kod Tesseract, na ktorym opiera sie IronOCR, nie jest poprawnie wdrazany.
Failed to locate 'libtesseract.5'...Access to the path ... is denied.
Failed to locate 'libtesseract.5'...
Access to the path ... is denied.
Text
Przyczyna jest scisle kontrolowany model rozwoju Apple. Aplikacje iOS musza byc podpisane waznym certyfikatem Apple Developer, natywne biblioteki musza byc kompilowane dla ARM64 i laczone przez lancuchy narzedzi Apple, a aplikacje działaja w scislym sandbox, ktory ogranicza dostep do systemu plikow w czasie wykonywania. Narzedzia Apple (Xcode, codesign, lipo) dzialaja tylko na macOS, wiec komputer z Windows nie moze w pelni pakietowac ani podpisywać natywnej biblioteki. Gdy debugujesz z Windows, plik binarny Tesseract jest brakujacy, niepodpisany lub zablokowany przez sandbox, co prowadzi do bledow wymienionych powyzej.
Dlatego utrzymywanie tej samej bazy kodowej dziala bezproblemowo na Androidzie lub celowach Windows: te platformy laduja natywne biblioteki bez wymagan dotyczacych podpisywania od Apple, a dolaczony do IronOCR Tesseract dziala zgodnie z oczekiwaniami.
Rozwiązanie
1. Buduj przez Mac
Rozwijaj sie bezposrednio na macOS lub skorzystaj z funkcji Sparuj z Mac w Visual Studio, aby przekazac budowanie iOS na Mac, podczas gdy kodujesz na Windows. Przekazanie budowy przez lancuch narzedzi Apple to jedyny sposob na prawidlowe kompilowanie i podpisywanie natywnej biblioteki.
2. Pozwol IronOCR wdrozyc swoje wlasne biblioteki
Nie kopiuj ani nie przemieszczaj recznie plikow biblioteki natywnej. IronOCR zajmuje sie wdrazaniem Tesseract za ciebie, a reczna edycja sciezek lamie model pakietowania iOS.
Ostrzeżenie: Reczne kopiowanie bibliotek natywnych na iOS z reguly wywoluje bledy dostepu do sandbox opisane powyzej. Pozostaw wdrazanie IronOCR, jesli nie rozumiesz w pelni zasad wdrazania Apple.
3. Przetestuj na prawdziwych urzadzeniach za posrednictwem macOS
Przeprowadz testy na fizycznym iPhone lub symulatorze iOS uruchomionym z Mac. Daje to dokladny obraz zachowania podpisanej, osadzonej w sandbox aplikacji, ktorego nie moze odtworzyc sesja debugowania w Windows.
Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.