এক্সকোড 9 সুইফট ল্যাঙ্গুয়েজ সংস্করণ (SWIFT_VERSION)


115

আমি সম্প্রতি এক্সকোডটি 9 সংস্করণে আপডেট করেছি। এর আগে Xcode 8.x এ যখনই আমি এটি ব্যবহার করি pod updateতা কোডটি আমাকে সুইফট 3 এ রূপান্তর করতে একটি আপডেট কোড দেখায় এবং ত্রুটিগুলি সমাধান করে তা করে। তবে এখন এটি আমাকে এই ত্রুটি দিচ্ছে:

"সুইফট ল্যাঙ্গুয়েজ ভার্সন" (SWIFT_VERSION) বিল্ড সেটিংটি যে লক্ষ্যগুলি সুইফট ব্যবহার করে তার জন্য একটি সমর্থিত মান হিসাবে সেট করতে হবে। এই সেটিংটি বিল্ড সেটিংস সম্পাদকটিতে সেট করা যেতে পারে।

এই ত্রুটির জন্য আমি চেষ্টা করেছি Build Settings > Swift Language Versionএবং এটি ছিল সুইফট ৩.২ তবে আপডেট কলটি অ্যালামোফায়ারের মতো কয়েকটি পোড পুনরায় ইনস্টল করেছে এবং এটি কোডটি সুইফট 3 এ রূপান্তর করতে এক্সকোড ৮.x ইনস্টল করার কথা বলেছে তাই আমার একটি ইনস্টল করা দরকার সর্বশেষতম এক্সকোড সহ অতিরিক্ত সংস্করণ? যদি হ্যাঁ, তবে আমি এক্সকোড 8 দিয়ে কীভাবে এক্সকোড 8 ইনস্টল করতে পারি?



এক্সকোড 8 এ আপনার সুইফট সংস্করণটি কী ??
santhoshkumar

এটি ছিল 8.3.3 আমি মনে করি। এটি এক্সকোড 9 এর আগে সর্বশেষতম ছিল
চৌধুরী চৌধুরী

উত্তর:


181

আপনার প্রশ্নের উত্তর:
আপনি প্রিমিয়াম বিকাশকারী অ্যাকাউন্ট (অ্যাপল আইডি), অ্যাপল ডাউনলোড পোর্টাল থেকে এক্সকোড 8.x ডাউনলোড করতে পারেন বা এক্সকোড 8.3.3 ডাউনলোড করতে পারেন (বা দেখুন: এক্সকোডের পুরানো সংস্করণটি কোথায় ডাউনলোড করবেন )। আপনি একক (ম্যাক) সিস্টেমে এক্সকোড 9 এবং এক্সকোড 8.x উভয়ের সাথে ইনস্টল ও কাজ করতে পারেন। ( Command Line Toolsটার্মিনালের সাথে কাজ করতে আপনি Xcode- র উভয় সংস্করণকে সমর্থন করেছেন তা নিশ্চিত করুন (দেখুন: 'কমান্ড লাইন সরঞ্জাম' কীভাবে ইনস্টল করবেন ))


ইঙ্গিত: কিভাবে আপনার কোড Xcode 9 সামঞ্জস্যপূর্ণ সুইফট সংস্করণ (SWIFT 3.2 বা 4) মাইগ্রেট করতে
Xcode 9 থেকে রুপান্তরের / মাইগ্রেশন পারবেন Swift 3.0করার Swift 3.2/4.0শুধুমাত্র। সুতরাং যদি আপনার প্রকল্পের সুইফট ভাষার বর্তমান সংস্করণ 3.0 এর নীচে থাকে তবে আপনাকে অবশ্যই কোড কোড 8.x ব্যবহার করে সুইফট 3 সামঞ্জস্যপূর্ণ সংস্করণে আপনার কোডটি স্থানান্তর করতে হবে।

এটি সাধারণ ত্রুটি বার্তা যা মাইগ্রেশনের সময় এক্সকোড 9 এটি সুইফ ভাষাটি 3.0 এর নীচে সনাক্ত করে কিনা তা দেখায়।

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


এক্সকোড 9 এবং এক্সকোড 8 উভয় দ্বারা সুইফট 3.2 সমর্থিত।

প্রকল্প ► (আপনার প্রকল্পের লক্ষ্য নির্বাচন করুন) Settings সেটিংস তৈরি করুন Search (সার্চবারে 'সুইফট' টাইপ করুন) সুইফ্ট সংকলক ভাষা ► সুইফট ভাষা সংস্করণ Language এটি খোলার জন্য ভাষা তালিকায় ক্লিক করুন।

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



এক্সকোড 8 ব্যবহার করে আপনার উত্স কোডটি সুইফট ২.০ থেকে ৩.২ এ রূপান্তর করুন এবং তারপরে এক্সকোড 9 (সুইফট 3.2 বা 4) দিয়ে চালিয়ে যান।


