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 |