কীভাবে পিএইচসি ত্রুটি ঠিক করবেন?


132

আমি যখন আমার অ্যাপটি তৈরি করার চেষ্টা করি তখন আমি Xcodeএই ত্রুটি বার্তাটি পাই:

সংকলক ((ঝনক -২২৫.০.২))) এর চেয়ে আলাদা শাখা ((ঝনঝন -২২৫.০.২৪)) থেকে তৈরি পিএইচসি ফাইল

এটি এর আগে ঘটে না তবে এক্সকোড আপডেট করার পরে এটিই প্রথম বিল্ড।

অন্যান্য অ্যাপ্লিকেশন কাজ করে তবে এটি নির্দিষ্ট নয় not

আমি যদি "Precompile Prefix Header"সেটিংটি বন্ধ করে দিই , এটি কাজ করে।

আমি কীভাবে এই ত্রুটিটি ঠিক করব এবং এখনও সেটিংটি চালু রাখব?

উত্তর:


246

এটি প্রায়শই ক্যাচিংয়ের সমস্যা হয়। সাধারণত এটি অপশন কীটি ধরে রেখে এবং পণ্য> ক্লিন বিল্ড ফোল্ডার নির্বাচন করে সমাধান করা যেতে পারে ...


3
এটি আমার জন্য ত্রুটিটি ঠিক করে নি। আমি একটি সম্পূর্ণ পরিচ্ছন্ন সম্পাদন করেছি এবং প্রাপ্ত ডেটা মুছে ফেলছি।
বেন এস

6
আমার জন্য কাজ করেছে, এটি ছাড়া Product> Cleanকমান্ড কীটির প্রয়োজন নেই except (এক্সকোড 4.6.1)
স্টিভ হ্যালি

1
@ স্টেভহ্যালি একটি আছে Product > Clean, তবে এটি একটি কম পুস্তক কাজ করে। কিছু লোকেরা কিনে নিতে পারেন Product > Clean, কারণ বেশিরভাগই Product > Clean Build Folder...পর্যাপ্ত, এবং অন্যদের নীচে @ সেডস উত্তরে বর্ণিত ম্যানুয়াল অপসারণের প্রয়োজন।
গাইজে

7
আমি এটির পুরানো প্রশ্নটি জানি, তবে উপরে উল্লিখিত ফিক্সটি আমাকে সাহায্য করেনি। ঠিক ডেরিভড ডেটা মুছে ফেলা এবং প্রকল্পটি আবার তৈরি করে ঠিকঠাক কাজ করুন।
অঙ্কিত জৈন

2
আপনি কি আরএম-আরএফ / আইওএস / বিল্ড করতে পারবেন?
সুপারউবারডুপার

47

DerivedDataপ্রকল্পের ফোল্ডারটি মুছুন । আপনি কোথায় এটি সংরক্ষণ করেছেন তা দেখতে Xcode পছন্দসমূহ -> অবস্থানগুলির নীচে দেখুন।


এটি উল্লেখ করা গুরুত্বপূর্ণ যে DerivedDataআপনার Buildফোল্ডারটি যেখানে অগত্যা নয় , এটি আমাকে অনেক সাহায্য করেছে, ধন্যবাদ!
নিট

1
ডিলিট moduleCacheভেতরে DerivedDataখুব
whtlnv

অন্যান্য উত্তরগুলি যেমন বলেছে আপনাকে প্রথমে "পরিষ্কার" করার চেষ্টা করা উচিত। যখন এটি কাজ করে না, আমি কেবল পুনরাবৃত্তভাবে পুরো DerivedDataফোল্ডারটি মুছতে পারি ... "কক্ষপথ থেকে নুয়ে ... নিশ্চিত হওয়ার একমাত্র উপায়" " @ হোয়াইটেলিয়নভিও এটি আরএম moduleCacheএবং সেখানে থাকা সমস্ত কিছুতে পারে।
wcochran

39

দেখে মনে হচ্ছে পণ্যটি> ক্লিন বিল্ড ফোল্ডার ... (অপশন কী চাপানো সহ) বেশিরভাগ লোকের জন্য কাজ করে। @Gaige দ্বারা নির্বাচিত উত্তর দেখুন।

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

/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders

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


2
এটি আমার জন্য এই সমস্যাটি স্থির করেছে। আমার জন্য এটি কারণ আমার একটি কমান্ড-লাইন চালিত বিল্ড রয়েছে।
টমাসডাব্লু

2
এটি যদি আপনার হয় তবে আপনি সেই ফোল্ডারটি এক্সকোড বিল্ড ট্রান্সক্রিপ্টে খুঁজে পেতে পারেন। আমি "SharedPrecompiledHeeda" স্ট্রিংটির জন্য চেয়েছিলাম
জোসে ম্যানুয়েল সানচেজ

