728x90

Invalid Signature. A sealed resource is missing or invalid. The file at path “고양이팡.app/고양이팡” is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult

원인은 각자 다르겠지만, 나는 영어 문장 속 한글을 보자마자 한글때문이아닐까 하는 합리적의심을 했다. 꼭 게임이 아니더라도 다른 프로젝트를 하게 되면 한글이 문제가 되는 경우가 종종 있었기 때문이다. 뭐 certificate 어쩌구가 써있긴하지만 그냥 느낌상 파생된 에러라고 생각이 들었을뿐... 

1. 유니티 project setting에서 product name을 영어로 바꾼다.
2. 다시 빌드를 한다.(꼭)
3. 그리고 나서 xcode에서 info.plist안에 Bundle display name을 한글로 바꾼다.
4. 어플명이 한글로 잘 나오는지 확인한다. 끗.

728x90

1. https://github.com/Unity-Technologies/com.unity.ads.ios-support 에서 파일을 다운 받는다.
2. 유니티 window > PackageManager 에서 +버튼을 누르고 Add Package from disk 에서 방금 다운 받은 파일 안에 "package.json"을 임포트한다.
3. 빈 오브젝트 만들어서 아래 스크립트를 적용시켜준다.
--- 주의점: 스크립트 이름이 AppTrackingTransparency  이거여야한다.

using UnityEngine;
using Unity.Advertisement.IosSupport;
using System;

public class AppTrackingTransparency : MonoBehaviour
{
    public event Action sentTrackingAuthorizationRequest;

    public void Start()
    {
        #if UNITY_IOS
            if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() ==
                ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
            {
                ATTrackingStatusBinding.RequestAuthorizationTracking();
                sentTrackingAuthorizationRequest?.Invoke();
            }
        #endif
    }
}


4. xcode info.plist 에 add row 해서
  - key : "Privacy - Tracking Usage Description" 
  - value : 개인에게 최적화된 광고를 제공하기 위해 사용자의 광고 활동 정보를 수집합니다.
위 값을 추가해준다.

 


1-1. 파일을 다운 받아서 넣지 않는 경우

 

이거 인스톨 해도 된다. 근데 이렇게 했을때 위 소스파일 일부에 빨간줄 생길 수가 있는데, 그냥 해도 문제는 없다.

왜냐 같은것이기때문에

 

 

 


"초동수사 - 증언/증거 추리게임"

증거와 진술로 추리해야 하는 게임!

방탈출 게임이 아닙니다.

증거는 모두 찾았고 용의자들에게 증언을 얻어내세요!

 

 

 

[Android]

https://play.google.com/store/apps/details?id=com.loomiloomi.crimescene

 

[IOS]

https://apps.apple.com/kr/app/%EC%B4%88%EB%8F%99%EC%88%98%EC%82%AC-%EC%A6%9D%EC%96%B8-%EC%A6%9D%EA%B1%B0-%EC%B6%94%EB%A6%AC%EA%B2%8C%EC%9E%84/id6499072416

 

‎초동수사 - 증언/증거 추리게임

‎자택에서 친구들과 놀던 평범한 여대생 "나 미녀"가 갑작스럽게 사망했다. 그런데, 주변 사람들의 대화 내용이 심상치 않다!? ======== 안 남찬: "아니요! 저희는 밥을 먹고 있었을 뿐입니다! 힘들

apps.apple.com

 

728x90

아주 개같은 에러다.

mac기준 내가 아는 해결방법은 세가지가 있다. 이 중에 안되는게 있다면 제발 부탁인데 그런 일은 겪고 싶지 않다.

1) .xcodeproj 로 실행하지 말고 .xcworkspace 이 파일로 실행해보자
2) 내 경우에는 파베 auth랑 database를 사용했는데, 다시 인스톨했다.(지우고 재설치가 아니고 그냥 다시 덮어씌우기) 
    -- 파베를 먼저 인스톨하고 애드몹을 인스톨했는데, 애드몹이 설치 되면서 뭔가 충돌이나 덮어씌워진것이 있었던 것 같다. 
3) 이 에러가 나타난다는건 pods를 사용하고 있을거다. 내 추측으로는 팟이 파베를 제대로 못찾는 것 같다.
    -- 에러로그를 보면 파베 모든 것을 못찾는다. cocoapods을 업데이트 해보자. 

 


"초동수사 - 증언/증거 추리게임"

증거와 진술로 추리해야 하는 게임!

방탈출 게임이 아닙니다.

증거는 모두 찾았고 용의자들에게 증언을 얻어내세요!

 

시즌2가 나왔습니다!

