Unreal Engine 5
คู่มือนี้อธิบายงานที่ต้องดำเนินการหลังจากติดตั้ง Hive SDK
การตั้งค่าฟีเจอร์หมุนหน้าจออัตโนมัติ¶
ต้องตั้งค่าต่อไปนี้เมื่อกำหนดทิศทางหน้าจอเป็นทั้งแนวนอนและแนวตั้ง
Android¶
สำหรับการ build แอป Android หากกำหนดทิศทางหน้าจอเป็นทั้งแนวนอนและแนวตั้ง จำเป็นต้องแก้ไขโค้ดต่อไปนี้เพื่อให้ฟีเจอร์หมุนหน้าจออัตโนมัติทำงานอย่างถูกต้อง
- ไปที่ /Engine/Build/Android/Java/src/com/epicgames/unreal/GameActivity.java.template
- เพิ่ม API
HiveActivity.onConfigurationChanged()@Override public void onConfigurationChanged(Configuration newConfig) { HiveActivity.onConfigurationChanged(this, newConfig); // Add super.onConfigurationChanged(newConfig); // forward the orientation boolean bPortrait = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT; nativeOnConfigurationChanged(bPortrait); }
iOS¶
Hive SDK Unreal Engine 5 iOS ไม่จำเป็นต้องตั้งค่าเพิ่มเติมเกี่ยวกับการหมุนหน้าจออัตโนมัติ
การตั้งค่า entitlements (iOS)¶
ให้จัดการไฟล์ entitlements ที่ใช้สำหรับการลงนามแอปโดยตรงในโปรเจกต์แอป และระบุไฟล์นั้นด้วยการตั้งค่า PremadeIOSEntitlements ของ Unreal Engine
เพื่อให้ฟีเจอร์หลักของ Hive SDK เช่น การแจ้งเตือน Remote Push, Sign in with Apple และ Universal Link ทำงานได้อย่างถูกต้อง ไฟล์ entitlements ต้องมีรายการสิทธิ์สำหรับฟีเจอร์เหล่านั้น
-
สร้างไฟล์ entitlements ในโปรเจกต์แอป เช่น Build/IOS/YourGame.entitlements ตัวอย่างต่อไปนี้เป็นการตั้งค่าตามฟีเจอร์ของ Hive SDK
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>application-identifier</key> <string>{Team ID}.{Bundle ID}</string> <key>com.apple.developer.team-identifier</key> <string>{Team ID}</string> <!-- true สำหรับ build พัฒนา, false สำหรับ build เผยแพร่ --> <key>get-task-allow</key> <false/> <key>aps-environment</key> <string>production</string> <key>com.apple.developer.applesignin</key> <array> <string>Default</string> </array> <key>com.apple.developer.associated-domains</key> <array> <string>applinks:{โดเมนที่เกมของคุณใช้}</string> </array> <key>com.apple.developer.game-center</key> <true/> </dict> </plist> -
รายการ entitlement ที่จำเป็นสำหรับแต่ละฟีเจอร์ของ Hive SDK มีดังนี้ ให้ใส่เฉพาะรายการของฟีเจอร์ที่แอปของคุณใช้ ซึ่งต้องเปิดใช้งานเป็น capability ใน provisioning profile ด้วย สำหรับรายละเอียดของแต่ละรายการ โปรดดู เอกสารทางการของ Apple
ฟีเจอร์ที่ใช้ entitlement ที่จำเป็น ทั่วไป (การลงนามแอป) application-identifier,com.apple.developer.team-identifier- แทนที่{Team ID}และ{Bundle ID}ด้วยค่าของเกมRemote Push aps-environment-developmentสำหรับการพัฒนา และproductionสำหรับการเผยแพร่Sign in with Apple (IdP) com.apple.developer.applesigninUniversal Link (Deep Link/ลิงก์เชิญ) com.apple.developer.associated-domains- สำหรับการตั้งค่าโดเมน โปรดดู การตั้งค่า Universal LinkGame Center login (IdP) com.apple.developer.game-centerการแจ้งช่วงอายุ (โมดูล AgeRange) com.apple.developer.declared-age-range- สำหรับรายละเอียด โปรดดู การปฏิบัติตามข้อกำหนด App Store -
ในเมนู Unreal Editor ให้คลิก Edit > Project Settings แล้วเลือก Platforms > Xcode Project ในแผงด้านซ้าย ในส่วน Entitlements ให้ระบุไฟล์ entitlements ที่คุณสร้างไว้
รายการ คำอธิบาย iOS: Entitlements ไฟล์ entitlements ที่ใช้สำหรับการลงนามแอป iOS: Entitlements (override shipping configuration) ระบุเมื่อคุณต้องการใช้ไฟล์อื่นสำหรับ Shipping build การตั้งค่าจะถูกบันทึกใน Config/DefaultEngine.ini ดังต่อไปนี้ คุณยังสามารถระบุไฟล์ได้โดยแก้ไขไฟล์นี้โดยตรง
-
หลังจาก build แล้ว ให้ตรวจสอบว่า entitlements ถูกนำไปใช้กับแอปหรือไม่
Note
- หากระบุไฟล์ด้วย
PremadeIOSEntitlementsไฟล์นั้นจะถูกนำไปใช้ตามเดิมในขั้นตอนการลงนาม iOS- หากไม่มีรายการที่จำเป็น: ฟีเจอร์ที่เกี่ยวข้อง เช่น Push และ Sign in with Apple จะทำงานไม่ถูกต้อง
- หากมีรายการที่ไม่รองรับ: หากไฟล์ entitlements มีสิทธิ์ที่ไม่ได้ลงทะเบียนใน provisioning profile การติดตั้งแอปและการตรวจสอบ code signing จะล้มเหลว
- ไฟล์ entitlements ตัวอย่างมีให้ดูเป็นข้อมูลอ้างอิงในพาธ Plugins/HIVESDK/Source/HiveSDKiOS/template/ ของปลั๊กอิน Hive SDK
Warning
ไฟล์ entitlements ตัวอย่างเปิดใช้รายการสิทธิ์เกือบทั้งหมดเพื่อวัตถุประสงค์ในการทดสอบ ห้ามคัดลอกไปใช้ในโปรเจกต์โดยตรง โปรดเลือกใช้เฉพาะรายการที่ถูกต้องและจำเป็นสำหรับบริการเกมของคุณเท่านั้น
การใช้ HIVEAppDelegate (iOS)¶
ตั้งแต่ Hive SDK v4 26.4.1 เป็นต้นไป HIVEAppDelegate swizzling จะดำเนินการโดยอัตโนมัติภายในปลั๊กอิน Hive SDK ปลั๊กอินจะจัดการโดยอัตโนมัติเมื่อแอปเริ่มทำงาน ดังนั้นจึงไม่จำเป็นต้องทำงานเพิ่มเติมในโค้ดแอป
การลบโค้ดเชื่อมต่อเดิมสำหรับเวอร์ชันก่อน v4 26.4.1
หากคุณใช้เวอร์ชันก่อน Hive SDK v4 26.4.1 ให้ลบการแก้ไขเดิมเมื่ออัปเดต
-
ลบโค้ดเรียก HIVEAppDelegate ด้วยตนเอง: อ้างอิงขั้นตอน "การใช้ HIVEAppDelegate (iOS)" ในคู่มือก่อนหน้า แล้วลบโค้ดบล็อกลักษณะต่อไปนี้ที่เพิ่มไว้ระหว่างการเริ่มต้นแอปออกจากโปรเจกต์
-
ลบโค้ด subscribe deep link delegate: อ้างอิงขั้นตอน "การเพิ่มโค้ด Promotion สำหรับการตั้งค่า Deep Link (iOS)" ในคู่มือก่อนหน้า แล้วลบโค้ด subscribe และ handler ลักษณะต่อไปนี้ที่เพิ่มไว้ใน
GameInstanceหรือคลาสที่คล้ายกัน-
ลอจิกภายใน handler อาจถูก implement เป็น
Promotion::processURI(...)หรือFHivePromotion::ProcessURI(...)ขึ้นอยู่กับอินเทอร์เฟซที่คุณใช้// Subscription code (GameInstance::Init, etc.) - remove FIOSCoreDelegates::OnOpenURLwithOptions.AddUObject(this, &UMyGameInstance::ApplicationOpenURL); // Handler - remove (including the declaration in the header) void UMyGameInstance::ApplicationOpenURL(UIApplication* application, NSURL* url, NSDictionary* options) { Promotion::processURI(std::string([[url absoluteString] UTF8String])); }
-
-
ลบการเรียก bootstrap trigger ใน Blueprint: ลบฟังก์ชัน trigger ที่กำหนดเองในแอปและถูกเรียกจาก Blueprint เช่น
RemoveOpenURLDelegate()รวมถึงโหนดเรียกที่เกี่ยวข้องทั้งหมดหากลบการ subscribe delegate ภายในแอปข้างต้นอย่างถูกต้องแล้ว โค้ดแก้ไขที่เกี่ยวข้องกับ openURL ซึ่งเคยนำไปใช้กับ custom engine โดยตรง (
IOSAppDelegate.h,IOSAppDelegate.cpp) จะไม่ส่งผลต่อการทำงานของเอนจิน ดังนั้นสามารถปล่อยโค้ดดังกล่าวไว้ได้โดยไม่ต้องลบหรือย้อนกลับ
