คำเตือน Xcode 7 Beta: การวางแนวอินเทอร์เฟซและเปิด Storyboard


131

ฉันเปิดโปรเจ็กต์ของฉันใน Xcode 7 beta และฉันได้รับคำเตือนต่อไปนี้ซึ่งฉันไม่ได้รับใน Xcode 6:

 All interface orientations must be supported unless the app requires
 full screen.


 A launch storyboard or xib must be provided unless the app requires
 full screen.

แอพนี้ใช้การวางแนวในแนวตั้งสำหรับอุปกรณ์เท่านั้นและฉันตั้งค่าไว้อย่างนั้น ฉันยังมีสตอรี่บอร์ดสำหรับอินเทอร์เฟซทั้ง iphone และ ipad ฉันไม่สามารถระบุได้ว่าทำไมฉันจึงได้รับคำเตือนเหล่านี้ นี่คือบั๊ก Xcode 7 beta หรือไม่


ดูเหมือนบั๊ก ตรวจสอบฟอรัมนักพัฒนาของ Apple ความสุขของการเป็นผู้ทดสอบเบต้า: p
Sam B

คำตอบ:


274

คำเตือนนี้เป็นคำเตือนใหม่สำหรับ iOS 9 เนื่องจากรองรับแอพที่ปรับขนาดได้พร้อมการรองรับหลายหน้าต่าง ก่อนหน้านี้แอพจะปรับขนาดอัตโนมัติให้เป็นอุปกรณ์ใหม่ที่มีความละเอียดการแสดงฮาร์ดแวร์ที่แตกต่างกันกับแอพในอิมเมจการเปิดตัว (ซึ่งโดยพื้นฐานแล้ว iOS จะตรวจจับความละเอียดของอินเทอร์เฟซที่รองรับ) ตอนนี้แอพที่รองรับหลายหน้าต่างต้องกำหนดความละเอียดที่รองรับโดยรวมอิมเมจเปิดตัวหรือสตอรี่บอร์ดสำหรับหน้าจออุปกรณ์ทุกประเภท

เว้นแต่คุณจะเขียนแอปของคุณใหม่เพื่อรองรับหลายหน้าต่างคุณจะต้องใช้ "เต็มหน้าจอ" นี่เป็นการบอกใบ้ iOS ว่าคุณไม่รองรับมัลติวินโดว์และโดยพื้นฐานแล้วทำให้ iOS 9 ทำงานเหมือนกับเวอร์ชันก่อนหน้าในเรื่องนี้

ดังนั้นหากคุณกำลังส่งการอัปเดตแอปสำหรับ iOS 9 และคุณไม่รองรับหลายหน้าต่างสิ่งที่คุณต้องทำก็คือไปที่การตั้งค่าเป้าหมายโครงการเลือกทั่วไปและภายใต้ 'ข้อมูลการปรับใช้' ให้มองหากล่องกาเครื่องหมาย เรียกว่า 'ต้องเต็มหน้าจอ' ติ๊กถูกแล้วคำเตือนจะหายไป

ไม่ใช่บั๊กอย่างแน่นอน หากมีคำเตือนนี้แสดงว่าแอปของคุณอาจมีปัญหาในระหว่างการส่ง ไม่แน่ใจเกี่ยวกับเรื่องนี้เพราะฉันยังไม่ได้ส่งแอปที่มี iOS 9 GM Seed แต่ฉันจะทำเครื่องหมายในช่อง :-)


4
คำตอบนี้ดีกว่าคำตอบชั้นนำในปัจจุบันมาก ขอขอบคุณที่อธิบาย "เหตุผล" ของการเปลี่ยนแปลงนี้และ "อะไร" ของการตั้งค่าเต็มหน้าจอที่แท้จริง (ฉันนึกภาพออกว่ามันเป็นการตั้งค่าเดียวกันกับที่เกมใช้กำจัดแถบหัวเรื่อง แต่ดูเหมือนว่าจะไม่เป็นเช่นนั้น)
natevw

@natevw แต่ไม่รวบรัดเท่ากับคนที่บอกให้ "ติ๊กถูกทุกช่อง" คำตอบนี้ทำให้ฉันเชื่อว่าฉันต้องการภาพหน้าจอเปิดตัวใหม่จำนวนมากเพื่อลบคำเตือน ...
dcow

