블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2851)
Unity3D (894)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (189)
협업 (64)
3DS Max (3)
Game (12)
Utility (142)
Etc (99)
Link (34)
Portfolio (19)
Subject (90)
iOS,OSX (52)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

ITMS-90427을 처리하기 위해 확인해보니

Unity-iPhone의 Always Embed Swift Standard Libraries를 YES로 하고,

UnityFramework의 Always Embed Swift Standard Libraries를 NO로 하라고 한다.

 

빌드때마다 수동으로 하기는 그래서 Xcode PostProcessBuild로 처리하기로 함.

 

using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
 
namespace Editor
{
    public static class XcodeSwiftVersionPostProcess
    {
        [PostProcessBuild(999)]
        public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
        {
            if (buildTarget == BuildTarget.iOS)
            {
                ModifyFrameworks(path);
            }
        }
 
        private static void ModifyFrameworks(string path)
        {
            string projPath = PBXProject.GetPBXProjectPath(path);
           
            var project = new PBXProject();
            project.ReadFromFile(projPath);
 
            string mainTargetGuid = project.GetUnityMainTargetGuid();
           
            foreach (var targetGuid in new[] { mainTargetGuid, project.GetUnityFrameworkTargetGuid() })
            {
                project.SetBuildProperty(targetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
            }
           
            project.SetBuildProperty(mainTargetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
 
            project.WriteToFile(projPath);
        }
    }
}

 

 

[출처] https://forum.unity.com/threads/2019-3-validation-on-upload-to-store-gives-unityframework-framework-contains-disallowed-file.751112/  - unity_Iu70XvRN7XIS4g의 댓글

 

2019.3 - validation on upload to store gives "UnityFramework.framework contains disallowed file"

App runs on phone normally. When trying to validate the app before uploading it to the store, this comes out: Invalid Bundle. The bundle at...

forum.unity.com

 

반응형
Posted by blueasa
, |

found a solution here https://forum.unity.com/threads/2019-3-validation-on-upload-to-store-gives-unityframework-framework-contains-disallowed-file.751112/ specifically from reply #38 from a user called Melnikovv

 

[In XCode]
Set yes on Always Embed Swift Standard Libraries in target Unity-iPhone in Build Settings.
Set no on Always Embed Swift Standard Libraries in target UnityFramework in Build Settings.

 

This worked for me.

I also had another issue with Unity In App Purchasing that required me to downgrade to version 3.1.0. I think that is an unrelated issue but I'm putting it here just in case.
Hope this helps someone

 

 

[출처] https://github.com/googleads/googleads-mobile-unity/issues/2126

 

Admob 7.1.0 - iOS - ITMS-90427: Invalid Swift Support - The expected dylibs are missing · Issue #2126 · googleads/googleads-mo

Environment: Unity version: 2020.3.36f1 Google Mobile Ads Unity plugin version: 7.1.0 Platform: iOS Platform OS version: 15+ Mediation ad networks used, and their versions: -> AdColony 2.6.0 -&g...

github.com

 


 

りん より:

と、思ったのですが、アップロードの過程でリジェクトされていました。

”ITMS-90427: Invalid Swift Support – The expected dylibs are missing from the app’s Framework location, such as /Payload/●●●.app/Frameworks.”とメールが来てました。

どこか設定がわるかったのかもしれません。

結局、Always Embed Swift Standard Librariesの項目を、Unity-iPhone、Unity-iPhoneTest、UnityFrameworkの全てで、”No”にしたところ、全てアップロードまでスムーズに通りました。

[출처] https://nobushiueshi.com/unity%E3%80%8Cerror-itms-90206%E3%80%8D%E3%81%8C%E5%87%BA%E3%81%A6appstore%E3%81%B8%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%8C%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%A7/

 

[Unity]「ERROR ITMS-90206」が出てAppStoreへバイナリがアップロードできなくなったお話

はじめに先日UnityでビルドしたiOSのアプリをバージョンアップの為にAppStoreへ新しいバイナリをアップロードしたらエラーが出たので、その時の状況と対応方法を紹介しようと思います。環境

nobushiueshi.com

 

반응형
Posted by blueasa
, |

[추가]

이 이슈는 ITMS-90427: Invalid Swift Support 연장선인 것 같다.

그래서 ITMS-90427을 처리하면 ITMS-90206은 처리 안해도 되는걸로 보인다.

 

처리 방법은 위 링크에도 있지만 아래와 같다.

 

[In XCode]
Set yes on Always Embed Swift Standard Libraries in target Unity-iPhone in Build Settings.
Set no on Always Embed Swift Standard Libraries in target UnityFramework in Build Settings.

 

--------------------------------------------------------------------------------------------------------------------------------

 

ERROR ITMS-90206: "Invalid Bundle. The bundle at 'OOO.app/Frameworks/UnityFramework.framework' contains disallowed file 'Frameworks'."


유니티 프레임워크 에러다!


Xcode 아카이브 이후 Upload시 나타나는 문제..
해결 방법은 간단하다.


1. 아카이브한 버전 우클릭
2. Show in Finder
3. 뭐 하나 있는데 그거 우클릭!
4. 패키지 내용 보기
4. Products 폴더 이동
5. Applications 폴더 이동
6. 앱 이름으로 된거 우클릭
7. 패키지 내용 보기
8. Frameworks 폴더 이동
9. UnityFramework.framework 폴더 이동
10. Frameworks 폴더 자체 삭제!!


이후 Upload시 해당 에러가 나타나지 않는다!!
<끝>

 

 

[출처] https://velog.io/@ymsection/Xcode-UnityFramework-Error

 

Xcode - UnityFramework Error:)

ERROR ITMS-90206: "Invalid Bundle. The bundle at 'OOO.app/Frameworks/UnityFramework.framework' contains disallowed file 'Frameworks'."유니티 프레임워크 에러다!Xc

velog.io

반응형
Posted by blueasa
, |

[링크] https://mentum.tistory.com/421

 

소스트리 git 대소문자 변경 인식시키기

오른쪽 위의 터미널을 열어서 git config core.ignorecase false 를 입력. 이후 새로고침을 해보면 대소문자가 변경되도 인식된다. 해당 세팅은 컴퓨터 마다 따로 설정해야 함.

mentum.tistory.com

 

반응형
Posted by blueasa
, |

Android 7(API 24) 이상에서 지원하는 멀티 윈도우를 막으려면 AndroidManifest.xml에 android:resizeableActivity="false"만 추가하면 됐는데,

위 방식은 API 30까지만 가능하고 API 31(Android 12)부터는 화면이 크면 경고는 뜨지만 막히지 않는다.

[참조] https://blueasa.tistory.com/2669

 

[펌] How can I disable multiwindow mode for an Activity in Android N+

In your manifest, you need: android:resizeableActivity="false" So in your manifest file, for each activity that you want to disable the feature in, it would be like: Or, if you want to disable it in your entire app: . . . As for what will happen, Android j

blueasa.tistory.com

[참조2] https://developer.android.com/guide/topics/large-screens/multi-window-support

 

멀티 윈도우 지원  |  Android 개발자  |  Android Developers

멀티 윈도우 지원 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 멀티 윈도우 모드를 통해 여러 앱이 같은 화면을 동시에 공유할 수 있습니다. 시스템에서

developer.android.com

 

그래서 약간 꼼수로 아래와 같이 처리했다.

 

[차단]

멀티윈도우/팝업윈도우로 갈 때 OnApplicationPause가 작동하기 때문에, OnApplicationPause에서 false 일 때(Pause가 풀릴 때) , Screen의 현재 해상도를 체크해서 내가 사용하는 게임 비율이 아니면 차단하게 함.

