আমি কীভাবে সুইফটের কোন সংস্করণটি ব্যবহার করছি তা দেখতে পাবো?


566

আমি সবেমাত্র এক্সকোডের মধ্যে একটি নতুন সুইফ্ট প্রকল্প তৈরি করেছি। আমি ভাবছি যে এটি সুইফটের কোন সংস্করণ ব্যবহার করছে?

এক্সকোড বা টার্মিনালে আমি কীভাবে দেখতে পাব যে আমি আমার প্রকল্পের অভ্যন্তরে সুইফটের কোন সংস্করণ ব্যবহার করছি?


7
স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 29140476/ … শিরোনাম ছাড়াও আমি এই প্রশ্নের কোনও মিল খুঁজে পাই না যা এই প্রশ্নের নকল হিসাবে এটি লেবেল করার পক্ষে যথেষ্ট । এই প্রশ্নের সারমর্মটি কীভাবে সুইফটের সংস্করণটি প্রোগ্রামিকভাবে খুঁজে পাওয়া যায় তা নয় , তবে কীভাবে একটি সাধারণ উপায়ে সুইচটির সংস্করণটি খুঁজে পাওয়া যায় (টার্মিনাল বা এক্সকোড বা অন্যান্য মাধ্যমে)। এটি একটি বড় পার্থক্য।
ডেভিড স্নাবেল

উত্তর:


405

প্রজেক্ট বিল্ড সেটিংসে 'সুইফ্ট সংকলক - ভাষা' ব্লক রয়েছে, যা কী-মান বিন্যাসে সুইফট ভাষা সংস্করণ সম্পর্কিত তথ্য সঞ্চয় করে। এটি আপনাকে আপনার এক্সকোডের জন্য সমস্ত উপলব্ধ (সমর্থিত) সুইফট ভাষা সংস্করণ এবং সক্রিয় সংস্করণটিকেও টিক চিহ্নের সাহায্যে প্রদর্শন করবে।

প্রকল্প ► (আপনার প্রকল্পের লক্ষ্য নির্বাচন করুন) Settings সেটিংস তৈরি করুন the (অনুসন্ধান বারে 'swift_version' টাইপ করুন) সুইফ্ট সংকলক ভাষা ► সুইফট ভাষা সংস্করণ it ভাষা খোলার জন্য এটি ক্লিক করুন (এবং তালিকার যে কোনও একটিতে টিক চিহ্ন থাকবে) -item, এটি বর্তমান সুইফ্ট সংস্করণ হবে)।

সহজে বোঝার জন্য এই স্ন্যাপশটটি দেখুন:

বর্ণিত অঞ্চলগুলি হাইলাইট করে এক্সকোড


কোড অনুসরণ করার সহায়তায়, প্রোগ্রামিকভাবে আপনি আপনার প্রকল্প দ্বারা সমর্থিত সুইফ্ট সংস্করণটি খুঁজে পেতে পারেন।

#if swift(>=5.2)
print("Hello, Swift 5.2")

#elseif swift(>=5.1)
print("Hello, Swift 5.1")

#elseif swift(>=5.0)
print("Hello, Swift 5.0")

#elseif swift(>=4.2)
print("Hello, Swift 4.2")

#elseif swift(>=4.1)
print("Hello, Swift 4.1")

#elseif swift(>=4.0)
print("Hello, Swift 4.0")

#elseif swift(>=3.2)
print("Hello, Swift 3.2")

#elseif swift(>=3.0)
print("Hello, Swift 3.0")

#elseif swift(>=2.2)
print("Hello, Swift 2.2")

#elseif swift(>=2.1)
print("Hello, Swift 2.1")

#elseif swift(>=2.0)
print("Hello, Swift 2.0")

#elseif swift(>=1.2)
print("Hello, Swift 1.2")

#elseif swift(>=1.1)
print("Hello, Swift 1.1")

#elseif swift(>=1.0)
print("Hello, Swift 1.0")

#endif

খেলার মাঠটি ব্যবহার করার ফলাফল এখানে রয়েছে ( এক্সকোড ১১.x সহ )

এখানে চিত্র বর্ণনা লিখুন


10
আমি মনে করি এটি সঠিক উত্তর। টার্মিনাল কল করার চেয়ে সহজ। (বিশেষত যদি আপনার কাছে এক্সকোডের আলাদা সংস্করণ ইনস্টল থাকে)
মাইক কেসকিনভ