1
@dcow - คุณอ่านผิดแล้ว ฉันระบุไว้อย่างชัดเจนว่าคุณต้องเพิ่มภาพเปิดตัวเท่านั้นหรือทำเครื่องหมายที่ช่องต้องใช้แบบเต็มหน้าจอ ไม่ค่อยมีคำตอบง่ายๆสำหรับสิ่งเหล่านี้ ... ขึ้นอยู่กับสิ่งที่คุณต้องการบรรลุ
Simon Tillson

1
@SimonTillson คุณอ่านความคิดเห็นของฉันผิดและไม่ได้ดูคำตอบด้านล่างอย่างชัดเจน ฉันไม่ได้พูดถึงกล่องแบบเต็มหน้าจอที่ต้องการ การแก้ไขที่แท้จริงคือการรองรับการวางแนวทั้งหมด สิ่งนี้ไม่จำเป็นต้องเพิ่มภาพเปิดตัว นั่นหมายถึงการตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องทั้งหมดภายใต้การวางแนวอุปกรณ์ในการตั้งค่าโครงการทั่วไป บางทีคุณอาจบอกเป็นนัยว่าโดยการแนะนำการแก้ไขคือ"รวมภาพเปิดตัวหรือสตอรีบอร์ดสำหรับหน้าจออุปกรณ์ทุกประเภท"แต่อย่างที่บอกไม่ได้กระชับเท่ากับคำตอบที่บอกคุณอย่างชัดเจน
dcow

@dcow OP เป็นเรื่องเกี่ยวกับการแก้คำเตือนเพียงอย่างเดียวมันไม่ได้ถามเกี่ยวกับวิธีการสนับสนุนหลายหน้าต่าง เนื่องจากหลายหน้าต่างทำงานได้อย่างถูกต้องที่ความละเอียดดั้งเดิมเท่านั้นคุณจึงมีสิทธิ์ที่จะอัปโหลดรูปภาพสำหรับหน้าจออุปกรณ์ทุกประเภทและควรเลือกทิศทางที่ใช้ทั้งหมด ฉันยังไม่เข้าใจว่าปัญหาเดิมของคุณกับคำตอบของฉันคืออะไรเนื่องจากผู้ใช้ส่วนใหญ่เพียงแค่ต้องการทราบความหมายของต้องเต็มหน้าจอและ / หรือวิธีกำจัดคำเตือน
Simon Tillson

62

เพียงไปที่เป้าหมายของคุณคลิกแท็บ "ทั่วไป" ค้นหาส่วน "ข้อมูลการทำให้ใช้งานได้" เลือก "ต้องใช้แบบเต็มหน้าจอ" :)

มันง่ายมากใช่มั้ย?

BTW นี่ไม่ใช่ทางออกที่ดีที่สุด จะมีทางออกที่ดีขึ้นเรื่อย ๆ แต่เมื่อฉันตอบคำถามนี้ฉันคิดเพียงว่าจะฆ่าคำเตือนได้อย่างไร ฉันไม่ได้อธิบายว่าทำไมต้องทำ แต่จะแก้ปัญหานี้อย่างไร Xcode รุ่นเบต้าอาจมีการเปลี่ยนแปลงคุณลักษณะดังนั้นฉันเพียงแค่ให้ "วิธีแก้ปัญหา" ในช่วงแรกนั้น ดังนั้นหากคุณคิดว่าวิธีแก้ปัญหาของฉันเป็นวิธีแก้ปัญหาโปรดลงคะแนนสำหรับคำตอบอื่น ๆ ที่ดีกว่า แต่นี่ไม่ใช่เหตุผลในการลงคะแนน ขอบคุณ :)


15
นี่ไม่ใช่วิธีแก้ปัญหาอย่างแน่นอนเป็นเพียงวิธีแก้ปัญหาแบบครึ่งๆกลางๆ ด้วยความเคารพฉันไม่เห็นด้วยกับคำตอบของคุณ
kbpontius