초동수사 1, 2 합본으로 출시했으니 기존 앱에서 에피소드를 확인해주세요😍

(안드로이드는 아직 없슴둥...)

 

 

[Android]

https://play.google.com/store/apps/details?id=com.loomiloomi.crimescene

 

[IOS]

https://apps.apple.com/kr/app/%EC%B4%88%EB%8F%99%EC%88%98%EC%82%AC-%EC%A6%9D%EC%96%B8-%EC%A6%9D%EA%B1%B0-%EC%B6%94%EB%A6%AC%EA%B2%8C%EC%9E%84/id6499072416

 

‎초동수사 - 증언/증거 추리게임

‎Episode 1. 자택에서 친구들과 놀던 평범한 여대생 "나 미녀"가 갑작스럽게 사망했다. 그런데, 주변 사람들의 대화 내용이 심상치 않다!? ======== 안 남찬: "아니요! 저희는 밥을 먹고 있었을 뿐입니

apps.apple.com

 

728x90

ios 빌드를 할때 이런 에러가 나왔다.
파이어베이스가 정상적으로 등록이 되었다는 것을 전제하에.

1. https://console.cloud.google.com/apis/

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

구글 콘솔에 들어가서 프로젝트 선택에 파이어베이스에 연결한 어플을 선택한다.
- 여기서 내 어플이 나오지 않을 수 있는데, 이유는 잘 모르겠지만 내 추측으로는 
  -- 시간이 조금 걸리거나.
  -- 인증 제공업체에 google 로그인 인증을 활성화 해보고 좀 더 기다려 보자.


2. 메뉴 > 사용자 인증정보에 OAuth 2.0 클라이언트 ID 가 자동으로 생성되어 있지 않다면 아래 캡쳐를 참고해서 생성한다.

- 캡쳐를 하진 않았지만 쉬워서 하라는대로만 하면된다. 내 경우에는 필수값만 채워넣었다.
- OAuth 2.0 클라이언트 ID목록에 생성된걸 확인할 수 있다.
   내 경우에는 plist를 다운받는 창이 떠서 다운받았다. 만약 다운받지 않고 그냥 껏어도 괜찮다. 생성된 항목을 눌러서 들어가면

IOS URL 스키마가 REVERSED_CLIENT_ID이다.

<key>CLIENT_ID</key>
<string>채워넣기</string>
<key>REVERSED_CLIENT_ID</key>
<string>채워넣기</string>

이제 위 항목을 채워 넣어서 plist에 넣으면된다.

내 경우엔 이렇게해서 되었다.

 

 


- 내가 만든 게임 -

고전 소설의 문장을 만들어나가는(?) 게임이다.

 

https://loomiloomi.tistory.com/80

 

https://apps.apple.com/kr/app/%ED%83%90%EB%8F%85-%EB%AC%B8%EC%9E%A5-%EC%B6%94%EB%A6%AC%EA%B2%8C%EC%9E%84-%EC%9B%8C%EB%93%9C%ED%8D%BC%EC%A6%90/id6581486012

 

‎탐독: 문장 추리게임 & 워드퍼즐

‎耽(즐길 탐), 讀(읽을 독) - 책 좀 읽어야 하는데...라는 마음속 부채감이 있진 않았나요? - 긴 소설을 짧은 문단으로 짬짬이 읽어가며 즐길 수 있는 게임입니다. -------------------------------------------

apps.apple.com

 

 

728x90

간혹 Llnker에러가 나온다. 뭐가 문제인지 자세히 알려주지 않기때문에 터미널에서 빌드를 해보자.

xcodebuild -project Unity-iPhone.xcodeproj -target "Unity-iPhone" -configuration Debug -verbose

1. 터미널에서 xcode 프로젝트가 있는 곳으로 간다.
2. 위 명령어로 빌드를 해서 나온 실패 이유를 본다. 
3. 다시 구글 + gpt 검색 지옥으로 들어간다.

 

(Unity-iPhone은 타겟명이다. 각자에 맞는걸로 하면된다)

728x90

에러: Installation failed with the following output:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
해결: 핸드폰에 다운 받아져있는 기존 어플을 지우고 다시 해보기.

 

해석: 에러가 길게 나오는데, 중간에
commit 147753937. Error: INSTALL_FAILED_VERSION_DOWNGRADE: Downgrade detected: Update version code 1 is older than current 8
이런게 있다. 예전에 만들었던 게임을 리메이크한 거라 버전이 8로 되어 있었다. 1로 낮춰서 바꿔서 나온 에러.

 

 

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

 

빌드 에러시

JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

 

이런 에러가 나온다면, 자바 어쩌구에 속지마라, 아래에 읽다보면 에러 사항이 나온다.

내 경우는 버전이 문제였지 다른 문제 일 경우일때도 저렇게 에러가 뜬다.

 

보통

what went wrong인가.. 뭐 이런식으로 쓰여져 있는거 바로 아래에 적혀있다.

 

없으면... 아래를 꼼꼼히 더 읽어보시라!

728x90

문제: 프리팹으로 목록을 만들게 되었을때 스크롤뷰 크기가 맞지 않아 스크롤이 제대로 안되었다.

해결: Content Size Fitter 컴포넌트를 추가하여 Vertical 또는 Horizontal Fit 을 Preferred Size로 맞추면 된다.
Content Size Fitter는 Unity의 UI 요소 중 하나로, 해당 요소의 크기를 내부 콘텐츠의 크기에 자동으로 맞출 수 있게 해준다.

  1. Preferred Size:
    • Content Size Fitter의 Preferred Size는 해당 요소가 원하는 크기를 나타냅니다.
    • 이 값은 주로 내부 콘텐츠의 크기에 따라 동적으로 조절되는 UI 요소에서 사용됩니다.
    • 예를 들어, 텍스트 요소가 자체적으로 원하는 크기를 가지고 있고, 이 크기에 따라 부모 요소의 크기가 동적으로 조절되어야 할 때 Preferred Size를 활용할 수 있습니다.
  2. Unconstrained:
    • Unconstrained는 크기 제한이 없음을 나타냅니다.
    • 요소가 부모나 다른 레이아웃 그룹에 크기에 대한 제약을 받지 않을 때 사용됩니다.
    • 만약 Unconstrained가 선택된 경우, Content Size Fitter는 내부 콘텐츠에 대한 크기 제약을 무시하고 부모 레이아웃에 맞게 크기를 조절합니다.
  3. Min Size:
    • Min Size는 최소 크기를 나타냅니다.
    • 콘텐츠의 크기가 이 값보다 작을 경우, 부모 레이아웃은 Min Size로 설정된 크기를 유지합니다.
    • 이것은 콘텐츠가 특정 크기보다 작아지지 않도록 보장하는 데 사용됩니다.

 


- 만약 이미지가 짤린다면 padding을 넣어준다.

 


 

 

트리플매치 게임을 만들었습니다~~

레벨도 많고, 특수 타일로 난이도 조절을 했습니다!

마냥 쉽지만은 않은 게임일바니다~~~

많관부~~~~

 

https://apps.apple.com/kr/app/tile-tile-tile/id6737238248

 

‎Tile Tile Tile!

‎Welcome to the ultimate puzzle game where strategy meets fun: Triple Tile Match! Match three identical tiles to clear levels and enjoy a relaxing yet stimulating experience. This game is the perfect choice when you want to unwind. It has simple rules th

apps.apple.com

 

728x90

에러: 파이어베이스 사용시 나오는 에러
해결: ContinueWith => ContinueWithOnMainThread
  -- 파이어베이스 초기화가 된 쓰레드와 사용하려는 메서드의 쓰레드 위치가 달라서였던 것 같다.

 

  1. ContinueWith 메서드:
    • 이 메서드는 비동기 작업이 완료된 후에 실행할 콜백을 정의합니다.
    • 이 콜백은 작업이 완료되면 워커 스레드에서 호출됩니다. 이는 일반적으로 백그라운드 스레드에서 실행되기 때문에 Unity에서는 메인 스레드 외부에서 UI 변경과 같은 작업을 수행하면 문제가 발생할 수 있습니다.
  2. ContinueWithOnMainThread 메서드:
    • 이 메서드는 ContinueWith와 비슷하지만, 콜백이 항상 메인 스레드에서 실행되도록 보장합니다.
    • Unity에서는 주로 메인 스레드에서 UI와 관련된 작업을 수행해야 하기 때문에, Firebase 작업이 완료된 후에 메인 스레드에서 콜백을 실행하는 것이 중요합니다. ContinueWithOnMainThread는 이러한 요구 사항을 간단하게 처리합니다.

// ContinueWith 예제
someFirebaseOperation.ContinueWith(task => {
    // 백그라운드 스레드에서 실행
    Debug.Log("Firebase 작업 완료");
});

// ContinueWithOnMainThread 예제
someFirebaseOperation.ContinueWithOnMainThread(task => {
    // 메인 스레드에서 실행
    Debug.Log("Firebase 작업 완료 (메인 스레드)");
});

 

+ Recent posts