모든 문서(일반 문서, 분류 문서, 파일(이미지, 사운드 등) 문서)는 분류가 달려 있어야 합니다.
--Administrator (토론)
Hub/docs/ios/getting started
Hive | >> | >> |
플랫폼별 환경설정 가이드 Hive iOS 환경설정 |
>> |
하이브 모듈 API 레퍼런스 |
>> |
하이브 기능 활용 가이드 |
개요
iOS 플랫폼 환경에서의 Hub 2.x 라이브러리 적용을 위한 준비 및 프로젝트 설정에 대해 설명한다.
- 주의 v2.5.0 이상부터는 Google Plus가 아니라 Google SignIn을 사용한다. 버전에 맞는 적용방법을 택하여 프로젝트에 적용한다.
- 기 GooglePlus 적용 프로젝트에서 HiveSDK 2.5.0 이상으로 업데이트 시에는 하단 문서에 따라 프로젝트 설정을 수정한다.
AppID & Game Index발급
iOS Hub 모듈에서 AppID는 앱의 bundle Identifier를 의미합니다.
글로벌사업팀 TECH 파트를 통해서 납품용 AppID(Bundle ID)와 GameIndex를 발급 받으실 수 있습니다.
발급된 App ID와 GameIndex는 허브 서버에 등록되어야 Hub 서버와 정상적인 통신 가능하므로 발급 후, 허브팀에 납품용 App ID와 GameIndex를 알려주시기 바랍니다. 이렇게 허브 서버에 등록한 값을 초기화 함수에서 사용합니다.
#define GAME_INDEX "게임 인덱스"
#define USE_TEST_SERVER <true or false>
// ...
if (HUB_E_SUCCESS != CS_hubInitialize(APP_ID, GAME_INDEX, USE_TEST_SERVER))
{
// 에러 처리
}
Facebook App ID 발급
Facebook App ID 역시 글로벌사업팀 TECH 파트팀을 통해 발급 받으실 수 있습니다.
Facebook App ID Facebook App을 동록할 때 받을 수 있는데 이때 bundle Identifier를 여러개 등록하는 것이 가능하므로, 개발 편의를 위하여 납품용 App ID(Bundle ID) 외에 개발용 Bundle ID(예: com.com2us.com.Dodge.A18)도 함께 등록 요청하시는 것이 좋습니다.
Facebook SDK는 Facebook 서버와 앱 인증 시, Facebook App 등록 시 입력된 bundle ID와 Facebook App ID의 매칭을 검사합니다. 만약, facebook SDK 설정을 모두 완료했는데도 페이스북 인증 오류가 발생한다면 bundle ID와 Facebook App ID가 맞지 않아서 발생하는 문제일 가능성이 높습니다.
아래는 페이스북 앱 등록 화면 샘플입니다.(아래 등록 처리는 TECH 파트에서 처리하여 게임 개발팀에서는 볼 일이 없지만, Facebook App ID와 Bundle ID가 어떤 식으로 관리되는지 보여드리기 위해 첨부합니다.)
Facebook SDK 개인정보 보호 설정
- GDPR 정책에 따라 약관 동의 이후에 Facebook SDK 초기화 및 네트워크 통신이 이루어지도록 해야합니다. (관련 페이스북 페이지 링크)
- iOS Peppermint v2.7.7 이상을 적용하고 iOS Facebook 5.4.1 이상을 적용하는 경우 꼭 확인이 필요합니다.
- iOS 빌드에선 info.plist에 FacebookAutoInitEnabled = NO / FacebookAutoLogAppEventsEnabled = NO / FacebookAdvertiserIDCollectionEnabled = NO 로 추가합니다. (추가하지 않을 시 default true)
Google SignIn GoogleService-Info.plist 발급 (v2.5.0+)
- Google SignIn 연동을 위해 GoogleService-Info.plist를 발급 받습니다. (담당: 테크PM팀)
- 주의! Google SignIn는 페이스북과 달리 앱 아이디(Bundle ID 또는 Package Name)에 따라 개별 생성해야 합니다. 예를 들어, 납품용 앱 아이디로 발급된 GoogleService-Info.plist를 OTA빌드시 사용할 경우 Google SignIn 로그인이 정상적으로 처리되지 않습니다.
- GoogleService-Info.plist 발급시, 개발 또는 OTA때 사용하는 앱 아이디에 대해서도 GoogleService-Info.plist 발급을 신청하도록 합니다.
Google Plus Client ID 발급 (v2.5.0 미만)
- Peppermint v2.6.0 업데이트 이후 최소 권장 버전은 v2.6.0이기 때문에 해당 내용은 참고만 부탁드립니다.
- Google Plus 연동을 위해 Google Plus Client ID를 발급 받습니다. (담당: 사업지원팀)
- 주의! Google plus는 페이스북과 달리 앱 아이디(Bundle ID 또는 Package Name)에 따라 개별 생성해야 합니다. 예를 들어, 납품용 앱 아이디로 발급된 Google Plus Client ID를 OTA빌드시 사용할 경우 Google Plus로그인이 정상적으로 처리되지 않습니다.
- Google Plus Client ID발급시, 개발 또는 OTA때 사용하는 앱 아이디에 대해서도 Google Plus Client ID 발급을 신청하도록 합니다.
QQ 로그인 적용 (v2.7.0 이상)
- iOS Peppermint v2.7.0부터 클라이언트 사이드 QQ 로그인을 사용할 수 있습니다.
- 텐센트 QQ 로그인 정책 대응으로 인한 QQ 로그인 방식 변경(로그인 방식을 기존 서버(웹) 로그인 방식에서 클라이언트 로그인으로 변경) 서버패치(2018/11/15)로 인하여, Peppermint v2.7.0 이하를 적용할 경우, 아래 대상게임은 QQ 로그인 버튼이 비활성화되어 노출되고 있습니다.
- Peppermint v2.7.0 이상을 적용할 경우 자동으로 QQ 로그인 버튼이 활성화 됩니다.
- 2018.11.15 시점 참고사항
- 2018.11.15 시점 QQ 로그인 버튼 비활성화 된 게임목록 : 서머너즈워, 낚시의 신, 골프스타, 사커스피리츠, 원더택틱스, 타이니팜, 라이트:빛의원정대, 소울시커
- Peppermint v2.7.0 업데이트 적용 대상 게임 : 서머너즈워, 낚시의 신, 골프스타, 사커스피리츠, 원더택틱스
- 참고 사항
- 타이니팜과 라이트:빛의원정대의 경우 중국법인에서 서비스 허가를 받지 않은 상황이라 QQ 로그인 적용 대상에서 제외되었습니다.
- 소울시커의 경우 19년 1월 종료 예정이라 추가 대응을 하지 않았고, 멤버십 전환 유도만 진행됩니다.
- 제외된 게임의 경우 AppId를 발급받지 않았기 때문에 QQ 로그인 버튼 클릭 시 동작을 하지 않습니다.
- QQ 라이브러리 적용 방법
- QQ 콘솔에 앱을 등록하였을 경우 QQ 앱아이디를 발급받아 QQ 라이브러리를 통한 로그인 기능을 사용할 수 있습니다.
- QQ 콘솔에 앱 등록과 관련된 문의는 GCP 플랫폼 클라이언트팀으로 문의바랍니다. (18.11.15 적용 대상 게임은 별도로 앱 등록 및 앱아이디 발급이 필요 없습니다. GCP 플랫폼 클라이언트팀으로 문의바랍니다.)
- 적용 사항 1 : framework 설정
- 하단에 [framework 추가] 가이드를 참고바랍니다.
- 적용 사항 2 : QQ 앱 설치 여부
- OS에 따라 QQ에서 제공하는 로그인 서비스 동작 차이가 있으며 아래 상황에 따라 QQ 앱 설치 여부가 충족되어야 합니다.
- Android의 경우 QQ 앱을 필수로 설치해야 QQ 로그인이 가능 (필수) (구글 플레이스토어 QQ앱 다운로드 링크 : https://play.google.com/store/apps/details?id=com.tencent.mobileqq)
- iOS의 경우 QQ 앱을 설치하지 않아도 QQ 로그인이 가능 (선택)
- OS에 따라 QQ에서 제공하는 로그인 서비스 동작 차이가 있으며 아래 상황에 따라 QQ 앱 설치 여부가 충족되어야 합니다.
Sign-in with Apple 적용 (v2.8.1 이상)
- Peppermint v2.8.1부터 iOS 13 단말기에서 사용할 수 있는 Apple 로그인이 추가되었습니다. Apple 로그인은 Xcode 11.0 이상 버전에서 추가 할 수 있습니다. 다음의 안내를 따라 Apple 로그인 설정을 진행합니다.
1. Xcode 프로젝트 창의 프로젝트 네비게이터에서 작업하는 프로젝트를 선택한다.
2. TARGETS 목록에서 작업하는 앱을 선택한다.
3. Signing & Capabilities 탭을 클릭한다.
4. Signing & Capabilities 탭 좌측 상단에 있는 + Capability 버튼을 클릭한다.
5. 목록에서 Sign In with Apple을 선택해 추가한다.
6. Signing & Capabilities 목록에 추가된 Sign In with Apple을 확인할 수 있다.
- 권한이나 기타 문제로 Capability 목록에 보이지 않을 경우에는 Apple 개발자 콘솔에서 Sign In with Apple 항목을 활성화해야 한다. 이후 갱신된 프로비저닝이 적용되면 4~6 순서를 다시 진행해 IdP를 추가한다.
Framework 추가
- Hub 모듈에서 사용하는 프레임워크 외에 외부 소셜 서비스에서 사용하는 각종 프레임워크를 추가합니다.
- 외부 소셜 서비스 지원을 위한 프레임워크를 추가합니다.
- Hub 모듈 배포 저장소에 포함된 각 외부 소셜 플랫폼의 프레임워크를 사용합니다.
- Peppermint v2.8.4 이상
- Facebook / Google SignIn 프레임워크를 CocoaPods을 이용하여 프로젝트에 주입되도록 변경되었습니다.
- Module Dependency Guide를 참고하여 Unity 환경 및 Xcode 환경에 맞게 외부 라이브러리 사용 환경을 구축하세요.
- QQ 로그인을 위한 TencentOpenAPI.framework는 기존과 동일하게 배포파일에 포함된 framework를 사용하세요.
- QQ (Tencent) 프레임워크 (v2.7.0 이상)
- ios/external/QQ_3_3_3/TencentOpenAPI.framework
- Facebook 프레임워크 (v2.8.4 미만)
- ios/external/facebook_4_39_1/Bolts.framework
- ios/external/facebook_4_39_1/FBSDKCoreKit.framework
- ios/external/facebook_4_39_1/FBSDKLoginKit.framework
- ios/external/facebook_4_39_1/FBSDKShareKit.framework
- Google SignIn 프레임워크 (v2.8.4 미만)
- ios/external/google_signin_sdk_4_4_0/GoogleSignIn.framework
- ios/external/google_signin_sdk_4_4_0/GoogleSignInDependencies.framework
- Google Plus 프레임워크 (v2.5.0 미만)
- ios/external/google-plus-ios-sdk-1.7.1/GooglePlus.framework
- ios/external/google-plus-ios-sdk-1.7.1/GoogleOpenSource.framework
- Hub 모듈 및 외부 소셜 서비스에서 사용하는 라이브러리와 프레임워크를 추가합니다.
- Accounts.framework
- AddressBook.framework
- AdSupport.framework
- AssetsLibrary.framework
- Photos.framework Added in iOS Hive v2.4.0
- CoreLocation.framework
- CoreMotion.framework
- CoreGraphics.framework
- CoreText.framework
- CoreTelephony.framework
- MediaPlayer.framework
- MessageUI.framework
-
ImageIO.frameworkRemoved in iOS Hive v2.3.0 - QuartzCore.framework
- Social.framework
- Security.framework
- SystemConfigureation.framework
- libsqlite3.0.dylib
- libz.dylib
- SafariService.framework (iOS7 미만에서 Optional)
- Foundation.framework Added in iOS Hive v2.6.0 (iOS8 미만에서 Optional)
- CoreSpotlight.framework Added in iOS Hive v2.6.0 (iOS8 미만에서 Optional)
- LocalAuthenticaion.framework Added in iOS Hive v2.7.4 (iOS8 미만에서 Optional)
info.plist 설정
Facebook App ID 추가
FacebookAppID라는 새로운 키를 추가하고, 발급받은 Facebook App ID로 설정합니다. FacebookDisplayName 키를 추가하고 현재 App Name으로 설정합니다.
URL Scheme 추가
- 외부 소셜 서비스에서 게임을 실행 할 수 있도록 URL scheme 을 추가합니다.
- 페이스북용 URL Scheme에 들어가는 값은 FacebookAppID 앞에 fb가 붙습니다. 예를들어, FacebookAppID가 243049315801850이라면, URL Scheme은 fb243049315801850 가 됩니다.
- Google Plus용 URL Scheme는 Hub 2.0에서 사용하는 방식과 동일합니다. 아래의 그림을 참고하시기 바랍니다.(bundle identifier로 url scheme를 사용합니다.)
-
Weibo에 URL Scheme에 들어가는 값은 Weibo App Key 앞에 wb가 붙습니다. 예를 들어, Weibo AppKey가 39959666이라면, URL Scheme는 wb39959666가 됩니다.Removed in iOS Hive v2.3.0 - 이 값이 설정되어 있지 않으면, 앱에서 Safari나 외부 소셜 서비스 앱으로 전환된 후에 다시 앱으로 돌아올 수 없습니다.
- 자사의 다른 게임에서 현재 앱을 실행할 수 있도록 회사에서 발급한 납품용 AppID를 URL scheme에 추가합니다.
설정 방법은 아래 그림을 참고합니다.
- Google SignIn 사용시 (v2.5.0+) 기존 GooglePlus에서는 Bundle Identifier만 URL Scheme에 추가되었으나, GoogleService-Info.plist에 있는 REVERSED_CLIENT_ID의 값도 URL Scheme에 추가 해야한다.
Library link
- Build Settings의 Header Search Paths에 헤더 파일이 위치한 경로를 추가합니다.
- Build Settings의 Library Search Paths에 라이브러리 파일이 위치한 경로를 추가합니다.
- Build Settings의 Other Linker Flags에 라이브러리 파일 링크 옵션을 추가한다.
Orientation 설정
Peppermint 웹뷰의 지원 방향은 Xcode의 Device Orientation 을 따릅니다.
- Xcode -> Project Setting -> General -> Deployment Info에 Device Orientation
- 게임에서 지원하는 방향에 체크
- 가로모드만 지원하는 게임
- Landscape Orientation에 체크 (iphone, ipad 모두)
Capability 설정
- Added v2.6.9
- HiveSDK v2.6.9 버전부터 게스트 유저 계정 생성 시(guest/create) 필요한 정보를 암호화하여 전달하도록 수정되었다.
- iOS 10 이상부터 암호화 시 Capability에서 Keychain Sharing 설정을 ON으로 변경해야한다.
Resource 파일 추가
주의!리소스 파일이 추가되지 않으면, Hive 또는 외부 소셜 서비스의 다이얼로그를 열었을 때 X 버튼이 표시되지 않습니다.
프로젝트에 Hub와 외부 소셜 서비스 리소스 번들을 추가합니다.
HiveSocialResources.bundle - Added v2.4.0
- {HUB2 배포파일이 위치한 경로}/ios/resources/HiveSocialResources.bundle
FacebookSDKStrings.bundle
- {HUB2 배포파일이 위치한 경로}/external/facebook_4_38_0/FacebookSDKStrings.bundle
GoogleSignIn.bundle
- {HUB2 배포파일이 위치한 경로}/external/google_signin_sdk_4_1_2/GoogleSignIn.bundle
- {HUB2 배포파일이 위치한 경로}/external/google_signin_sdk_4_1_2/GoogleService-Info.plist (발급받은 GoogleService-Info.plist)
GooglePlus.bundle(2.5.0미만)
- {HUB2 배포파일이 위치한 경로}/external/google-plus-ios-sdk-1.7.1/GooglePlus.bundle
- {HUB2 배포파일이 위치한 경로}/external/google-plus-ios-sdk-1.7.1/GTMOAuth2ViewTouch.xib
- 해당 파일이 포함되어 있지 않은 경우 Google+ 로그인 기능사용시 검은 화면이 나타나거나 crash 현상이 발생할 수 있습니다.
WeiboSDK.bundle Removed in iOS Hive v2.3.0
* {HUB2 배포파일이 위치한 경로}/external/sinaWeibo/resources/WeiboSDK.bundle
Hub Localize File 추가
Apple App Store Guide Line에 따라 해당 파일은 반드시 프로젝트에 추가되어야 하며, 필수 확인 사항입니다. 적용이 안되었을 시에 반려(reject) 사유에 해당합니다.
InfoPlist.strings를 사용하는 경우
날짜 | 비고 |
2014 - 08 - 12 | '불어' 추가 |
2016 - 04 - 22 | '스페인어', '포르투칼어', '인도네시아어', '말레이시아어', '태국어', '베트남어' 추가 |
2016 - 07 - 14 | '이탈리아어', '터키어' 추가 |
2016 - 09 - 12 | iOS 10 대응 언어 추가 |
2017 - 07 - 10 | '아랍어' 추가 |
2017 - 08 - 10 | 17개국 언어 텍스트 수정 및 추가 |
2018 - 06 - 26 | 말레이시아어 지원 중단으로 언어 텍스트 삭제 |
- 먼저, 프로젝트의 설정에 가서 기존의 'Localizations'에 게임에서 지원하는 언어를 추가해 줍니다. 아래의 이미지를 참고하여 추가하시기 바랍니다.
- 지원하는 언어는 영어, 한국어, 일본어, 중국어(간체), 중국어(번체), 러시아어, 독일어, 불어, 스페인어, 포르투칼어, 인도네시아어, 태국어, 베트남어, 이탈리아어, 터키어, 아랍어 (16가지)
- 제공된 언어 중 게임에서 지원하는 언어만 가져다 사용하시기 바랍니다.
- 정상적으로 추가된 경우에는 프로젝트내 파일중 InfoPlist.strings파일이 다음과 같이 변경됩니다.
- 각 언어별 InfoPlist.strings를 선택하여 다음의 이미지와 같이 입력해주시기 바랍니다.
- 주의! 입력시 맨 마지막에는 반드시 공백 줄이 있어야 합니다.
InfoPlist.strings를 사용하지 않는 경우
- {HUB2 배포파일이 위치한 경로}/ios/resources/localize
- 파일:localize.zip
해당 폴더를 프로젝트에 추가합니다.
- Step 01. 프로젝트 메뉴에서 마우스 오른쪽 클릭으로 옵션을 열어 'Add Files to "프로젝트"...' 를 선택합니다.
- Step 02.위의 경로에서 'localize' 폴더를 선택 후 'Add'를 선택하여 프로젝트에 추가합니다.
적용 결과 화면
- 정상적으로 프로젝트에 추가되면, 다음의 회원가입 화면 중 사용자의 주소록 정보를 요청할 시에 다음과 같은 메시지 팝업창이 나타납니다.
UIApplicationDelegate 함수 수정
앱이 실행되거나 종료되었을 때와 URL Scheme으로 실행되었을 때, 허브 모듈에서 필요한 작업을 처리해주기 위하여 UIApplicationDelegate의 다음 함수들을 호출해주어야 합니다.
일반적인 iOS Application의 경우, AppDelegate를 suffix로 갖는 클래스가 UIApplicationDelegate 를 구현하고 있습니다.
// File: AppDelegate.m
//
// -- 본 예시에서는 UIApplicationDelegate의 구현 클래스를 AppDelegate로 선언했습니다.
//
#import "C2SHub2.h"
@implementation AppDelegate
// ...
- (void)applicationDidBecomeActive:(UIApplication *)application
{
CS_hubApplicationDidBecomeActive();
}
- (void)applicationWillTerminate:(UIApplication *)application
{
CS_hubUninitialize();
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// 필요에 따라 추가적인 스키마 처리
// 스키마 처리 결과에 따라 YES 또는 NO 반환
return CS_hubApplicationOpenURL(url, sourceApplication, annotation);
}
// 상단의 openurl 함수가 iOS 9.0 이상에서 곧 deprecated 될 예정이라 하단의 함수를 따로 추가해야함. (Available in iOS 9.0 and later)
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
return [self application:app openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
}
// ...
@end
ActiveUser 적용
주의! iOS 7 맥 주소 수집 불가로 추가적인 디바이스 정보 수집을 위하여 Hive(Peppermint) v.2.0.7 이상, Active User 2.0.0 이상 버전을 적용해야 합니다. 주의! Hive v2.2.7 이상 버전 호환을 위해 Active User 2.4.0 이상 버전을 적용해야 합니다. 주의! Hive v2.6.0 배포 이후 최소 권장 버전은 v2.6.0 입니다. 호환 가능한 Active User 버전을 적용해야 합니다.
적용 방법은 각 모듈 적용 가이드를 참고합니다.
적용 시 반드시 아래 두가지를 주의해야 합니다:
- CS_hubInitialize() 함수는 반드시 CS_ActiveUserStart()이 호출된 이후에 불려야 합니다.
- 허브 테스트 서버를 사용하는 경우 CS_ActiveUserUseTestServer()를 호출하여 Active User 또한 테스트 서버를 사용하도록 해야 합니다.
CS_ActiveUserUseTestServer();
#endif
CS_ActiveUserStart();
// Hub(Hive 혹은 페퍼민트) 초기화
#ifdef USE_COM2US_TEST_SERVER_SET
if (HUB_E_SUCCESS == CS_hubInitialize(APP_ID, GAME_INDEX, true)) // 테스트 서버 사용
#else
if (HUB_E_SUCCESS == CS_hubInitialize(APP_ID, GAME_INDEX, false)) // 상용 서버 사용
#endif
{
NSLog(@"%s: CS_hubInitialize success", __FUNCTION__);
}
JSON 라이브러리
주의! Hub(Hive 혹은 Peppermint) 2.0에서는 클라이언트 모듈과 허브 서버 간에 사용되는 데이터 형식으로 JSON 형식을 사용하고 있습니다.
때문에 허브 서버로 요청할 데이터를 생성하거나 받은 데이터를 처리하기 위해서 JSON 라이브러리가 필요하게 됩니다.
- SBJSON (Objective-C)
- C2SHub2 라이브러리 파일은 iOS 어플리케이션에서 널리 사용되는 SBJSON 코드를 포함하고 있으며, SBJSON 라이브러리를 사용하고자 할 경우 타겟 프로젝트에 SBJSON의 헤더파일만 추가해주시면 됩니다.
- Jansson (C)
- iOS와 안드로이드 간의 이식성 문제로 C 라이브러리를 사용하시고자 하는 경우에는 Jansson 라이브러리를 추천합니다. Hub 2.0 랩퍼 샘플에서 이 라이브러리를 사용하고 있습니다. 자세한 내용은 Hub 2.0 샘플 가이드를 참고 해주세요.
- NSJSONSerialization (Objective-C)
- iOS 5.0 이상을 사용하는 앱이라면 iOS의 Foundation.framework에 포함된 NSJSONSerialization 클래스를 사용할 수 있습니다.
Wrapper 라이브러리(Optional)
주의!Hub(Hive 혹은 Peppermint) v2.x iOS 라이브러리는 Wrapper와 완전히 독립적입니다.
Wrapper를 사용하는 프로젝트 설정과 관련 된 부분은 래퍼 (iOS)의 Default Wrapper Project Setting 항목을 참고하시기 바랍니다.
Wrapper 프로젝트의 Other Linker Flags에서 Hub 1.0을 위해 존재하는 아래 옵션들은 제거해도 됩니다.
- -lxml2
- -lGoogleAnalytics
Hub 1.x 모듈이 제거된 Wrapper lib 적용 방법은 아래 페이지를 참고합니다.
챗봇 UI 설정하기
- 유저의 편의를 고려해 챗봇 UI를 세로 고정형으로 노출합니다. 챗봇 기능을 사용하는 게임에선 아래의 내용을 참고하여 작업을 진행하세요.
AppDelegate 설정하기
- CommonModule 1.6.1에 추가된 C2SAppDelegate.h 파일을 프로젝트에 추가 후에 AppDelegate.m (유니티의 경우 UnityAppController.m) 의 didFinishLaunchingWithOptions 의 return 값을 [C2SAppDelegate application:didFinishLaunchingWithOptions:]의 응답값을 return 하도록 수정하세요.
#import "C2SAppDelegate.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
return [C2SAppDelegate application:application didFinishLaunchingWithOptions:launchOptions];
}
- AppDelegate.m (유니티의 경우 UnityAppController.m) 파일 내 application:supportedInterfaceOrientationsForWindow: 함수가 구현되어 있지 않은 경우 수동으로 해당 함수를 추가하세요.
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
// TODO: 가로 전용 게임의 경우
return UIInterfaceOrientationMaskLandscape;
// TODO: 세로 전용 게임의 경우
return UIInterfaceOrientationMaskPortrait;
// TODO: 가로, 세로 모두 지원하는 게임의 경우
return UIInterfaceOrientationMaskAll;
}
Xcode 설정하기
- iPad 에서도 챗봇 화면을 세로 고정형으로 노출하고 싶다면 Xcode에서 아래 설정을 추가로 적용하고 빌드합니다.
Hive | >> | >> |
플랫폼별 환경설정 가이드 Hive iOS 환경설정 |
>> |
하이브 모듈 API 레퍼런스 |
>> |
하이브 기능 활용 가이드 |