อีกวิธีหนึ่งคือตรวจสอบ "Device Orientation" ทั้งหมดในที่เดียวกันและระบุไฟล์ xib หรือ storyboard แทนไฟล์รูปภาพ บางครั้งเราต้องทำการเลือก: เลือก "ต้องใช้แบบเต็มหน้าจอ" หรือทั้งหมดใน "Device Orientation" เนื่องจากเราถูกขอให้ทำโดย Xcode :)
YangXiaoyu

6
@kpont คุณคาดหวังอะไรจากการแก้ปัญหา? เมจิกงับนิ้วเพื่อลบคำเตือน? Xcode 7 มีข้อมูลเมตาเพิ่มเติมที่จำเป็นและคุณต้องระบุ หากคุณคิดว่านี่เป็นข้อผิดพลาดคุณได้เปิดรายงานข้อบกพร่องกับ Apple หรือไม่?
Leo Natan

6
วิธีแก้ปัญหานี้ใช้ได้ในบริบทของ "แอปของฉันสร้างขึ้นและทำงานได้ดีเมื่อวานนี้ แต่วันนี้ Xcode ส่งคำเตือน" เห็นได้ชัดว่า Apple ต้องการให้นักพัฒนาทุกคนอัปเดตทุกแอปเพื่อให้ทำงานได้เมื่อเปิดใช้งานคุณสมบัติทั้งหมด อย่างไรก็ตาม "ที่นี่ในโลกแห่งความเป็นจริง" บางครั้งเราเพียงแค่ต้องผลักดันการแก้ไขข้อบกพร่องหรือโครงสร้างต่อไปและจัดการกับภูมิทัศน์ของ Apple ที่เปลี่ยนแปลงตลอดเวลา วิธีแก้ปัญหานั้นถูกต้อง ในทำนองเดียวกันแนวคิดของการเพิ่ม xibs / สตอรี่บอร์ดเพื่อรองรับการวางแนวก็ใช้ได้ เย้!
Olie

4
"วิธีแก้ปัญหาครึ่งอบ" ที่ Apple เพิ่มช่องทำเครื่องหมายในการตั้งค่าทั่วไป ...
ริเวร่า

15

เนื่องจาก Apple ได้เพิ่มความสามารถในการทำงานหลายอย่างใน iOS 9 สิ่งที่คุณต้องบอก Xcode ก็คือแอปของคุณต้องใช้แบบเต็มหน้าจอ

เพิ่มคีย์ UIRequiresFullScreen ในไฟล์ Info.plist ของโปรเจ็กต์ Xcode ของคุณและใช้ค่าบูลีน YES

หากต้องการอ่านเพิ่มเติมโดยทั่วไป
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html


11

ฉันเพิ่งเห็นข้อผิดพลาดนี้และหลังจากอ่านความคิดเห็นแล้วฉันก็ต้องการรองรับการใช้งาน iPad และหลายหน้าต่าง ทำได้ง่ายๆเพียงแค่ตรวจสอบตัวเลือกการวางแนวอุปกรณ์ "แนวนอนซ้าย" และ "แนวนอนขวา" และตรวจสอบให้แน่ใจว่า UI ของฉันรองรับสิ่งเหล่านี้

วิธีที่ดีที่สุดที่ฉันพบเพื่อทดสอบการรองรับหลายหน้าต่างที่ดีคือการใช้เครื่องจำลองที่ปรับขนาดได้หรือดีกว่าในความคิดของฉันใช้ iPad Pro ใน XCode 7.1 และเปิดใช้งานคุณสมบัติหลายหน้าต่างโดยลากจากทางขวา หลังจากทำตามขั้นตอนเหล่านี้แอพของฉันรองรับคุณสมบัติเหล่านี้และฉันสามารถดูสิ่งที่ต้องอัปเดตหรือเพิ่มประสิทธิภาพได้อย่างรวดเร็วเพื่อรองรับฟีเจอร์เหล่านี้อย่างเต็มที่


"วิธีที่ดีที่สุดที่ฉันพบในการทดสอบการรองรับหลายหน้าต่างที่ดีคือการใช้เครื่องจำลองที่ปรับขนาดได้หรือ IMO ที่ดีกว่าใช้ iPad Pro ใน XCode 7.1 และเปิดใช้งานคุณลักษณะหลายหน้าต่างโดยลากจากด้านขวา" นี่เป็นคำตอบที่แท้จริงในน้ำเสียงสนทนา คุณสามารถชี้แจงในความคิดเห็นของคุณก่อนการลงคะแนน
d2burke

