วิธีแก้ไข“ SWIFT_VERSION '3.0' ไม่รองรับเวอร์ชันที่รองรับคือ 4.0, 4.2, 5.0” เกิดข้อผิดพลาดใน Xcode 10.2


118

ฉันพยายามเรียกใช้ที่ดาวน์โหลดจากแอพพยายามเปิดใน Xcode และมีข้อผิดพลาด:

"การแสดงข้อความล่าสุด
: -1: SWIFT_VERSION" 3.0 "ไม่รองรับเวอร์ชันที่รองรับคือ 4.0, 4.2, 5.0 (ในเป้าหมาย" SimpleWeather ")"

เพิ่มภาพหน้าจอแล้ว


อัปเดตสิ่งต่างๆ 3.0 เป็นเก่าสวยในแง่ของความเร็ววิวัฒนาการสวิฟท์
Vadian

2
ฉันใช้ Xcode 10.2 และลองเปิด 3.0 เก่า แต่ไม่สามารถเรียกใช้โปรแกรมได้เนื่องจากฉันมีข้อผิดพลาด
vlad uvarov

เปิดและอัปเดตโครงการใน Xcode 10.1 เป็นไปได้ที่จะมี Xcode หลายเวอร์ชันบนดิสก์
Vadian

1
อัปเดตเวอร์ชัน Xcode; (
vlad uvarov

7
พระเจ้าช่วย!!! ฉันใช้เวลาสามชั่วโมงในการดาวน์โหลด XCode 10.2 เพื่อพบว่าฉันไม่สามารถสร้างแอปของฉันได้อีกต่อไป ฉันไม่มีข้อมูลสำรองของ XCode 10.1! นี่เป็นเพียงความบ้าคลั่งที่ Apple ควรจ่ายให้ฉัน
vojta

คำตอบ:


99

เลือกเป้าหมาย 'SimpleWeather' ในโครงการและเปลี่ยนเวอร์ชันภาษาเป้าหมาย -> การตั้งค่าการสร้าง -> ภาษาคอมไพเลอร์ Swift -> เลือก 5, 4.2 ฯลฯ

ภาพของการตั้งค่าการสร้างสำหรับการเปลี่ยนภาษาของคอมไพเลอร์


76

******** วิธีที่ง่ายที่สุด: **********

1. คลิกที่ POD ในคอลัมน์ด้านซ้าย

2. ในคอลัมน์กลางให้เลือกพ็อดที่คุณต้องการจากนั้นไปที่ "การตั้งค่าการสร้าง" ที่แผงด้านขวาบน

3. จากนั้นค้นหา "Swift Language Version" และเปลี่ยนเป็นเวอร์ชันที่รู้จัก

ใส่คำอธิบายภาพที่นี่ ใส่คำอธิบายภาพที่นี่


1
ขอบคุณ. นี่คือคำตอบที่กำลังมองหา
Vinu Jacob

ภาพหน้าจอเป็นความช่วยเหลือในการค้นหา
โม

53

สำหรับ Xcode 10.1 ให้เลือกไฟล์ Pods ของคุณ

ใส่คำอธิบายภาพที่นี่

-> ไปที่การตั้งค่าการสร้าง -> เลือก Pod ของคุณ -> ค้นหา "Swift" -> ไปที่ "เวอร์ชันภาษา Swift" -> ตั้งค่าเป็นเวอร์ชันภาษาที่ต้องการ

ใส่คำอธิบายภาพที่นี่


9
โซลูชันนี้ใช้ไม่ได้หากเป็นเวอร์ชัน Swift 3.xและคุณมี Xcode เวอร์ชันที่ใหญ่กว่า10.2
Juan P. Ortiz

12

ฉันทำตามคำแนะนำในหน้านี้แล้ว แต่ข้อผิดพลาดไม่สามารถแก้ไขได้ สุดท้ายก็เข้าไป

$ vim MyProject.xcodeproj/project.pbxproj

และพบสองกรณีที่

SWIFT_VERSION = 3.0;

ยังคงถูกอ้างถึง ฉันเปลี่ยนเป็น 5.0 และข้อผิดพลาดก็หายไป ไม่แน่ใจว่าทำไมสองคนนั้นถึงยังอยู่ที่นั่น


1
ฉันใช้คำแนะนำของ Appleสำหรับการโยกย้ายจาก Swift 3.0 เป็น 5.0 แต่ผู้ช่วยไม่แสดงคำแนะนำใด ๆ ทันทีที่ฉันแก้ไขสองบรรทัดนี้ในคำตอบข้างต้นข้อความแจ้งให้ฉันย้ายข้อมูลทันที ขอบคุณสำหรับการแบ่งปันวิธีนี้@Forrest !
Kareem Jeiroudi

! น่ากลัว ดีใจจังที่ช่วยคุณได้ @KareemJeiroudi
Forrest

2
ขอบคุณมันช่วยฉันได้มาก ฉันใช้เวลาครึ่งชั่วโมงและหาวิธีแก้ปัญหานี้ ...
Dharmik

2
สิ่งนี้ได้ผลสำหรับฉันเช่นกัน กำลังทำชั้นเรียนและโครงการตัวอย่างอยู่ในเวอร์ชันที่ไม่ถูกต้อง
sixstring


10

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

ใส่คำอธิบายภาพที่นี่


7

ดูเหมือนว่าแอปอาจมีรหัส Swift เวอร์ชันเก่าเช่น Swift 3.0 ในกรณีของคุณ ในการเปิดตัว Xcode เวอร์ชัน 10.2 ได้เปิดตัวเวอร์ชัน Swift 5.0 Xcode 10.2 ไม่รองรับคอมไพเลอร์สำหรับเวอร์ชัน Swift 3.0 คุณสามารถเปลี่ยนคอมไพเลอร์จากBuild Settings -> Swift Compiler - Language -> Swift Language Version -> Change it to Swift 5ไฟล์. หากรหัสของคุณเข้ากันได้กับเวอร์ชันภาษานั้นรหัสจะเรียกใช้รหัสโดยไม่มีข้อผิดพลาด

อย่างไรก็ตามโหมดความเข้ากันได้ของ Swift 3 จะไม่รองรับในคอมไพเลอร์ Swift 5 Swift 4.2 เป็นรุ่นสุดท้ายของ Swift ที่รองรับโหมด Swift 3 มีการเปลี่ยนแปลงที่สำคัญทั้งพื้นผิวของภาษาและการใช้งานภายในในรุ่นถัดจาก Swift 3 ซึ่งจะเป็นพื้นฐานของแหล่งที่มาในอนาคต (และยั่งยืน) และเสถียรภาพแบบไบนารี

อ้างอิงลิงค์ด้านล่างสำหรับรายละเอียดเพิ่มเติม https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes/swift_5_release_notes_for_xcode_10_2

หากคุณต้องการเรียกใช้แอปที่มีรหัสเวอร์ชัน Swift ที่เก่ากว่าคุณต้องใช้ Xcode เวอร์ชันเก่ากว่า คุณสามารถใช้ Xcode เวอร์ชัน 10.1 ซึ่งเป็นคอมไพเลอร์ที่รองรับเวอร์ชัน Swift 3.0

อีกวิธีหนึ่งคือการย้ายรหัส Swift เก่าของคุณไปยังเวอร์ชัน Swift เวอร์ชันใหม่ คุณสามารถย้ายข้อมูล Swift 3.0 ไปเป็น Swift 4.0 ในเวอร์ชัน Xcode 10.1 ได้

สำหรับคู่มือการย้ายข้อมูลโปรดดูที่ https://swift.org/migration-guide-swift4/


5

ฉันเจอปัญหานี้ในขณะที่พัฒนา Cocoapod ฉันมี.swift-versionไฟล์เก่าใน repo ของฉันที่ระบุ Swift 3.0

การวิ่งpod lib lint --verboseทำให้ฉันได้รับคำตอบที่เป็นประโยชน์นี้:

โปรดลบ.swift-versionไฟล์ซึ่งตอนนี้เลิกใช้งานแล้วและใช้swift_versionแอตทริบิวต์ภายใน podspec ของคุณเท่านั้น

ฉันลบไฟล์และเพิ่มลงspec.swift_version = '5.0'ในไฟล์ podspec เพื่อแก้ไขปัญหา


5
  1. ลองดู:
    1. คลิกที่ชื่อโครงการ
    2. คลิกเป้าหมาย
    3. คลิกที่สร้างการตั้งค่า
    4. ที่เวอร์ชันภาษา Swift: เลือก Swift 4

ใส่คำอธิบายภาพที่นี่

ใส่คำอธิบายภาพที่นี่


5

ฉันเปิดไฟล์MyProject.xcodeproj (โดยใช้โปรแกรมแก้ไข VSCode)

และฉันพบบางบรรทัดที่

SWIFT_VERSION = 3.0;

(ประมาณบรรทัด 400 ที่ระบุไว้/* Begin XCBuildConfiguration section */)

แก้ไขเป็น SWIFT_VERSION = 5.0 หรืออื่น ๆ หลังจากนั้นฉันก็สามารถสร้างและดำเนินโครงการได้


3

ค้นหา Swift และดับเบิลคลิกจากนั้นเปลี่ยนเวอร์ชันที่กระทำผิดแต่ละรายการ

ใส่คำอธิบายภาพที่นี่


1

หากคุณมีไฟล์พ็อดหลายไฟล์เหมือนที่ฉันทำและคุณมีปัญหาในการค้นหาพ็อดด้วย SWIFT_Version = 3.0 ให้ลองใช้แถบค้นหา


0

1) เปลี่ยนเวอร์ชันของพ็อดใน podfile (เนื่องจากห้องสมุดเขียนเวอร์ชันเก่าที่รวดเร็ว)

