일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Cloudflare
- 흑우마스터
- c#
- 안드로이드
- 지도
- Xamarin
- MAUI
- 닷넷
- Android
- iOS노치
- vpc
- ABLY
- 프로그래밍
- n8n
- Xamarin Forms
- v
- AWS
- hot reload
- ASP.NET Web API
- 개발
- 구글지도
- 구글맵
- 비주얼스튜디오2022
- .net maui
- 자마린
- 배포
- 망할
- xcode13
- SecureStorage
- aws lambda
- Today
- Total
목록프로그래밍/Xamarin (30)
흑우마스터의 마법의 공간

SdkOnly false true 디버그에는 정상 출력이 되었고 릴리즈도 정상 출력이 되어서 배포까지 했지만 Sentry 문제였는지 업데이트 문제였는지 다음 버전을 만들고 디버그에서 문제 없이 처리가 되었으나 릴리즈로 시뮬레이터를 돌렸을때 SplashScreen만 출력되고 강제 종료 되는 문제 발생. 프로젝트 편집상에는 이렇다할 문제가 없었고 Interpreter로 확인했을 땐Failed to get the 'this' instance in a method call to Microsoft.Maui.MauiUIApplicationDelegate.RespondsToSelector다음과 같은 메시지만 출력되었다. 우리 GPT4o 형님은 연신 이상한 소리만 해댔고 난 6시간 동안 늪에 빠져 Sent..
황당하게도 iOS에는 Border에 애니메이션이 기본으로 들어가있다. 그런 이유임에도 WithOutAnimation() 가 먹히지 않는데 VStack 하위에 Border가 그대로 노출되면 애니메이션이 생겨버린다 - -; 그래서 Grid로 감싸줘야되는데 이유를 모르겠다.
Button 컨트롤은 안드로이드 플랫폼인 경우 OnTab에 동작하지만 iOS인 경우에는 OnTab이 아니라 반드시 OnClicked를 타야 된다. 무심코 OnTab 쪽을 했다면.. 고쳐야 된다
컴포넌트에 Props를 Attribute로 선언하고 해당 컴포넌트의 부모에서 값을 전달했음에도 불구하고 안드로이드에 비해 iOS는 OnPropsChanged가 동작하지 않는다. 특히 지연 동작을 구현하고 IsVisible 등을 처리하는 식이라면 OnPropsChanged가 동작하지 않아 화면을 그리지 못하게 된다. 염두해두고 개발할 필요가 있다.

현재 Xcode를 최신으로 업데이트 하면 Visual Studio for Mac에서 위와 같이 정상적으로 세팅 되는 것을 알 수 있다. iOS 버전이 올라갔기 때문에 신규프로젝트를 생성하고 실행하면 오류가 날 수 있는데 이는 다음과 같다 우선 터미널에서 라이센스에 동의를 해야 한다 xcodebuild -license 라고 입력 후 agree를 해줘야 되며 이후에도 xcodebuild -runFirstLaunch 라는 명령어까지 입력해주는 것으로 시작된다. .NET 6까지 설치한 개발자라면 처음 프로젝트 생성 시 .NET 7 등을 볼 수 없으며 이 때에는 Visual Studio for Mac installer를 통해 다시 업데이트를 진행해야 된다 https://visualstudio.microsoft.c..

C:\Users\{윈도우 로그인계정}\AppData\Local\Xamarin\MonoTouch 위 경로에 들어가면 아래와 같은 파일들을 만날 수 있다. 혹시 모르니 백업을 해두고 지우던가 하위 폴더를 만들어서 옮겨 놓자. 그리고 비주얼스튜디오를 다시 열고 Mac 페어링을 시도하면 기존에 등록 되어 있던 페어링 Mac 목록이 사라지고 처음부터 다시 등록할 수 있으며 이때 맥의 IP를 등록하면 SSH 지문과 맥 사용자 이름, 암호를 다시 입력하여 등록할 수 있다. 깔끔
우선 Platform -> Android에 있는 AndroidManifest.xml 파일을 수정해야 한다. manifest 하위 노드에 다음 내용을 추가한다 그리고 웹뷰 컨트롤을 플랫폼별로 따로 처리해주어야 되는데 다음과 같이 작성하여 WebViewClient를 상속 받은 커스텀 객체의 인스턴스를 넣어주었다. 물론 플랫폼 별로 WebViewHandler를 구현해줘도 되지만 테스트해본 결과 이렇게 작성하면 실제로 동작하지 않은 이상한 버그가 있다. 아마 생성시점에 만들게 되면 적용을 해도 우리가 필요한 ShouldOverrideUrlLoading에 접근하지 못하게 되므로 다음과 같이 선언하는게 맘 편하다 #if ANDROID var androidWebview = this.webview.Handler.Pla..

Intent intent = new Intent(Android.Provider.Settings.ActionAppNotificationSettings); intent.PutExtra("app_package", Android.App.Application.Context.PackageName); intent.PutExtra("app_uid", Android.App.Application.Context.ApplicationInfo.Uid); intent.PutExtra("android.provider.extra.APP_PACKAGE", Android.App.Application.Context.PackageName); intent.AddFlags(ActivityFlags.NewTask); Android.App.App..