본문 바로가기

IOS

[IOS]Unity Xcode Archieve(안드로이드 SwichPlatform이후)

0. Before SwichPlatform

-들어가있는 API 정리

    -파이어베이스, 애드몹, GPGS(Google Play Games Services), IAP(In App Purchase)

 

-스위치 플랫폼 하기 전에 수정해야할 것 정리.

    -번들 ID 수정

    -파이어베이스 새로운 프로젝트 만들기 or 같은 프로젝트에 IOS추가하기

    -애드몹 IOS로 새로 만들어서 광고랑 ID 수정하기

    -GPGS 삭제 - 선택이지만 IOS로그인만 만들어야하기 때문에 없어도됨

    -IAP IOS로 바꾸기

1. SwichPlatform to IOS

1-1. SwichPlatform 이후 오류나는 것들

    -애드몹

        -[IOS]용 앱 ID를 가진 애드몹 프로젝트 생성

        -앱 ID 복사 후, Unity -> Assets -> Google Mobile Ads -> Settings 이후 입력

        -각각의 광고에 해당하는 단위를 만들고 추가하기
    -GPGS로그인 스크립트
        -IOS로 로그인할거니까 이 스크립트는 삭제

 

2. 빌드 전,  수정할 것들

2-1. IOS 로그인 구현

    -유니티 패키지 추가 (AppleSignInUnity_v1.4.3)

2-2. 파이어베이스는 안드로이드에서 가져왔던 부분 그대로 사용

2-3. 이미지, 스프라이트 등 IOS로 넘어오면서 깨진 파일이 많기 때문에 IOS에 맞게 압축을 해야함

 

ChangeSpriteImportSettings.cs

더보기
using UnityEngine;
using UnityEditor;

public class ChangeSpriteImportSettings : MonoBehaviour
{
    [MenuItem("Tools/Set iOS Sprite Compression")]
    public static void SetIOSCompression()
    {
        string[] allSprites = AssetDatabase.FindAssets("t:Texture2D"); // 모든 텍스쳐 가져오기

        foreach (string spriteGUID in allSprites)
        {
            string path = AssetDatabase.GUIDToAssetPath(spriteGUID);
            TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter;

            if (importer != null && importer.textureType == TextureImporterType.Sprite) // 스프라이트만 적용
            {
                TextureImporterPlatformSettings iosSettings = importer.GetPlatformTextureSettings("iOS");

                // iOS 설정 변경
                iosSettings.overridden = true;
                iosSettings.maxTextureSize = 4096;
                iosSettings.format = TextureImporterFormat.ASTC_4x4; // ASTC 4x4 설정
                //다른 원하는 포멧 형식에 따라 위의 부분들을 수정하여 압축하기

                importer.SetPlatformTextureSettings(iosSettings);
                EditorUtility.SetDirty(importer);
                importer.SaveAndReimport();

                Debug.Log($"{path} iOS 압축 설정 적용됨");
            }
        }

        AssetDatabase.Refresh();
        Debug.Log("모든 iOS 스프라이트 압축 설정이 완료");
    }
}

다음 함수를 Editor에 추가하고 Tools -> SetIOSCompression 누르면 텍스쳐 양에 따라 10분 ~ 많으면 1시간 이상 소요
때문에 안쓰는 텍스쳐들은 정리하고 누르는 걸 추천

 

3. IAP(InAppPurchase) IOS에 맞게 수정

IAP스크립트를 수정 까지 끝났다면 빌드

그리고 빌드되는 동안 새 앱 등록

 

https://obscure0507.tistory.com/10

 

[IOS] Apple Store Connect 앱 등록 - In Unity

1. Apple Developer 계정에 접속https://developer.apple.com/kr/ Apple DeveloperApple 플랫폼에서 개발할 절호의 기회입니다developer.apple.com 1-1. 로그인을 한 후에 이라는 카테고리 클릭1-2. 처음 앱을 만든다면 버

obscure0507.tistory.com

 

4. Xcode빌드 시작

만약 맥으로 빌드된 파일을 옮겼다면 압축을 해제한 후에
폴더에 오른쪽 클릭 후에 터미널 실행
< cocoapods이 제대로 설치되었다는 가정 >

폴더 안에 Podfile이 없다면

pod init

 

입력 후 파일이 생성되었다면 pod file을 들어가있는 SDK에 따라 파일을 수정

더보기
source 'https://cdn.cocoapods.org/'

platform :ios, '13.0'

target 'UnityFramework' do
  pod 'Firebase/Auth', '10.25.0'
  pod 'Firebase/Core', '10.25.0'
  pod 'Firebase/Firestore', '10.25.0'
  pod 'Google-Mobile-Ads-SDK', '~> 10.9'
end
target 'Unity-iPhone' do
end
use_frameworks! :linkage => :static

*Xcode버전을 16이상으로 업그레이드 한 후에 나오는 버그

xcode unsupported option '-G' for target 'arm64-apple-ios10.0'

해당 부분인데 Pods의 BuildSetting의 IOS DeploymentTarget을 수정했는데도 버그가 남아있어서

아래의 부분을 Podfile에 추가하니까 제대로 작동

더보기
post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'BoringSSL-GRPC'
      target.source_build_phase.files.each do |file|
        if file.settings && file.settings['COMPILER_FLAGS']
          flags = file.settings['COMPILER_FLAGS'].split
          flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' }
          file.settings['COMPILER_FLAGS'] = flags.join(' ')
        end
      end
    end
  end
end

해서

pod file작성이 끝났다면 다음으로 터미널에

pod install

 

입력

그리고 문제업이 끝났다면

open Unity-iPhone.xcworkspace

 

위를 입력하고 Xcode열기
Pod install로 파이어베이스 패키지를 설치했기 때문에 패키지 추가는 따로 안해도 되고

나머지 설정만 완료하면됨.

 

- Signing & Capabilities에서 Automatically manage sgining 체크

- Team 설정

- Signing & Capabilities버튼 밑에 있는 바에 제일 왼쪽  +Capability 클릭 -> push Notifications 추가

(이거 추가 안하면 나중에 애플 승인 거절이었던 것으로 기억남)

 

위의 설정 후에

GoogleService-Info.plist 파일 넣기

이때 앱 이름이 들어간거 두개랑 다른거 하나 나오는데 앱 아이콘이 들어간거 누르고 추가하기

 

5. 마무리

상단의 Product -> Archieve 누르고 빌드하기.

제발 Build failed가 안나오길 빌면서

Build Success가 나오면 끝.
Distribute App눌러주고

App Store Connect에 Distribute눌러주면 끝

 

고생 많으셨습니다

'IOS' 카테고리의 다른 글

IOS About - Game MyDungeon  (0) 2025.03.03
IOS About - Game Made in dungeon  (0) 2024.04.02