    Ex) 가로모드 게임이면, height가 width보다 크면 차단

 

[해제]

멀티윈도우/팝업윈도우에서 정상적인 전체화면 게임으로 돌아와도 OnApplicationPause가 Call 되지 않기 때문에 여기서 처리는 불가능한 걸 확인했다.

그래서 [차단] 할 때, InvokeRepeating을 사용해서 주기적으로 체크(Update를 쓰면 평소에도 Call 되기 때문에 Invoke 사용함)해서 해상도가 내가 사용하는 비율이 맞으면 해제하도록 해놓음.

  Ex) 가로모드 게임이면, width가 height보다 크먼 해제

 

대충 아래와같이 구현해 둠..

void OnApplicationPause(bool _bPaused)
{
    Debug.LogFormat("[OnApplicationPause] {0}", _bPaused);
    // Android에서만 처리하기 위해 Define으로 분기
#if !UNITY_EDITOR && UNITY_ANDROID
    OnApplicationPause_Android(_bPaused);
#elif !UNITY_EDITOR && UNITY_IOS
#endif
}

void OnApplicationPause_Android(bool _bPaused)
{
    // Pause 할 때는 Pass
    if (true == _bPaused)
        return;

    // [Android12(API31) 멀티윈도우 차단
    // Pause 해제 시, 해상도 세로가 가로보다 더 길면 차단(가로모드 게임)
    if (Screen.currentResolution.width <= Screen.currentResolution.height)
    {
        // [Active] UnSupported Resolution Popup
        // (화면을 완전히 가리고, 터치가 안되도록 Collider를 넣음)
        ActivateUnsupportedResolutionPopup(true);

        // 차단 해제 체크용(Update는 항상 돌기 때문에 Invoke로 필요할때만 처리)
        InvokeRepeating("UpdateCheckUnSupportedResolution", 0.1f, 0.1f);
    }
}