17
এটি সঠিক উত্তর কারণ সুইফ্ট সংস্করণ প্রতি লক্ষ্য ভিত্তিতে কনফিগার করা আছে।
অ্যান্ড্রু পল সিমন্স

2
আমি আমার প্রজেক্টে এক্সকোড 8.1
লগঅফ

6
আপনি এই সম্পত্তিটি
এক্সকোডের

1
@ জোনমিসক্লুং - এক্সকোড 10.1 এও একই বিকল্পটি উপলব্ধ। আমি ঠিক এটি পরীক্ষা করেছিলাম।
ক্রুনাল

500

আমি যা করি তা টার্মিনালে বলা হয়:

$ xcrun swift -version

এক্সকোড 6.3.2 এর আউটপুট হল:

Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)

অবশ্যই এটি ধরে নিয়েছে যে আপনি আপনার xcrunএক্সকোডের অনুলিপিটি সঠিকভাবে নির্দেশ করছেন। যদি আমার মতো আপনিও এক্সকোডের বেশ কয়েকটি সংস্করণ জাগ্রত করছেন, তা উদ্বেগের কারণ হতে পারে! এটি নিশ্চিত করার জন্য, বলুন

$ xcrun --find swift

এবং এক্সকোডের দিকে তাকান যা এটি আপনাকে দেখায়। উদাহরণ স্বরূপ:

/Applications/Xcode.app/...

যদি এটি আপনার এক্সকোড হয় তবে আউটপুটটি -versionসঠিক is যদি আপনাকে পুনরায় নিয়োগের দরকার হয় তবে xcrunএক্সকোডের অবস্থান পছন্দ প্যানে কমান্ড লাইন সরঞ্জাম পপ-আপ মেনুটি ব্যবহার করুন।


8
আপনি xcode-select -pএক্সকোড যে পাথটি Xcrun ব্যবহার করবেন তা মুদ্রণ করতে এবং sudo xcode-select -s /path/to/Xcode.appএটি পরিবর্তন করতেও ব্যবহার করতে পারেন ।
জ্যাক লরেন্স

4
আমি কেবল আইওএস ডেভলপমেন্ট শিখতে শুরু করেছি এবং আমি অবাক হয়েছি যে এক্সকোড আপনাকে সুইফ্টের সংস্করণ বেছে নিতে দেয় না এমনকি জিইউআই থেকে সংস্করণটি আপনাকে জানায় না।
অ্যালেক্স

@ রাদেকউইলজাকাক আপনি "হওয়া উচিত" দ্বারা কী বোঝাতে চাইছেন তা আমি জানি না। আমি সবেমাত্র পোস্ট কমান্ডটি অনুলিপি করে টার্মিনালে পেস্ট করেছি এবং রিটার্নটিকে হিট করেছি এবং এটি কাজ করে। সুতরাং সম্ভবত অন্য বিকল্প আছে, কিন্তু আমি যা বলেছিলাম তা ভুল নয়।
ম্যাট

1
এটি আমাকে ভুল উত্তর দিয়েছে। কারণ টার্গেটে সুইফ্টটি কনফিগার করা হয়েছে। সেরা উত্তরের জন্য @ ক্রুনাল থেকে নীচের উত্তরটি দেখুন।
অ্যান্ড্রু পল সিমন্স

আমি সমস্ত প্রকল্পের সাথে একমত "সঠিক উপায়টি প্রতি প্রকল্পের জন্য SWIFT_VERSION সেট করা"। তবে, ৮.২-এর মতো পূর্বের এক্সকোড সংস্করণগুলিতে ইউআই-তে স্পষ্টভাবে বলা হয়নি যে প্রজেক্টে এক্সকোডের কোন সংস্করণটি সমর্থনযোগ্য এবং হ্যাঁ, না, অনির্ধারিত ইউআইতে কেবল "ইউজ লেগ্যাসি সুইফট ল্যাঙ্গুয়েজ ভার্সন" রয়েছে। সর্বাধিক সুইফট সংস্করণটি কী কী উপলভ্য তা দ্রুত উত্তর জিজ্ঞাসা করতে সক্ষম হবার জন্য কমান্ড লাইন পদ্ধতির ব্যবহার অত্যন্ত কার্যকর।
truedat101

104

টার্মিনালটি খুলুন এবং লিখুন:

swift -version

