উত্তর:
ফাইলমার্জের 2.8, এক্সকোড 5.0.1 লিঙ্ক যা ফ্রেমওয়ার্কগুলিতে লিঙ্কগুলি যা Xcode.app বান্ডিলের ভিতরে অবস্থিত। ফাইলমার্জের দ্বারা ব্যবহৃত শেয়ারকৃত লাইব্রেরি কমান্ড সম্পাদন করে প্রদর্শিত হতে পারে:
otool -L /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge
এই কমান্ডের আউটপুটটি নির্দেশ করে যে ফাইলমার্গে ডিভটলস ইন্টারফেস, ডিভটলসকোরে এবং ডেভলসফাউন্ডেশন ফ্রেমওয়ার্ক ব্যবহার করতে হবে। :
/Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge:
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1247.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1052.0.0)
@rpath/DevToolsInterface.framework/Versions/A/DevToolsInterface (compatibility version 1.0.0, current version 3000.1.0)
@rpath/DevToolsCore.framework/Versions/A/DevToolsCore (compatibility version 1.0.0, current version 2404.0.0)
@rpath/DevToolsFoundation.framework/Versions/A/DevToolsFoundation (compatibility version 1.0.0, current version 3001.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 852.0.0)
উপসর্গ @rpath
নির্দেশ করে যে dyld
রান পথ তালিকা ব্যবহার করবে রেফারেন্স করা হচ্ছে যে ফ্রেমওয়ার্ক অনুসন্ধান। বিশেষত, FileMerge রয়েছে "../OtherFrameworks"
তার রান পথ তালিকা। Xcode.app বান্ডিলের ভিতরে অবস্থিত হলে, সেই ফ্রেমওয়ার্কগুলি ঠিক যেখানে ফাইলমার্জের তাদের প্রত্যাশা করা হয়।
যাইহোক, যদি আপনি Xcode.app বান্ডেল থেকে ফাইলমার্জটি অনুলিপি করেন তবে ফাইলমার্জটি লঞ্চে ক্র্যাশ করবে। এটি ঘটে কারণ রেফারেন্সযুক্ত ফ্রেমওয়ার্কগুলি (উপরে উল্লেখিত) রান পাথ তালিকাতে নয়, যার কারণ dyld
একটি ত্রুটি সঙ্গে প্রস্থান করার জন্য "image not found"
। এটি রেফারেন্স করা ফ্রেমওয়ার্কগুলি খুঁজে পাওয়া যায় না কারণ এটি আপেক্ষিক পাথের একটি ফোল্ডার "../OtherFrameworks"
বিদ্যমান নেই, এবং ফ্রেমওয়ার্ক রান পাথের তালিকাভুক্ত অন্য কোনও ফোল্ডারে বিদ্যমান নেই।
এক্সকোড অ্যাপ্লিকেশন ইনস্টল না করেই ফাইলমার্জের ব্যবহার করার জন্য আপনার কয়েকটি অপশন রয়েছে:
আপনার পছন্দসই অবস্থানে FileMerge অনুলিপি করুন, এবং এর বিষয়বস্তু অনুলিপি করুন /Applications/Xcode.app/Contents/OtherFrameworks/
রান পাথ তালিকা উল্লেখ রেফারেন্স এক ( ~/Library/Frameworks
অথবা /Library/Frameworks
সম্ভবত সেরা পছন্দ একটি দম্পতি)।
আপনার পছন্দসই অবস্থানে FileMerge অনুলিপি করুন, এবং এর বিষয়বস্তু অনুলিপি করুন /Applications/Xcode.app/Contents/OtherFrameworks/
হতে হবে "../OtherFrameworks"
FileMerge অ্যাপ্লিকেশনের সাথে সম্পর্কিত (উদাঃ, যদি FileMerge এ থাকে ~/Applications
, ফোল্ডার কপি করুন "OtherFrameworks"
থেকে ~/OtherFrameworks
সম্পাদন করা
উপরের উত্তরটি FileMerge লঞ্চ করার অনুমতি দেয়, তবে আপনি আসলে ফাইল তুলনা করার চেষ্টা করলে অ্যাপ্লিকেশনটি শেষ হবে। দৃশ্যত অ্যাপ্লিকেশন পাথ এ প্ল্যাটফর্ম তথ্য খুঁজছেন ../Developer/Platforms/MacOSX.platform/Info.plist
। এটি অনুলিপি করা প্রয়োজন যে মানে Info.plist
থেকে /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
থেকে ../Developer/Platforms/MacOSX.platform/Info.plist
(FileMerge.app সম্পর্কিত)। এখানে কয়েকটি পদক্ষেপ যা ফাইলমার্জের অনুলিপি একটি ফোল্ডারে অনুলিপি করতে ব্যবহার করা যেতে পারে ~/Applications
:
mkdir ~/Applications
cp -R /Applications/Xcode.app/Contents/Applications/FileMerge.app ~/Applications
cp -R /Applications/Xcode.app/Contents/OtherFrameworks/* ~/Library/Frameworks
mkdir -p ~/Developer/Platforms/MacOSX.platform
cp /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist ~/Developer/Platforms/MacOSX.platform
Info.plist
আমার ক্ষেত্রে XCode 6.1.1 এবং FileMerge 2.8 এর সাথে কাজ করবেন না - এখনও এই ত্রুটিটি পেয়েছেন:FileMerge[12429:1615479] [MT] ASSERTION FAILURE in /SourceCache/DevToolsBase/DevToolsBase-6000/pbxcore /SpecificationTypes/XCPlatformSpecification.m:438
Details: The Mac OS X platform is missing - cannot set a default platform.
Object: <XCPlatformSpecification>
Method: +loadAllPlatforms
Thread: <NSThread: 0x7fe4597135f0>{number = 1, name = main}
আসল FileMerge থেকে এই ফাইলটি সরানো একই রকম ত্রুটি সৃষ্টি করে। ফাইল মালিক এবং অধিকার অভিন্ন।