সুইফ্ট 5.1 দিয়ে সংকলিত মডিউলটি সুইফ্ট 5.1.2 সংকলক দ্বারা আমদানি করা যায় না


91

আমার একটি কাঠামো রয়েছে (উদাহরণস্বরূপ এটি এটি RxSwift) যা আমি Xcode 11.0 ব্যবহার করে প্রচলিত RxSwift.frameworkশৈলীর প্যাকেজটিতে কম্পাইল করেছি

এটি এক্সকোড 11.0 এ জরিমানা আমদানি করেছে এবং 11.1 এর সাথে কখনও কোনও সমস্যা হয়নি

আজ, অ্যাপলের এক্সকোড 11.2 প্রকাশের পরে, আমি আপগ্রেড করেছি এবং আমার ত্রুটিটি উপস্থিত হয়েছে:

সুইফ্ট 5.1 দিয়ে সংকলিত মডিউলটি সুইফ্ট 5.1.2 সংকলক দ্বারা আমদানি করা যায় না

আমি কম্পাইলার অমিলগুলি স্যুইফ্ট করতে ব্যবহার করেছি এবং আমি সচেতন আমি এক্সকোড ১১.২ ব্যবহার করে আরএসএসউইফ্টটি পুনরায় রচনা করতে এবং চালিয়ে যেতে পারি, তবে সুইফট ৫.১ এর শিরোনাম বৈশিষ্ট্যটি ছিল মডিউল স্থিতিশীলতা

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

যদি কেউ এখানে যা চলছে তা ব্যাখ্যা করতে পারে তবে আমি এর প্রশংসা করব। এক্সকোড 11.2 কি বাগ প্রদর্শন করছে? অথবা আমি যখন XCode 11.0 এর সাথে প্রাথমিকভাবে সংকলন করেছি তখন মডিউলটির স্থিতিশীলতা চেয়েছিলাম তা কোনওভাবেই বলা দরকার?



আমার জন্য পুরোনো দ্রুত সংস্করণের সাথে টুলচেইন কাজ: stackoverflow.com/a/43142147/5846135
Zeero0

উত্তর:


107

ঠিক আছে, আপনি যদি ডাব্লুডাব্লুডিসি ভিডিওটি দেখেন তবে দেখা যাচ্ছে, তারা এটিকে ব্যাখ্যা করে: https://developer.apple.com/videos/play/wwdc2019/416/

আপনার ফ্রেমওয়ার্কের বিল্ড সেটিংসে আপনাকে বিতরণের জন্য বিল্ড গ্রন্থাগারগুলি হ্যাঁ সেট করতে হবে , অন্যথায় সুইফ্ট সংকলকটি প্রয়োজনীয় .swiftinterfaceপুরানো লাইব্রেরিটি লোড করতে সক্ষম হয়ে ভবিষ্যতের সংকলকগুলির মূল যা প্রয়োজনীয় ফাইলগুলি উত্পন্ন করে না ।

এটি আপনার প্রকল্প.pbxproj ফাইলে শেষ হবে:

BUILD_LIBRARY_FOR_DISTRIBUTION = YES;

এই পতাকাটি সেট করার পরে, আমি একটি কোড ফ্রেম Xcode 11.0 (swift 5.1) ব্যবহার করে Xcode 11.2 (swift 5.1.2) দ্বারা ব্যবহার করতে সক্ষম হয়েছি এবং সবকিছু সঠিকভাবে কাজ করছে বলে মনে হচ্ছে।

আশা করি এই প্রশ্ন / উত্তরটি সকল ডাব্লুডাব্লুডিসি ভিডিও দেখে নি এমন প্রত্যেকের জন্য একটি দরকারী রেফারেন্স হিসাবে কাজ করবে

ত্রুটিটি এখনও অব্যাহত থাকলে পণ্য > ক্লিন বিল্ড ফোল্ডার এবং আবার বিল্ড এ যান


1
অসাধারণ! এখন আসুন আশা করি সমস্ত তৃতীয় পক্ষের ফ্রেমওয়ার্ক বিকাশকারীরা এটি আবিষ্কার করবে - হা হা :)
মিহাই ফ্রাতু

25
এটি আমার ক্ষেত্রে সহায়তা করে না। আমি এটি "হ্যাঁ" এ সেট করেছি তবে আমি এখনও ত্রুটি পাচ্ছি। কোন ধারনা?
ডেভিডওহারা