2) "ติดตั้งพ็อด" บนเทอร์มินัล


0

ฉันยังใหม่กับการพัฒนา iOS หลังจากที่ฉันทำตามคำตอบข้างต้นทั้งหมดแล้วฉันก็ยังคงได้รับข้อผิดพลาดเดิม ฉันใช้ Xcode 11 และดาวน์โหลดตัวอย่าง " FoodTracker " จากเว็บไซต์Apple Developerและได้รับข้อผิดพลาดเดียวกันหลังจากพยายามสร้าง ฉันพบว่าโครงการมีการตั้งค่าหลายอย่างที่อ้างถึงเวอร์ชันภาษา Swift หลังจาก VIM เนื้อหาไฟล์โครงการ ดังนั้นฉันจึงแก้ไขปัญหานี้โดยตั้งค่า "Project> FoodTracker" ก่อนและ"เป้าหมาย> FoodTracker" และ "TARGETS> FoodTrackerTests"เวอร์ชันภาษา Swift เป็น 5.0 หวังว่าจะช่วยได้

การตั้งค่าเวอร์ชันภาษา Swift ในโครงการและเป้าหมายทั้งหมด


-1
  1. เปิด MyProject.xcodeproj / project.pbxproj ในโปรแกรมแก้ไข (eq Sublime)

ตัวอย่าง Calculator.xcodeproj

  1. เปลี่ยนชื่อ SWIFT_VERSION ทั้งหมด = 3.0; เปลี่ยนชื่อ SWIFT_VERSION ทั้งหมด = 5.0;

ใส่คำอธิบายภาพที่นี่

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