6
হ্যাঁ, এটি সঠিক সমাধান। বিশেষত যদি আপনি কমান্ড লাইন থেকে তৈরি করেন বা আপনার একটি বিল্ড স্ক্রিপ্ট রয়েছে। পূর্বনির্ধারিত শিরোনামের অবস্থানটি বিল্ড সেটিংসে, "অবস্থানগুলি তৈরি করুন" -> প্রাক-কম্পাইল করা শিরোনাম ক্যাশেড পথে পাওয়া যায়।
করিম

আপনি var ডিরেক্টরিটি কীভাবে খুঁজে পাবেন?
গোল্ডেনজয়ে

1
@ গোল্ডেন জো ওপেন ফাইন্ডার, Shift-Cmd-Gএবং টাইপ করুন/var
সেডেস

23

এক্সকোড অগ্রাধিকার-> অবস্থানগুলিতে যান (উইকোচরণ দ্বারা উত্তরে উল্লিখিত) এবং কেবল আপনার ডেরাইভডটা ফোল্ডারটির নাম পরিবর্তন করুন। আমি কেবল "ডেরিভডডাটা" থেকে আমার "ডেরিভডডাটা 2" তে পরিবর্তন করেছি এবং এটি সিস্টেমকে পুরানো অবস্থানটি উল্লেখ করা বন্ধ করতে বাধ্য করেছিল। অন্যান্য উত্তরগুলির কোনও কাজ না করলে এটি আমার পক্ষে এটি স্থির হয়ে যায়। ছবি দেখুন:

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


15

অন্য কোনও বিকল্পই আমার পক্ষে কাজ করে নি, এটি এখানে স্থির করে দিয়েছে:

আমি এখানে ক্যাশে ফোল্ডারটি মুছলাম /Users/(Yourname)/Library/Developer/Xcode/DerivedData/ModuleCache/ (এটির পুনরায় নামকরণও কার্যকর হয়)।

ত্রুটিটিতে উল্লিখিত ফোল্ডারটি মুছে ফেলার চেষ্টা করুন, যদি আপনার ত্রুটিটি এমন কিছু দেখায়:

PCH was compiled with module cache path '/Users/User/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8', but the path is currently '/Users/Stan/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8


হ্যাঁ তুমিই ঠিক. উপরের কোনওটিই আমার পক্ষে কাজ করে না। এটি উল্লিখিত ফোল্ডারটি মুছুন এবং পুনর্নির্মাণ করুন, এটিই।
ঝাং বাজ

এটা সঠিক উত্তর. প্রকল্পটি অন্য পথে সরানোর পরে ডেরিভেডডা পরিষ্কার / মুছুন মুছে ফেলা আমার পক্ষে কাজ করে না।
বিল চ্যান

13

ফাইন্ডারে প্রকল্পের অবস্থান থেকে Buildএবং DerivedDataফোল্ডারগুলি মুছে ফেলা আমার পক্ষে কাজ করেছিল।


.buildকিছু লোকের জন্য ফোল্ডার হতে পারে (আমাকে সহ)
ফ্লোরিয়ান ফাইস্টেরার

ঠিকভাবে কাজ করে. এছাড়াও দেখুন স্ট্যাকওভারফ্লো.com
মিঃ-আইডিই

13

আপনার আইওএস প্রকল্প ডিরেক্টরিতে, ModuleCache ফোল্ডারটি তৈরি এবং মুছতে যানreact-native run-iosআবার দৌড়াও , এটি প্রত্যাশা অনুযায়ী কাজ করা উচিত। সারসংক্ষেপ -rm -rf ios/build/ModuleCache


হ্যাঁ, এছাড়াও স্থানীয় প্রতিক্রিয়া দেখায় এবং এক্সকোড থেকে কাজগুলি তৈরি করে তবে এনপিএম রান আইওএস ব্যবহার করে সিএমএল থেকে নয়। প্রস্তাবিত হিসাবে ক্যাশে সরানো সমস্যার সমাধান solved

6

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

  1. ব্যর্থ হয়েছে যে বিল্ড লগ যান
  2. এটি খুঁজে পেতে cmd-f "SharedPrecompiledHeilers" ব্যবহার করুন (এটি একটি বিশাল ভয়াবহ জটিল কমান্ডলাইনের মাঝখানে হবে)
  3. "SharedPrecompiledHeeda" এবং সমস্ত অক্ষর টেক্সটটি আগে-আগে টানুন এবং নির্বাচন করুন তবে আপনি যতক্ষণ না সেই পথ বিটের শুরুতে (এখনও টেক্সটের বড় ব্লকের মাঝখানে থাকেন) উদাহরণ হিসাবে আমার জন্য: "/ var / ফোল্ডার / 03 /n71d4r551jv40j5nb8r9fjy80000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
  4. ওপেন ফাইন্ডার
  5. মেনু: যান -> ফোল্ডারে যান ...
  6. নির্বাচিত পাথটি অনুলিপি / আটকান
  7. "SharedPrecompiledHeilers" এ সমস্ত উপ-ফোল্ডার মুছুন (এটি নিরাপদ: এটি কেবল ক্যাশেড ডেটা)