จุดดีฉันพลาดรูปแบบการสนทนา ฉันขอโทษ. แต่คุณอาจต้องการเขียนใหม่ - ฉันพลาดครั้งแรกและฉันเป็นเจ้าของภาษา
Abizern

ฉันเข้าใจ :) ขอบคุณสำหรับการตอบสนอง ฉันจะอัปเดตทันที
d2burke

2
นี่คือคำตอบสำหรับคำถามนี้ ขอบคุณ!
Aviel Gross

คว่ำไม่ถูกเลือกสำหรับฉัน การเปิดใช้งานจะลบคำเตือน ฉันคิดว่านี่เป็นคำตอบที่ถูกต้องเช่นกัน
neelabh

8

ตามค่าเริ่มต้นการวางแนวอุปกรณ์จะเปิดใช้งานเฉพาะแนวตั้งแนวนอนซ้ายและแนวนอนขวาเท่านั้น คุณต้องเปิดใช้งาน Upside Down ด้วย

ป้อนคำอธิบายภาพที่นี่


3

“ Clean Build Folder” และสร้างอีกครั้ง

All interface orientations must be supported unless the app requires full screen.วันนี้ฉันได้รับข้อความใน Xcode 7.3.1 ดูเหมือนจะไม่มีเหตุผลไม่มีการเปลี่ยนแปลงใด ๆ ที่ฉันทำ

  • ผมทำมีLaunchScreen.storyboard
  • ฉันได้ไม่ได้Requires full screenตรวจสอบ

ฉันลองใช้การซ้อมรบตามปกติเมื่อ Xcode ทำให้ฉันงงงวยเกี่ยวกับข้อผิดพลาดใหม่สำหรับเหตุผลที่ไม่ดี:

  1. กดปุ่มOptionค้างไว้ขณะคลิกProductเมนู
  2. เลือกClean Build Folder( ไม่ Clean )
  3. เลือก>ProductBuild

ไม่มีปัญหาอีกต่อไป หลังจากเซสชันการสร้างและรันอีกสองสามครั้งข้อความแสดงข้อผิดพลาดยังไม่ปรากฏขึ้นอีก


0

คุณได้ให้ "Launch Storyboard" สำหรับแอปของคุณหรือไม่ หรือคุณเพิ่งจัดเตรียมภาพนิ่งสำหรับขนาดต่างๆ

ตรวจสอบที่นี่: https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html


ฉันใช้อิมเมจเปิดตัวไม่ใช่สตอรี่บอร์ดเปิดตัว ฉันคิดว่าสตอรีบอร์ดเปิดตัวเป็นทางเลือก ฉันเดาว่าขอแนะนำอย่างยิ่งให้ใช้สตอรี่บอร์ดเปิดตัวแทนภาพเปิดตัวใน Xcode 7 นั่นคือเหตุผลที่เตือน แอปเวอร์ชันปัจจุบันได้รับการอนุมัติจาก Apple แล้วฉันเดาว่าฉันจะรวมสตอรี่บอร์ดเปิดตัวในเวอร์ชันถัดไปซึ่ง Xcode 7 จะออกสู่สาธารณะแล้ว ขอบคุณ
bachma0507

ฉันมีปัญหาเดียวกันดังนั้นเพื่อยืนยัน @cbiggin คุณต้องมีสตอรีบอร์ดเปิดตัวเพื่อกำจัดข้อผิดพลาดนี้หรือไม่?
amitsbajaj

ไม่สามารถยืนยันได้ว่าสิ่งที่ฉันคิดตามทฤษฎีอาจทำให้เกิดปัญหา ลองเพิ่ม Launch Storyboard แล้วดูว่าหายไปหรือไม่ ถ้าเป็นเช่นนั้นให้เพิ่มคะแนนคำตอบของฉัน :)
cbiggin

1
โปรดทราบว่าคุณสามารถใช้สตอรี่บอร์ดสำหรับ iOS เท่านั้น> = 8
troppoli

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.