error MT1006: Could not install the application '/Users/mac/Library/Caches/Xamarin/mtbs/builds/MiGong.iOS/c10cbd8fd317519d3dd23b704514d419/bin/iPhone/Debug/MiGong.iOS.app' on the device 'Jun의 iPhone': AMDeviceSecureInstallApplicationBundle returned: 0xe8000087 (kAMDIncorrectArchitectureError).    0 

프로젝트 속성의 iOS 빌드 탭에서 지원되는 아키텍처를 ARM7+ARM64 으로 변경하면 오류가 해결된다.

 

 

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류  Can't write [C:\Users\kjun\AppData\Local\Temp\tad3j0pm.d2m.jar] (Can't read [C:\Users\kjun\AppData\Local\Xamarin\Xamarin.GooglePlayServices.Base\25.0.0\embedded\classes.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [classes.jar:com/google/android/gms/common/annotation/KeepName.class])) MiGong.Android D:\[01]Source\KJunDev\MiGong\MiGong\MiGong.Android\CREATEMULTIDEXMAINDEXCLASSLIST  

갑자기 위와같은 에러가 발생되었다. nuget 패키지를 이것 저것 깔다 먼가 충돌이 발생해 지웠는데

저런 에러가.;;;

구글링 하니 이런 저런 방법이 있었는데 난 아래 처럼 하니 해결되었다.

도구>Android>Android SDK Manager 클릭

 

도구 탭에서 Google Play services 를 체크 해제하여 변경 내용 적용 을 하고

다시 체크하여 변경 내용 적용을 하여 재설치를 진행한다.

이러니 에러가 해결되었다.

 

아래 다른 방법.
https://forums.xamarin.com/discussion/55601/in-a-xamarin-android-project-how-can-i-remove-warnings-duplicate-zip-entry-classes-jar

네이버 아이디 로그인 후 아래와 같은 에러가 발생되었다.

디버그 모드에서는 발생안했던 에러가 릴리즈 모드에서 발생되었는데

원인은 인코딩 문제였다

 

Authentication Error e.Exception = Encoding 51949 data not be found...

 

iOS

Android

 

아래 그림과 같이 프로젝트 속성에서 인코딩에서 CJK 를 추가해야한다.

iOS (국제화)

Android (추가 지원 인코딩)

 

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

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

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

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

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

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

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

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

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

https://appleid.apple.com

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

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

 

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

 

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

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;
        }
    }
}

private void DataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
   
var grid = sender as DataGridView;
   
var rowIdx = (e.RowIndex + 1).ToString();

   
var centerFormat = new StringFormat()
   
{
       
// right alignment might actually make more sense for numbers
       
Alignment = StringAlignment.Center,
       
LineAlignment = StringAlignment.Center
   
};

   
var headerBounds = new Rectangle(e.RowBounds.Left, e.RowBounds.Top, grid.RowHeadersWidth, e.RowBounds.Height);
    e
.Graphics.DrawString(rowIdx, this.Font, SystemBrushes.ControlText, headerBounds, centerFormat);
}

 

위 방법이 제일 깔끔하게 표현이 되는것 같다.

https://github.com/ProfessionalCSharp

 

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

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

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

 

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;
        }
    }
}

Could not find any available provisioning profiles for iOS. WorkingWithMaps.iOS   

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

 

+ Recent posts

티스토리 툴바