আমি এখানে আমার 2 সেন্ট যুক্ত করব (কম ভীতিজনক পদ্ধতিতে :-)। আমি বিক্রেতাদের কাছ থেকে বেশ কয়েকটি ফ্যাট লাইব্রেরির মুখোমুখি হয়েছি যেগুলি (কোনও কারণে) Frameworksঅ্যাপল দ্বারা নথিভুক্ত ডিরেক্টরিতে তাদের যুক্ত করে স্বাভাবিক পদ্ধতিতে কাজ করে না । একমাত্র উপায় আমরা তাদের কাজ করতে সক্ষম হয়েছে টেনে হয় .framekworkপ্রকল্পের ডিরেক্টরির মধ্যে ডান এবং লিঙ্ক Embedded Frameworksএবং Link Binary with Librariesসেটিং Build এ ম্যানুয়ালি। এটি কোনও সমস্যা ছাড়াই কাজ করেছে বলে মনে হয়, তবে যে কোনও ফ্যাট লাইব্রেরির মতো তারা বহির্মুখী সিমুলেটর আর্কিটেকচার i386 এবং আর্কিটেকচারের x86_64সাথে আসে arm।
ফ্যাট লাইব্রেরিতে আর্কিটেকচার চেক করার একটি দ্রুত উপায়
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
যা একটি আউটপুট এই জাতীয় কিছু spit উচিত
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
এটি নিশ্চিত করে যে আইটিউনস সংযোগ সংরক্ষণাগার আপলোড করার পূর্বে আপনার কাঠামো থেকে আপনাকে "ফ্যাটটি ছাঁটাতে হবে " (যেমন i386& x86_64) করতে হবে, যা এই আর্কিটেকচারগুলিকে অনুমতি দেয় না (যেহেতু তারা আইওএসের জন্য অসমর্থিত)।
এখন, এখানে সমস্ত উত্তর (বা কমপক্ষে কয়েকটি উত্তর) এই দুর্দান্ত রান স্ক্রিপ্টগুলি সরবরাহ করে যা আমি নিশ্চিত যে সত্যই ভাল কাজ করে তবে আপনার ফ্রেমওয়ার্কটি যদি Frameworksডিরেক্টরিতে থাকে the এখন আপনি যদি শেল স্ক্রিপ্ট জাঙ্কি না হন তবে পরিবর্তনগুলি ছাড়াই sc স্ক্রিপ্টগুলি উপরে বর্ণিত দৃশ্যের জন্য কাজ করবে না। তবে ফ্রেমওয়ার্ক থেকে i386& x86_64স্থাপত্যগুলি থেকে মুক্তি পাওয়ার জন্য খুব সহজ উপায় রয়েছে ।
আপনার প্রকল্পের ডিরেক্টরিতে টার্মিনাল খুলুন।
ডিরেক্টরিতে সরাসরি পরিবর্তন করুন .framekworklike
cd YourProjectDir/YourProject/YourLibrary.framework
কমান্ডের সিরিজটি নীচে প্রদর্শিত হিসাবে চালান-
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
এখানে কয়েকটি বিষয় লক্ষণীয় - lipo -removeপ্রতিটি স্থাপত্য অপসারণের জন্য একবার করতে হবে। lipoইনপুট ফাইলটি সংশোধন করে না, এটি কেবল একটি ফাইল তৈরি করে যাতে আপনাকে lipo -removeএকবার চালাতে হয় x86_64এবং এর জন্য i386। উপরের কমান্ডগুলি কেবল কার্যকরভাবে এক্সিকিউটেবলের নাম পরিবর্তন করে এবং তারপরে অবশেষে পছন্দসই খিলানগুলি সরিয়ে, এবং তারপরে ফাইলগুলি বামে পরিষ্কার করে। এবং এটি হ'ল, আপনার এখন আইটিউনস কানেক্টে অ্যাপ্লিকেশন লোডার সংরক্ষণাগারটিতে একটি সবুজ চেক চিহ্ন দেখতে হবে mark
মনে রাখার বিষয়গুলি : উপরের পদক্ষেপগুলি কেবল তখনই নির্মাণের সময় করা উচিত, যেহেতু .frameworkসিমুলেটর আর্কিটেকচারগুলি বাদ দেওয়া হবে, সিমুলেটরগুলিতে বিল্ডিং কাজ করা বন্ধ করবে (যা প্রত্যাশিত)। বিকাশের পরিবেশে, .frameworkফাইলের বাইরে আর্কিটেকচারগুলি ছাঁটাই করার কোনও দরকার নেই যেহেতু আপনি সিমুলেটর এবং একটি শারীরিক ডিভাইস উভয়ই পরীক্ষা করতে সক্ষম হতে চান। যদি আপনার ফ্যাট লাইব্রেরি Frameworksপ্রকল্পের ফোল্ডারে থাকে তবে দয়া করে গৃহীত উত্তরটি দেখুন।