void UpdateCheckUnSupportedResolution()
{
    // 해상도가 가로모드 해상도에 맞게 돌아오면 차단 팝업 해제 및 CancelInvoke
    if (Screen.currentResolution.height < Screen.currentResolution.width)
    {
        // [InActive] UnSupported Resolution Popup
        SGT.UIMain.ActivateUnSupportedResolutionPopup(false);

        CancelInvoke("UpdateCheckUnSupportedResolution");
    }
}
반응형
Posted by blueasa
, |

In your manifest, you need:

android:resizeableActivity="false"

So in your manifest file, for each activity that you want to disable the feature in, it would be like:

<activity android:name=".SomeActivity"
    android:label="@string/app_name"
    android:resizeableActivity="false" />

Or, if you want to disable it in your entire app:

<application 
   android:resizeableActivity="false" >
    . . .
</application>

As for what will happen, Android just won't let your app go into multi-screen mode - it will just stay full screen. See https://developer.android.com/preview/features/multi-window.html and https://developer.android.com/guide/topics/manifest/activity-element.html#resizeableActivity.

 

[링크] https://stackoverflow.com/questions/37311145/how-can-i-disable-multiwindow-mode-for-an-activity-in-android-n

 

How can I disable multiwindow mode for an Activity in Android N+

In the developer preview for Android N, multi-window support is enabled by default. How can I disable it for activites? Also what will happen if a multi-window enabled app launches my disabled ac...

stackoverflow.com

[참조] https://50billion-dollars.tistory.com/entry/Android-%EB%8B%A4%EC%A4%91-%EC%B0%BD-%EB%A7%89%EA%B8%B0

 

[Android] 다중 창 막기

이번 포스트에선 안드로이드 누가 버전(Android 7.0, API Level 24)부터 새로 생긴 기능인 다중 창(multi windows)을 막는 방법을 소개해드리겠습니다. 이게 왜 필요하냐면 다중 창 모드가 시작되고 해제될

50billion-dollars.tistory.com

 

 

[추가] API 31이상, 큰 화면(sw >= 600dp)에서는 Multi Window가 막히지 않는 것 같다.(경고는 뜸)

resizeableActivity

매니페스트의 <activity> 또는 <application> 요소에서 이 속성을 설정하여 API 수준 30 이하에서 멀티 윈도우 모드를 사용 설정하거나 사용 중지할 수 있습니다.

 
<application
  android:name=".MyActivity"
  android:resizeableActivity=["true" | "false"] />

이 속성을 true로 설정하면, 활동을 화면 분할 모드와 자유 형식 모드로 시작할 수 있습니다. 이 속성을 false로 설정하면, 활동이 멀티 윈도우 모드를 지원하지 않습니다. 이 값이 false일 때 사용자가 멀티 윈도우 모드로 활동을 시작하려고 하면 활동은 전체 화면으로 열립니다.

앱이 API 수준 24 이상을 타겟팅하지만 이 속성 값을 지정하지 않은 경우 이 속성의 기본값은 true가 됩니다.

앱이 API 수준 31 이상을 타겟팅하는 경우 이 속성은 작은 화면 및 큰 화면에서 다르게 작동합니다.

  • 큰 화면(sw >= 600dp): 모든 앱이 멀티 윈도우 모드를 지원합니다. 이 속성은 활동의 크기를 조절할 수 있는지 여부를 나타냅니다. resizeableActivity="false"인 경우 디스플레이 치수를 준수하기 위해 필요한 경우 앱이 호환성 모드로 전환됩니다.
  • 작은 화면(sw < 600dp): resizeableActivity="true" 및 활동 최소 너비 및 최소 높이가 멀티 윈도우 요구사항 내에 있는 경우 활동은 멀티 윈도우 모드를 지원합니다. resizeableActivity="false"인 경우 활동이 최소 너비 및 높이와 관계없이 멀티 윈도우 모드를 지원하지 않습니다.

[참조] https://developer.android.com/guide/topics/large-screens/multi-window-support

 

멀티 윈도우 지원  |  Android 개발자  |  Android Developers

멀티 윈도우 지원 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 멀티 윈도우 모드를 통해 여러 앱이 같은 화면을 동시에 공유할 수 있습니다. 시스템에서

developer.android.com

 

반응형
Posted by blueasa
, |

[에러메시지]