... এবং এখন আপনার সমস্ত প্রকল্পগুলি "ফিক্সড" হবে, তবে শূন্য ক্যাচিংয়ের মাধ্যমে প্রথমবার নিজেকে পুনর্নির্মাণ করতে হবে (সুতরাং কেবলমাত্র নেক্সট বিল্ডটি কেবল স্বাভাবিকের চেয়ে ধীর হবে)।


5

আমার ক্ষেত্রে আমি এইভাবে SharedPrecompiledHeilers এর অধীনে সমস্ত ফাইলগুলি থেকে মুক্তি পেয়েছি এবং সবকিছু ঠিকঠাক কাজ শুরু করেছে:

sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete

এটি এমন একটি জিনিস যা আমি খুব সহজেই কোনও স্ক্রিপ্টে ব্যবহার করতে পারি, তাই এটি আমার পছন্দ হয়েছে ... আমি কোনও খারাপ মামলা আবিষ্কার করি নি [এখনও]
ম্যাট

5

সুইফট প্যাকেজ ম্যানেজারের সাহায্যে একটি প্রকল্প তৈরি করার চেষ্টা করার সময় আমি এই ত্রুটিটি পূরণ করেছি।

সমাধানটি কেবল .buildডিরেক্টরি মুছে ফেলা হয় ।


4

বিশেষত যদি আপনি কমান্ড লাইন থেকে তৈরি করেন বা আপনার যদি বিল্ড স্ক্রিপ্ট থাকে তবে এক্সকোড লক্ষ্য সাফ করা যথেষ্ট নয়। আপনি এই ফোল্ডারটি মুছে ফেলেছেন।

পূর্বনির্ধারিত শিরোনামের অবস্থানটি পাওয়া যাবে

Target -> build settings => "Build locations" -> Precompiled headers cached path

এর সাথে এই ফোল্ডারটি মুছুন,

#rm -fr SharedPrecompiledHeaders

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


আমার ক্যাশে পাথটি বিল্ড ফোল্ডারে / বিল্ড / মডিউলক্যাচে / ছিল। পুরানো অবস্থান থেকে এটি সরিয়ে ফেলা কৌশলটি করেনি
TheJeff

3

যদি এটি পরিষ্কার দ্বারা সমাধান করা হয় না। এটি একটি বিল্ড ক্যাশে সমস্যা - বিকল্প কীটি ধরে রাখুন এবং পণ্য> ক্লিন বিল্ড ফোল্ডারে নেভিগেট করুন। এটা আমার সমস্যা সমাধান করেছে।


3

আমার ক্ষেত্রে এক্সকোডটি আমার প্রকল্পের প্রধান বান্ডিলে ডেরিভডডেটা ফোল্ডার তৈরি করছিল (/ ব্যবহারকারী / পথ_আর_আপনার_প্রজেক্ট_সোর্স_কোড / আপনারপ্রজেক্টনাম / ডেরিভডটা)

আমি এই উত্সটি আমার উত্স কোড বান্ডিল থেকে সরিয়েছি এবং এখন এটি কাজ করছে।

এক্সকোড অগ্রাধিকার-> অবস্থানগুলিতে যান এবং ডেরিভডটাটি "আপেক্ষিক" তে নির্বাচিত কিনা তা দেখুন। নীচের ছবিটি দেখুন এখানে চিত্র বর্ণনা লিখুন


3

আমার জন্য এটি সর্বদা ঘটবে যখন আমি আমার প্রকল্পটি অন্য কোনও স্থানে অনুলিপি করি। আমি এটি একটি রেপো বা অন্য কিছুতে ঠেলাতে এটি করব।

এটি কার্যকর করার জন্য আমাকে পুরানো এবং নতুন অবস্থানগুলিতে বিল্ড ফোল্ডারটি (rm -rf বিল্ড /) মুছতে হবে। এটি বোধগম্য হয় কারণ বিল্ড ফোল্ডারে এমন ডেটা থাকবে যা নতুন অবস্থানের সাথে অপ্রাসঙ্গিক।

ডেরিভড ডেটা পরিষ্কার করা বা ভাগ করা পূর্বনির্ধারিত হাইডার্স ফোল্ডারগুলি মুছে ফেলা সত্যিই এই ক্ষেত্রে এটি করেনি।


2