আপনার কোডের আরও সহজে স্থানান্তরের জন্য, এই পদক্ষেপগুলি অনুসরণ করুন: (এটি আপনাকে আপনার এক্সকোড সরঞ্জাম দ্বারা সমর্থিত সুইফটের সর্বশেষ সংস্করণে রূপান্তর করতে সহায়তা করবে)

এক্সকোড: মেনু: বর্তমান ift প্রচ্ছদ Current বর্তমান সুইফ্ট সিনট্যাক্সে সম্পাদনা করুন

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


9
আপনি যদি এখানে এসেছেন কারণ আপনি কেবল এখন (ডিসেম্বর 2018) কিছু সুইফট 2 কোড বন্ধ করে দিচ্ছেন, আপনি এক্সকোড 8 মোজাভেতে চালিত হচ্ছে না তা জানতে আপনি হতাশ হবেন।
বাগ্লাফ

53

এক্সকোড 8 ব্যবহার করে তৈরি করা এবং এখন এক্সকোড 9-এ খোলার উদ্দেশ্যে অবজেক্টিভ সি প্রকল্পগুলির জন্য, এটি প্রশ্নের মধ্যে উল্লিখিত একই ত্রুটি দেখাচ্ছে।

এটি ঠিক করতে, বিল্ড সেটিংসে + বোতাম টিপুন এবং নীচের চিত্রটিতে প্রদর্শিত হিসাবে ব্যবহারকারী-সংজ্ঞায়িত সেটিং যুক্ত করুন নির্বাচন করুন

বিল্ডিং সেটিং

তারপরে তৈরি নতুন সারিতে নীচের মতো SWIFT_VERSIONকী এবং 3.2মান হিসাবে যুক্ত করুন ।

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

এটি উদ্দেশ্য সি প্রকল্পগুলির জন্য ত্রুটিটি ঠিক করবে।


2
এটি আমাকে সাহায্য করেছিল। ধন্যবাদ।
Andreas Kraft

9
যদি আপনার এই সমস্যাটি কোকোপোডগুলির সাথে থাকে তবে আপনার এই বিল্ড সেটিংসটি পডস.এক্সকোডেপ্রজেক্ট বিভাগে যুক্ত করতে হতে পারে।
স্টিয়ার্ট ম্যাকডোনাল্ড

1
এটি আমার জন্য কাজ করেছে আমাকে বিল্ড সেটিংসে 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' পরিবর্তন করতে হয়েছিল '$ (উত্তরাধিকারসূত্রে)'
এফ -1

1
2 মাস পরে আবার আপনাকে ধন্যবাদ
জানুয়ারী

1
সমাধানটির প্রশংসা করুন।
ব্যবহারকারীর 366584

4

আমি প্রজেক্টে একটি কোর ডেটা মডেল ফাইল যুক্ত করার পরে, এক্সকোড 10-তে একটি নতুন উদ্দেশ্য-সি প্রকল্প তৈরি করার পরে আমি এটি পেয়েছি।

আমি এটি ঠিক করার দুটি উপায় পেয়েছি:

  1. সহজ উপায়: কোর ডেটা মডেলের ফাইল ইন্সপেক্টর ( - 1) খুলুন এবং ভাষাটি সুইফ্ট থেকে অবজেক্টিভ-সি তে পরিবর্তন করুন

কোর ডেটা মডেল ভাষা পরিবর্তন করুন

  1. দীর্ঘতর এবং আরও বিপজ্জনক পদ্ধতি

এই লাইনের সাথে মডেলটিতে একটি "বিষয়বস্তু" ফাইল রয়েছে:

<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14460.32" systemVersion="17G5019" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">

একটি sourceLanguage="Swift"এন্ট্রি আছে। এটিকে পরিবর্তন করুন sourceLanguage="Objective-C"এবং ত্রুটি চলে যায়।

"বিষয়বস্তু" ফাইলটি সন্ধান করতে, .xcdatamodeldএক্সকোডে ডান ক্লিক করুন এবং "ফাইন্ডারে শো করুন" করুন। আসল (ফাইন্ডার) ফাইলটিতে ডান ক্লিক করুন এবং "প্যাকেজ বিষয়বস্তু দেখান" করুন

এছাড়াও: মডেলের ভাষা পরিবর্তন করা এক্সকোডকে সুইফটে পরিচালিত অবজেক্ট সাবক্লাস ফাইল তৈরি করা থেকে বিরত রাখবে।


1

আপনি যখন কোনও বিদ্যমান প্রকল্পে কোর ডেটা যুক্ত করবেন তখন এটি ঘটতে পারে।
চেক করুন:
<নাম> / <নাম>। এক্সসিডিটামোডেল্ড / <নাম>। এক্সসিডিটামোডেল / সামগ্রী
ফাইল।
এই ফাইলে একটি "উত্সভাষা" রয়েছে যা (ডিফল্টরূপে) "সুইফ্ট" এ সেট করা থাকতে পারে। এটি "উদ্দেশ্য-সি" তে পরিবর্তন করুন।


0

আমি কেবল সর্বশেষতম সুইফ্ট রূপান্তর বোতামে ক্লিক করেছি এবং অ্যাপ টার্গেট বিল্ড সেটিংস-> সুইফট ভাষা সংস্করণ সেট করেছি: সুইফট 4.0,

