728x90
반응형
오류  Error loading '/Users/mac/Library/Caches/Xamarin/mtbs/builds/MiGong.iOS/c10cbd8fd317519d3dd23b704514d419/iTunesArtwork': Unknown image format. MiGong.iOS 

배포를 위해 빌드하는데 위와 같은 에러가 났다.

info.plist 의 iTunes 아트워크 부분의 이미지가 정상적이지 않아서 에러가 발생된다.

이미지를 크기를 맞춰 다시 넣어주면 정상적으로 동작한다.

근데 저게 머하는 놈이지;;;

728x90
반응형
728x90
반응형

visual studio 에서 apple accounts 로 로그인 하는데 아래처럼 에러가 발생되었다.

authentication failure. Reason : {"authType" : "hsa2" }

이중 인증 키까지 잘 패스가 되었는데 떠서 먼가했는데

아래 사이트에서 한번더 인증 절차를 또 거쳐야한다.;;

https://appleid.apple.com

위사이트에서 한번더 로그인 한다 이중 인증을 다시;;

그러면 사이트에서 아래처럼 나오고

 

다시 로그인하면 로그인이 성공한다.

 

이제 프로비저닝 프로파일을 다운받으러....ㅠㅜ

728x90
반응형
728x90
반응형

WebView 를 사용해 보니 cache 때문에 반영된 최신 정보를 못가져오는 경우가 있다

아래 코드를 이용하면 항상 cache 를 clear 하고 가져오므로 이런 현상을 막을수 있다.

 

PCL

namespace Project.Controls
{
    public class NoCachedWebView : WebView
    {
    }
}

 

Android

[assembly: ExportRenderer(typeof(NoCachedWebView), typeof(NoCachedWebViewRenderer))]
namespace Project.Droid.Renderer
{
    class NoCachedWebViewRenderer : WebViewRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
        {
            base.OnElementChanged(e);
            if (Control == null) return;

            Control.ClearCache(true);
            Control.Settings.SetAppCacheEnabled(false);
            Control.Settings.CacheMode = Android.Webkit.CacheModes.NoCache;
        }
    }
}

 

iOS

[assembly: ExportRenderer(typeof(NoCachedWebView), typeof(NoCachedWebViewRenderer))]
namespace Project.iOS.Renderer
{
    class NoCachedWebViewRenderer : WebViewRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            if (Element == null) return;

            NSUrlCache.SharedCache.RemoveAllCachedResponses();
            NSUrlCache.SharedCache.MemoryCapacity = 0;
            NSUrlCache.SharedCache.DiskCapacity = 0;
        }
    }
}

728x90
반응형
728x90
반응형

기기별로 유일한 키를 사용하고 싶을때 아래 코드를 이용하면

기기별로 유일한 키를 얻어 사용할수있다.

앱을 삭제했다 다시깔아도 동일한 키가 추출된다.

 

PCL

namespace Project
{
    public interface IDevice
    {
        string GetIdentifier();
    }
}

 

Android

[assembly: Xamarin.Forms.Dependency(typeof(AndroidDevice))]
namespace Project.Droid
{
    public class AndroidDevice : IDevice
    {
        public string GetIdentifier()
        {
            return Secure.GetString(Forms.Context.ContentResolver, Secure.AndroidId);
        }
    }
}

 

iOS

[assembly: Xamarin.Forms.Dependency(typeof(IOSDevice))]
namespace Project.iOS
{
    public class IOSDevice : IDevice
    {
        [DllImport("/System/Library/Frameworks/IOKit.framework/IOKit")]
        private static extern uint IOServiceGetMatchingService(uint masterPort, IntPtr matching);

        [DllImport("/System/Library/Frameworks/IOKit.framework/IOKit")]
        private static extern IntPtr IOServiceMatching(string s);

        [DllImport("/System/Library/Frameworks/IOKit.framework/IOKit")]
        private static extern IntPtr IORegistryEntryCreateCFProperty(uint entry, IntPtr key, IntPtr allocator, uint options);

        [DllImport("/System/Library/Frameworks/IOKit.framework/IOKit")]
        private static extern int IOObjectRelease(uint o);