3
আমি কার্থেজ এবং 10 ফ্রেমওয়ার্ক ... ইশ নিয়ে কাজ করছি । এটি আমার .pbxproj ফাইল carthageথেকে বাছাই করার মতো যথেষ্ট স্মার্ট , বা উপরে যেমন @ মিহাইফ্রেতু বলেছেন যে সমস্ত তৃতীয় পক্ষের কাঠামো বিকাশকারীরা তাদের তাদের কাঠামোগত প্রকল্পগুলিতে নিজেকে সেট করার দরকার আছে?
nteissler

9
@ ডেভিডওহারা আমার ক্ষেত্রে এটি এক্সকোড ১১.২-তে এই জ্ঞাত সমস্যাটির সাথে সম্পর্কিত ছিল: যদি মডিউলটি বিল্ড_লিবারিআইএস_ফর_ডিআরসিটিউশন দিয়ে নির্মিত হয় এবং মডিউলের মতো একই নামে একটি সার্বজনীন ধরণের থাকে তবে ক্লায়েন্টরা মডিউলটি আমদানি করতে ব্যর্থ হবে। (19481048) (এফবি 5863238) এক্সকোড 11.2 রিলিজ নোটগুলিতে: বিকাশকারী.অ্যাপল.
রিচার্ড চিরিনো

2
@ ডেভিডওহারা দুঃখের সাথে আমার কোনও কাজ খুঁজে পাওয়া যায় নি। আমাদের জন্য শ্রেণিটির নামকরণও সম্ভব নয় কারণ এটি আমাদের কাঠামোর মূল শ্রেণি এবং এটি আমাদের গ্রাহকের কোড ভঙ্গ করে। যদি আমি এক্সকোড 11.2 ব্যবহার করে কাঠামোটি তৈরি করি তবে এটি এক্সকোড 11.2 তে সংকলন করে তবে এটি 11.1 বা তার আগে সংকলন করবে না। আজকের এক্সকোড ১১.২.১ জিএম রিলিজ ইস্যুটি ঠিক করে নি। আপনি যদি নজর রাখতে চান তবে এই সুইফট ইস্যু ট্র্যাকারের টিকিট এখানে রয়েছে: বাগস.সউইফট.আর.ইউ / ব্রাউজ / এসআর -11704 এটির সাথে একটি রাডার সংযুক্ত রয়েছে।
রিচার্ড চিরিনো

2

তৃতীয় পক্ষের গ্রন্থাগারগুলি আমদানি করার ক্ষেত্রে আমার একই ত্রুটি ছিল। আমি এটি এক্সকোডে সরঞ্জামচেনগুলি ব্যবহার করে ঠিক করেছি এবং সেপ্টেম্বর 19 2019 থেকে এখানে মুক্তি পেয়েছি https://swift.org/download/#releases । এর পরে আমাকে আমার লাইব্রেরিগুলি আবার আমদানি করতে হয়েছিল এবং এটি কার্যকর হয়েছিল।


এটি ছিল সহজ সমাধানটি একগুচ্ছ ধন্যবাদ
কৃষ্ণ প্যাটেল

আমার ফ্রেমওয়ার্কে সমস্যা আছে সুইফ্ট 5.1.2 দিয়ে সংকলিত মডিউলটি সুইফ্ট 5.2.2 দ্বারা আমদানি করা যায় না আমরা কীভাবে এই সমস্যাটি সমাধান করতে পারি?
কিশান সুথার

0

আপনি RxSwift ফ্রেমওয়ার্ক যুক্ত করতে কার্থেজ ব্যবহার করতে পারেন।

মূলত, কার্থেজ আপনাকে অনুরূপ traditionalতিহ্যবাহী RxSwift.framework শৈলীর প্যাকেজ দেয়

তারপরে চেষ্টা করুন carthage update --no-use-binaries


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

0

এটি আমার সংকলক ত্রুটিটি দূরে সরিয়ে নিয়েছে।

  1. carthage bootstrap --platform ios
  2. brew bundle
  3. pod repo update

brew bundle? এটার কাজ কি?
স্কাইওয়েন্ডার

ডাউনভোট কারণ কার্তেজের সাহায্যে আপনি আপনার লাইব্রেরিটি নতুন সংকলকটিতে পুনর্নির্মাণ করছেন। প্রশ্নটি পূর্ববর্তী সংকলক দ্বারা নির্মিত বাইনারি গ্রন্থাগারগুলি লোড করা সম্পর্কে স্পষ্টভাবে
অরিয়ন এডওয়ার্ডস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.