আশা করি এটি সাহায্য করবে।


0

এই সমাধানটি কাজ করে যখন অন্য কিছুই কাজ করে না:

পুরো প্রকল্পটি রূপান্তর করতে আমি এক সপ্তাহেরও বেশি সময় ব্যয় করেছি এবং নীচে একটি সমাধানে এসেছি:

প্রথমে প্রকল্প থেকে কোকোপড নির্ভরতা ডি-ইন্টিগ্রেটেড করুন এবং তারপরে প্রকল্পটি সর্বশেষতম সুইফ্ট সংস্করণে রূপান্তর শুরু করুন।

টার্মিনাল প্রজেক্ট ডিরেক্টরিতে যান এবং টাইপ করুন:

pod deintegrate

এটি প্রকল্প থেকে কোকপোডগুলিকে ডি-ইন্টিগ্রেটেড করবে এবং কোকোপডসের কোনও চিহ্নই এই প্রকল্পে ছেড়ে যাবে না। তবে একই সময়ে, এটি এক্সক্রেসস্পেস এবং পডফিলগুলি মুছবে না। তারা উপস্থিত থাকলে ঠিক আছে।

এখন আপনাকে এক্সকোডেপ্রোজ খুলতে হবে (এক্সক্রেসস্পেস নয়) এবং আপনি প্রচুর ত্রুটি পাবেন কারণ আপনি আপনার মূল প্রকল্পগুলিতে কোকোপডগুলি নির্ভরতা পদ্ধতি বলেছিলেন।

সুতরাং এই ত্রুটিগুলি অপসারণ করতে আপনার কাছে দুটি বিকল্প রয়েছে:

  1. কোকোপড লাইব্রেরি থেকে আপনি যে সমস্ত কোড ব্যবহার করেছেন তা কমেন্ট করুন।
  2. কোপোড লাইব্রেরির মতো ডামি পদ্ধতিযুক্ত একটি মোড়কের ক্লাস তৈরি করুন এবং তারপরে কল করুন।

সমস্ত ত্রুটি মুছে ফেলার পরে আপনি কোডটি সর্বশেষতম সুইফ্ট সংস্করণে রূপান্তর করতে পারবেন।

কখনও কখনও যদি আপনি অদ্ভুত ত্রুটি পেয়ে থাকেন তবে প্রাপ্ত ডেটা সাফ করার চেষ্টা করুন এবং আবার চেষ্টা করুন।


0

সম্ভবত আপনার সরঞ্জামচেন ডাউনলোড করতে হবে। এই ত্রুটিটি ঘটে যখন আপনার কাছে সুইফ্ট সংকলকটির সঠিক সংস্করণ না থাকে।


-3

আমার ক্ষেত্রে, দুটি সতর্কতা ব্যতীত আমি বিল্ড সেটিংসে সরাসরি সুইচ সংস্করণটি 2.x থেকে 4.0 তে পরিবর্তন করার পরে সমস্ত সতর্কতা অদৃশ্য হয়ে যায়।

এই সতর্কতা সম্পর্কিত myprojectnameTestsএবং myprojectnameUITestsফোল্ডার সম্পর্কিত । আমি খেয়াল করিনি এবং আমি ভেবেছিলাম এর এক্সকোড 7 থেকে এক্সকোড 9 থেকে সরাসরি অভিবাসন সম্পর্কিত এবং আমি ভেবেছিলাম যে আমি এই সমস্যাটি সমাধান করতে পারছি না এবং আমার মিসড এক্সকোড 8 সংস্করণ ইনস্টল করা উচিত।

আমার ক্ষেত্রে, আমি এই ফোল্ডারগুলি মুছে ফেলেছি এবং সমস্ত সতর্কতা অদৃশ্য হয়ে গেছে, তবে আপনি এই ফোল্ডারটি পুনরায় তৈরি করতে পারেন এবং এতে এটি ব্যবহার করে থাকতে পারেন:

file > new > target > (uitest or unittest extensions)

এবং এই নিবন্ধটি পরীক্ষার কেসগুলি তৈরি করার জন্য ব্যবহার করুন: https://developer.apple.com/library/content/docamentation/DeveloperTools/Concepual/testing_with_xcode/chapters/04-writing_tests.html


এবং কেউ আমাকে বলবে আমার ভুল কী !?
ইমান কাজেমেইনি

2
আমি ব্যক্তিগতভাবে এটিকে হ্রাস করব না, আপনার উত্তরের সাথে কোনও ভুল নেই, তবে সবচেয়ে ভাল জায়গাটি হ'ল ওপি-র প্রশ্নের মন্তব্য করা। এছাড়াও আপনি স্ট্যাকওভারফ্লো . com/help/how- to-answer এ একবার দেখে নিতে পারেন যা আপনাকে প্রশ্নের উত্তর দেওয়ার সঠিক উপায় নিয়ে আসতে সহায়তা করবে।
গ্রাসেবারিটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.