NullReferenceException: Object reference not set to an instance of an object.

  at System.Linq.Expressions.Interpreter.LightLambda.MakeRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Linq.Expressions.Interpreter.LightLambda.GetRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Linq.Expressions.Interpreter.LightDelegateCreator.CreateDelegate () [0x00000] in <00000000000000000000000000000000>:0 

  at System.Linq.Expressions.Expression`1[TDelegate].Compile (System.Boolean preferInterpretation) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T].MakeUpdateDelegate () [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T].GetUpdateDelegate (T& addr) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T]..ctor (System.Runtime.CompilerServices.CallSiteBinder binder) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T].Create (System.Runtime.CompilerServices.CallSiteBinder binder) [0x00000] in <00000000000000000000000000000000>:0 

 

대충 위와같은 에러가 나는데..

유니티에서 dynamic을 쓰면 나는 에러인데..

결론은 유니티는 dynamic을 지원하지 않는다. 쓰지말자.

 

에디터에서는 잘되길래 될 줄 알았더만, 안드로이드 빌드해보니 위와같은 에러가 난다.

해결책이 별시리 없는듯하다.

 

[참조] https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=53076 

 

유니티 dynamic 못씀? - 인디 게임 개발 마이너 갤러리

분명 유니티 내에서 빌드 안하고 돌리면 잘만 돌아가는데, 빌드된 거 실행해보면 코드에서 에러가 계속 발생함NullReferenceException: Object reference not set to an instanc

gall.dcinside.com

[참조] https://issuetracker.unity3d.com/issues/il2cpp-notsupportedexceptions-exception-is-thrown-in-build-with-newtonsoft-dot-json-plugin

 

Unity IssueTracker - [IL2CPP] NotSupportedExceptions exception is thrown in build with Newtonsoft.Json plugin

Steps to reproduce: 1. Download attached project 2. Build standalone project on IL2CPP backend 3. Launch build project 4. Notice exc...

issuetracker.unity3d.com

 

반응형
Posted by blueasa
, |

[링크] https://under-wave.tistory.com/9

 

[iOS 앱스토어 리젝] 애플 로그인 텍스트 | 애플 로그인 디자인 가이드

📌 리젝 사유 앱스토어에 앱을 출시하고 업데이트를 했는데 생각지 못한 부분에서 리젝을 당했다. 기존에 애플 로그인 버튼의 텍스트를 'Apple 계정으로 시작하기'라고 했기 때문이었다. HIG에서

under-wave.tistory.com

 

반응형
Posted by blueasa
, |

[pod install 에러 메시지]

--------------------------------------------------------------------------------------------------------

Installing FBAudienceNetwork (6.11.1)

 

[!] Error installing FBAudienceNetwork

[!] /usr/bin/curl -f -L -o /var/folders/bg/4k1wpsf546l2kb3wyyl3lx1w0000gq/T/d20221108-10215-81o062/file.zip https://developers.facebook.com/resources/FBAudienceNetwork-6.11.1.zip --create-dirs --netrc-optional --retry 2 -A 'CocoaPods/1.11.3 cocoapods-downloader/1.4.0'

 

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100 1093k    0 1093k    0     0  17517      0 --:--:--  0:01:03 --:--:-- 23345

curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)

--------------------------------------------------------------------------------------------------------

 

오랜만에 pod 초기화하고 pod install을 다시하게 됐는데 위와 같은 에러메시지가 뜨면서 install이 제대로 되지 않는다.

 

검색을 해보니 아래 링크와 같은 내용이 있다.

버전이 내꺼랑 다르지만 결국 같은 이슈인 것 같다.

[링크] https://github.com/facebook/facebook-ios-sdk/issues/1384

 

FBAudienceNetwork 5.6.0 pod install returning 500 Internal Server Error during build · Issue #1384 · facebook/facebook-ios-sdk

Checklist I've updated to the latest released version of the SDK I've searched for existing GitHub issues I've looked for existing answers on Stack Overflow, the Facebook Developer Comm...

github.com

 

[해결방법]

결론적으로 cdn 캐싱쪽이 문제인지 제대로 받지 못하기 때문에

VPN으로 권역을 바꿔서(난 U.S.A로 함) pod install 하니 제대로 다운을 받았다.

 

반응형
Posted by blueasa
, |

[요약] Accelerate.framework 추가하자

 

[링크] https://minmong.tistory.com/242

 

페이스북 sdk 빌드 에러 iOS Facebook SDK Static Framework build error

지난 번에 Facebook 심사를 위한 앱검수 얘기를 했었는데요. 페이스북 권한을 사용하는 컨텐츠를 동영상으로 촬영해야 된다고 말씀드렸습니다. 그리고 iOS의 경우는 시뮬레이터 빌드를 준비해야

minmong.tistory.com

 

반응형
Posted by blueasa
, |