আপনার "শিফট + কমান্ড + সি" ধরে রাখা উচিত এবং তারপরে আপনি সফলতা তৈরি করবেন


2

উদ্ভূত ডেটা সাফ করা এবং / অথবা মুছে ফেলা আমার পক্ষে কাজ করে না। কাজটি কী তা .pch ফাইলটিকে স্পর্শ করা / সংরক্ষণ করা (একটি অক্ষর যুক্ত করুন, তারপরে এটি মুছুন) এটিকে পুনর্নির্মাণে বাধ্য করতে হবে। এই কৌশলটি।


এটি আমার পক্ষে কাজ করেছে। আমি SharedPrecompiledHeeda ডিরেক্টরি, ক্লিন বিল্ড, ক্লিন বিল্ড ফোল্ডার ইত্যাদি মুছে ফেলেছি এটি
এক্সকোড

পিএইচসি ফাইলটি কোথায়?
দ্য জেফ

2

যদি ক্লিন বিল্ড করা আপনার পক্ষে কাজ না করে, তবে PCH ফাইলগুলিতে সন্ধান করুন /var/folders/../SharedPrecompiledHeadersএবং পি সি সি ফাইলগুলি সরিয়ে ফেলুন, যা আমার পক্ষে কাজ করেছিল।


2
উপরের উত্তরগুলি সহ আরও উত্তর সহ এর অনুরূপ একটি উত্তর রয়েছে @ সদৃশ উত্তর পোস্ট না করার চেষ্টা করুন।
michaellindahl

2

আপনি পণ্য বা বিল্ড ফোল্ডারটি সাফ করার চেষ্টা করতে পারেন:

SHIFT+ COMMAND+K

OPTION+ SHIFT+ COMMAND+K


2

আপনি যদি কমান্ড লাইনটি বিল্ডিংয়ের মাধ্যমে করেন xcodebuild, তবে দেখুন কিনা-derivedDataPath BUILD_DIR বিকল্পটি ব্যবহৃত হয়েছে কিনা। যদি তা হয় তবে আপনার ModuleCache.noindex ডিরেক্টরিটি সাধারণ এক্সকোড অবস্থানের পরিবর্তে BUILD_DIR এ থাকবে। ModuleCache.noindex ডিরেক্টরি মুছুন এবং আপনি প্রস্তুত হয়ে যাবেন।

আমি এই পরিস্থিতিতে ছুঁড়েছি কারণ আমি একটি রিএ্যাকটিভ নেটিভ অ্যাপ্লিকেশন তৈরি করছি এবং আইওএস ক্লায়েন্টটি সাধারণত কমান্ড লাইন থেকে রিয়েক্ট নেটিভ টুলসেটের মাধ্যমে তৈরি হয়।


1

আমি প্রকল্পটি পরিষ্কার করার এবং বিল্ড ফোল্ডারটি পরিষ্কার করার চেষ্টা করেছি যা উভয়ই কার্যকর করেনি।

এর পরে, আমি এক্সকোডকে পুরোপুরি ছেড়ে দিয়েছি, উত্পন্ন ডেটা ফোল্ডারটিকে এর মানক স্থানে মুছে ফেলেছি: Library / গ্রন্থাগার / বিকাশকারী / এক্সকোড / ডেরিভডটা, আবার এক্সকোড শুরু করে এবং প্রকল্পটি তৈরি করেছি।

এটি আমার জন্য সমস্যার সমাধান করেছে বলে মনে হয়েছিল।


আপনি কি দয়া করে কিছুটা ব্যাখ্যা করতে পারেন?
রিচার্ড ডালি

ক্লোজিং এক্সকোড, rm -rf ~/Library/Developer/Xcode/DerivedDataটার্মিনালে চলমান , এবং তারপরে এক্সকোড খোলার এটি আমার জন্য হয়েছিল। আমি নিশ্চিত করেছি যে আমার অবস্থানগুলি (এক্সকোড -> পছন্দ -> অবস্থানগুলি) সমস্ত ডিফল্ট ছিল।
sman591

1

আপডেট

এটি আমার জন্য পুরোপুরি কাজ করেন:

  • আপনার প্রকল্প বা কর্মক্ষেত্র বন্ধ করুন।
  • ফাইন্ডারে: শিফট + ⌘ সেমিডি + জি
  • আটকান: ~ / গ্রন্থাগার / বিকাশকারী / এক্সকোড / ডেরিভডটা /
  • ModuleCache ফোল্ডার এবং খালি ট্র্যাস মুছুন।
  • আপনার প্রকল্প খুলুন।
  • পরিষ্কার: শিফট + ⌘ সেমিডি + কে
  • বিল্ড: ⌘ সেমিডি + বি

xCode 7.3.1
রেফারেন্স এখানে


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