12
এটি অবিচ্ছিন্নভাবে সুইডোর সংস্করণ নয় যা এক্সকোডটি দেখে। এছাড়াও, আপনি এক্সকোড ছাড়াই দ্রুত থাকতে পারবেন।
asiby

64

এক্সকোড 8.3 থেকে আপনার টার্গেটটি যে সুইফট সংস্করণটি ব্যবহার করছে তার মান সহ Build Settingsকী আছে Swift Language Version

পুরানো এক্সকোডগুলির জন্য এই সমাধানটি ব্যবহার করুন, টার্মিনালটি খুলুন এবং নিম্নলিখিত কমান্ড (গুলি) টাইপ করুন

কেস 1: আপনি কেবল একটি এক্সকোড অ্যাপ্লিকেশন ইনস্টল করেছেন

swift -version

কেস 2: আপনি একাধিক এক্সকোড অ্যাপ্লিকেশন ইনস্টল করেছেন

  • স্যুইচ করুন active developer directory( আপনি যে অ্যাপ্লিকেশন ডিরেক্টরিটি স্যুইফ্ট সংস্করণ পরীক্ষা করতে চান তা Xcode_7.3.appথেকে আপনার এক্সকোড অ্যাপ্লিকেশন ফাইলের নামের সাথে নিম্নলিখিত কমান্ড থেকে প্রতিস্থাপন করুন )

     sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
  • তারপর

     swift -version

দ্রষ্টব্য: এক্সকোড 8 থেকে এক্সকোড 8.2.x আপনি সুইফট 2.3 ব্যবহার করতে পারেন যদিও এক্সকোড 8 সুইফট 3.x ডিফল্ট সুইফ্ট সংস্করণ হিসাবে ব্যবহার করে। ব্যবহারের দ্রুতগতি 2.3 করার জন্য, শুধু পতাকা চালু Use Legacy Swift Language Versionকরার YESথেকে Build Settingএবং উপর XCode প্রকল্পের লক্ষ্য জন্য সুইফট 2.3 ব্যবহার করবে।


21

আপনি দেখতে এবং চয়ন করতে পারেন কোন স্যুইফ্ট সংস্করণ এক্সকোড এতে ব্যবহার করছে:

লক্ষ্য -> বিল্ড সেটিংস -> সুইফট ভাষা সংস্করণ :

এখানে চিত্র বর্ণনা লিখুন

এটি এক্সকোড 8.3 এবং এক্সকোড 9 এ উপলব্ধ (পুরানো সংস্করণ চেক করে নি)


2
Swift Language Versionআমার এক্সকোড 8.2.1 প্রকল্পে সেটিংস হিসাবে আসে না। এটা আছে Use Legacy Swift Language Version
ক্রিস প্রিন্স

1
@ ক্রিসপ্রিন্স হ্যাঁ, এক্সকোড ৮.৩ অবধি Swift Language Versionএখানে উপস্থিত ছিল না Build Settings.... পূর্ববর্তী এক্সকোড ৮.x সংস্করণে Use Legacy Swift Language Version, No= সুইফট ৩, এবং Yes= সুইফট ২.৩
উইলিয়াম জিপি

17

এই রেডডিট পোস্টটি আমাকে সহায়তা করেছে: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_Wich_swift/d4anpet

এক্সকোড 8 ডিফল্ট হিসাবে সুইফট 3.0 ব্যবহার করে। তবে আপনি সুইফট ২.৩ চালু করতে পারেন। প্রকল্পের বিল্ড সেটিংসে যান এবং 'হ্যাঁ লেগ্যাসি সুইফট ভাষা সংস্করণ ব্যবহার করুন' সেট করুন।

ভাল পুরানো reddit :)


1
আমি 'লেগ্যাসি সুইফট ল্যাঙ্গুয়েজ সংস্করণ ব্যবহার করুন' বা 'উত্তরাধিকার' অনুসন্ধান করে এটি খুঁজে পাচ্ছি না
জেরিঝো

আমি সর্বশেষতম এক্সকোড সংস্করণ 8.3.2 (8E2002) এবং সুইফট ল্যাঙ্গুয়েজ সংস্করণে সুইফট 3 ব্যবহার করছি। এখন আমি এটিকে সুইচ ২.৩ এ পরিবর্তন করতে চাই তবে কেবলমাত্র একটি বিকল্প রয়েছে সুইফট 3.0.০ এবং ২ য় অনির্ধারিত। সুতরাং আপনি কিভাবে এটি সম্ভব হবে দয়া করে গাইড করবেন? আমার বর্তমান প্রকল্পে দ্রুত 2.3 পেতে? @alexisSchreier
Arsal