        public string GetIdentifier()
        {
            string serial = string.Empty;
            uint platformExpert = IOServiceGetMatchingService(0, IOServiceMatching("IOPlatformExpertDevice"));
            if (platformExpert != 0)
            {
                NSString key = (NSString)"IOPlatformSerialNumber";
                IntPtr serialNumber = IORegistryEntryCreateCFProperty(platformExpert, key.Handle, IntPtr.Zero, 0);
                if (serialNumber != IntPtr.Zero)
                {
                    serial = NSString.FromHandle(serialNumber);
                }

                IOObjectRelease(platformExpert);
            }

            return serial;
        }
    }
}

728x90
반응형
728x90
반응형
Could not find any available provisioning profiles for iOS. WorkingWithMaps.iOS   

프로젝트 속성의 iOS 번들 서명에서 아래 처럼 자동 프로비저닝 으로 변경하면 된다.

 

728x90
반응형
728x90
반응형

incompatible hax module version 3 requires minimum version 4

안드로이드 에뮬을 실행하는데 위와 같은 에러가 발생될때

아래 링크로 들어가 haxm 을 최신버전으로 설치하면 된다.

https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm

haxm-windows_v7_2_0.zip

 

728x90
반응형
728x90
반응형

"java.exe"이(가) 종료되었습니다(코드:2)

위와 같은 에러가 발생되었다.

아래 처럼 프로젝트 속성의 Android 옵션 의  Multi-Dex 를 사용하도록 설정 을 체크해야한다.

728x90
반응형
728x90
반응형

Image 클릭시 이벤트 주는 방법은 아래와 같다

this.Image.GestureRecognizers.Add(new TapGestureRecognizer(메서드명));

this.ActionImage.GestureRecognizers.Add(new TapGestureRecognizer(OnTab));

private void OnTab(View sender, object e)
{
    ...
}

 

 

728x90
반응형
728x90
반응형
https://github.com/jsuarezruiz/xamarin-forms-customnavigationpage

 

728x90
반응형
728x90
반응형
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 NU1107 Xamarin.Android.Support.Compat에 대한 버전 충돌이 검색되었습니다. 프로젝트에서 패키지를 직접 참조하여 이 문제를 해결하세요. 
Project.Android -> Xamarin.Android.Support.v7.MediaRouter 27.0.2.1 -> Xamarin.Android.Support.v7.Palette 27.0.2.1 -> Xamarin.Android.Support.Compat (= 27.0.2.1) 
 Project.Android -> MiGong -> Xamarin.Auth 1.6.0.2 -> Xamarin.Android.Support.CustomTabs 25.4.0.2 -> Xamarin.Android.Support.Compat (= 25.4.0.2).    
오류  패키지 복원에 실패했습니다. 'MiGong.Android'에 대한 패키지 변경 내용을 롤백하고 있습니다.   0 
오류  Xamarin.Android.Support.Compat에 대한 버전 충돌이 검색되었습니다. 프로젝트에서 패키지를 직접 참조하여 이 문제를 해결하세요. 
 Project.Android -> Xamarin.Android.Support.v7.MediaRouter 27.0.2.1 -> Xamarin.Android.Support.v7.Palette 27.0.2.1 -> Xamarin.Android.Support.Compat (= 27.0.2.1) 
 Project.Android -> Xamarin.Auth 1.6.0 -> Xamarin.Android.Support.CustomTabs 25.4.0.2 -> Xamarin.Android.Support.Compat (= 25.4.0.2).  

Xamarin.Auth 를 사용하려는데 위와 같은 에러가 발생되었다.

찾아보니 해결방법은 역시 에러 메세지에 있었다.

Android 프로젝트의 Nuget 에서

Xamarin.Android.Support.Compat 을 찾아 설치하고

그다음으로 Xamarin.Android.Support.v7.Palette 을 설치하면된다.

(순서가 바뀌면 설치되지 않는다.)

그리고 다시 android 프로젝트의 Nuget 에서  Xamarin.Auth 를 설치하면 설치가 제대로 된다.

728x90
반응형

+ Recent posts