14

কমান্ড লাইন থেকে আপনার মেশিনে ইনস্টল করা সুইফ্টের ডিফল্ট সংস্করণটি দেখতে, নিম্নলিখিত টাইপ করুন:

swift --version

অ্যাপল সুইফ্ট সংস্করণ 4.1.2 (সুইফটলং-902.0.54 ঝনঝন-902.0.39.2)

লক্ষ্য: x86_64-আপেল-ডারউইন 17.6.0

এটি সম্ভবত আপনি ইনস্টল করা এক্সকোডের অ্যাপ স্টোর সংস্করণে অন্তর্ভুক্ত সংস্করণটি রয়েছে (যদি আপনি এটি পরিবর্তন না করেন)।

আপনি যদি এক্সকোডের একটি নির্দিষ্ট সংস্করণ (উদাহরণস্বরূপ একটি বিটা) দ্বারা ব্যবহৃত সুইফ্টের আসল সংস্করণটি নির্ধারণ করতে চান তবে কমান্ড লাইন থেকে, এক্সকোড বান্ডেলের অভ্যন্তরে সুইফট বাইনারিটি প্রেরণ করুন এবং এটি পরামিতি - রূপান্তরটি পাস করুন

/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version

অ্যাপল স্যুইফ্ট সংস্করণ 4.2 (সুইফটলং -১০০.০.১.7..7 ঝনঝন -১০০.10.25.3)

লক্ষ্য: x86_64-আপেল-ডারউইন 17.6.0



1

আমি গুগল কোলাব থেকে সুইফ্ট ব্যবহার করছি। এটি কীভাবে চলা যায় তা এখানে দেখুন।

!/swift/toolchain/usr/bin/swift --version

ফলাফল হলো 5.0-dev


-1

বোনাস অবদান: আমি জাজি ডকুমেন্টেশন সহ ব্যবহারের জন্য একটি পরিষ্কার স্ট্রিং উত্তোলনের জন্য একটি কাস্টম নোড.জেএস স্ক্রিপ্ট ব্যবহার করছি। আপনি যদি আপনার ডেভ প্রক্রিয়াতে এটির কাজ করার কোনও জায়গা খুঁজে পান তবে আপনি এর কিছুটা ব্যবহার পেতে পারেন:

বাশ স্ক্রিপ্ট থেকে আহবান করা হয়েছে:

#!/bin/bash
swiftversion=$(node SwiftVerSlicer.js "${xcrun swift -version}");
echo $swiftversion

SwiftVerSlicer.js:

// begin script
const inputString = `${process.argv[2]}`
let searchTerm = (inputString.indexOf('(') - 1)//-1 cause whitespace
let version = inputString.slice(0,searchTerm)
console.log(version)
// end script

আপনি অবশ্যই রেইজেক্স অবশ্যই ব্যবহার করতে পারেন তবে যা খুশি তাই করুন:]


-1

টার্মিনালে স্যুইফ্ট কমান্ডটি প্রবেশ করে, এটি সুইফট কনসোলে লগ করার সময় সংস্করণটি প্রদর্শন করবে ((নীচের মতো কিছু)

System-IOSs-MacBook-Air:~ system$ swift
Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7).
Type :help for assistance.

-1
  1. আপনার প্রকল্প নির্বাচন করুন
  2. বিল্ডিং সেটিং
  3. "দ্রুত ভাষা" অনুসন্ধান করুন
  4. আপনি এখন আপনার প্রকল্পে কোন সুইফট সংস্করণটি ব্যবহার করছেন তা দেখতে পাবেন

https://i.stack.imgur.com/Ojn3m.png


স্ট্যাকওভারফ্লো . com/a/46080904/1187415 এ দেওয়া প্রথম সমাধানের থেকে এটি কীভাবে আলাদা ?
মার্টিন আর

ঠিক আছে আমি মূল প্রকল্প ডিরেক্টরিটি ফেলে যাচ্ছি এবং আপনি যখন "সুইফট ভাষা" টাইপ করবেন তখন এটি কেবলমাত্র বিল্ড সেটিংসে শীর্ষে সুইফ্ট সংস্করণ দেখানো হবে ..
ভাইরাল গোটেই

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.