উত্তর:
আমার জন্য পূর্বের কোনও সমাধান কাজ করেনি। আমরা আবিষ্কার করেছি যে ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
বিল্ড সেটিংসে ইয়েসকে সেট করা দরকার এমন একটি পতাকা রয়েছে (পূর্ববর্তী সংস্করণগুলিতে: "এম্বেড করা সামগ্রীগুলিতে সুইফ্ট কোড রয়েছে")। এটি ডিফল্টভাবে ছিল না!
সুইফট ব্যবহার শুরু করার জন্য কোনও উদ্দেশ্য-সি প্রকল্পের রূপান্তরকালে কোনও কিছু ভুল হয়ে থাকলে এই ত্রুটি ঘটতে পারে। সমস্যাটি হ'ল লিঙ্কার বিল্ড সেটিংস কখনই সঠিকভাবে কনফিগার করা হয়নি, তাই আপনাকে এটি হাতে হাতে করতে হবে। রানপথ অনুসন্ধানের পথগুলি তৈরির সেটিংটি সন্ধান করুন এবং এটিকে সেট করুন:
$(inherited) @executable_path/Frameworks
সম্পাদনা: আমার আরও যোগ করা উচিত যে পুরোপুরি অন্য কোনও কারণে সৃষ্ট এই ত্রুটিগুলির সাম্প্রতিক প্রসার ঘটেছে - অ্যাপল সম্ভবত সুইডে একটি পরিবর্তন করেছে, সম্ভবত এক্সকোড 6.1 বা 6.1.1 থেকে শুরু হয়েছিল। একমাত্র সমাধানটি মনে হচ্ছে এক্সকোড ছেড়ে যাওয়া, কীচেন অ্যাক্সেসে আপনার শংসাপত্রগুলি ধ্বংস করা, সদস্য কেন্দ্রে গিয়ে সমস্ত শংসাপত্র এবং প্রোফাইলগুলি মুছুন (স্টোরের অ্যাপ্লিকেশনগুলির জন্য প্রোফাইলগুলি বাদ দিয়ে - আপনি সেগুলি মুছতে পারবেন না), এবং তারপরে শুরু করুন স্ক্র্যাচ থেকে পুরো শংসাপত্র অনুরোধ প্রক্রিয়া।
আমি কেন সত্যিই নিশ্চিত নই যে কেন এই প্রশ্নটিকে নিম্নমানের করা হচ্ছে, আমি যখন প্রথমটি একটি বিদ্যমান প্রকল্পের সাথে সুইফট ব্যবহার করার চেষ্টা করেছি তখন আমারও এই সমস্যা হয়েছিল। একটি এক্সকোড পুনঃসূচনাও আমার জন্য এটি স্থির করে।
আমি এই বিষয়ে দীর্ঘ অনুসন্ধান। এই সমস্যাটির বেশ কয়েকটি কারণ রয়েছে।
যদি আপনি এবং অবজেক্ট সি প্রকল্পের সুইফট কোড / লাইব্রেরিটির মুখোমুখি হয়ে থাকেন তবে আপনার সমাধানটি 1-2-3 ব্যবহার করা উচিত
আপনি যদি নতুন একটি সুইফট প্রকল্প সলিউশন 4 নিয়ে এই সমস্যার মুখোমুখি হন তবে আপনার পক্ষে সবচেয়ে উপযুক্ত হবে।
এক্সকোড পুনরায় চালু করুন, তারপরে কম্পিউটার এবং আইফোন
প্রজেক্ট বিল্ড সেটিংসে যান এবং এতে Always Embed Swift Standard Libraries
(পূর্বে Embedded Content Contains Swift Code
) পতাকা সেট করুনYES
প্রকল্পের বিল্ড সেটিংসে যান এবং যোগ @executable_path/Frameworks
করার জন্য Runpath Search Paths
বিকল্প
উপরের কোনওটি যদি কাজ না করে তবে এটি করা উচিত। অ্যাপল মনে হচ্ছে নিনজা প্যাচড শংসাপত্রগুলি এয়ার সাইন এর পোস্টে উল্লিখিত হয়েছে
ইনহাউস শংসাপত্রগুলিতে
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
তারা ওউ নামে একটি নতুন ক্ষেত্র যুক্ত করেছে
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
সুতরাং আপনার কেবল শংসাপত্র এবং বিধান পুনরায় তৈরি করা উচিত
@executable_path/../Frameworks
যেখানে আইওএস প্রকল্পগুলি ..
মাঝখানে না করে এটির প্রয়োজন হয় । আপনি যদি একটি লক্ষ্যটিকে একটি ওএস থেকে অন্য ওএসে রূপান্তর করেন তবে এই মানটি পরিবর্তন করা গুরুত্বপূর্ণ।
আমার ক্ষেত্রে আমি একটি কাস্টম ফ্রেমওয়ার্ক আমদানি করার চেষ্টা করছিলাম এবং অনুরূপ ত্রুটি পাচ্ছিলাম। দেখা যাচ্ছে যে আমাকে লিঙ্কযুক্ত ফ্রেমওয়ার্ক এবং লাইব্রেরিগুলির পরিবর্তে এম্বেডযুক্ত বাইনারিগুলিতে ফ্রেমওয়ার্কটি আমদানি করতে হয়েছিল।
এম্বেডড বাইনারিগুলি প্রকল্প সেটিংস -> -> সাধারণের অধীনে
অ্যাডহক / এন্টারপ্রাইজ বিতরণ বিল্ডগুলির সাথে এই সমস্যাটি রয়েছে এমন বিকাশকারীদের জন্য,
ডেভ পোর্টাল থেকে উত্পাদন শংসাপত্র তৈরি করুন এবং তারপরে বিতরণ প্রোফাইলটি পুনরায় তৈরি করুন। আপনার ম্যাক এ উভয়ই ডাউনলোড করুন এবং ইনস্টল করুন। নিশ্চিত হয়ে নিন যে আপনি আপনার এক্সকোড বিল্ড সেটিংসে সঠিক প্রোফাইলটি নির্বাচিত করেছেন এবং আপনার অ্যাপটি পুনরায় তৈরি করেছেন।
সমাধান 5:
আমার ক্ষেত্রে, এফফিউগুলির উত্তরে উল্লিখিত সমস্ত সমাধানগুলি খুব সহায়ক ছিল কিন্তু কোনওটিই কার্যকর হয়নি। আমি আমার প্রকল্পের লক্ষ্যমাত্রার "সাধারণ" বিভাগে "এম্বেডড বাইনারিস" বিভাগে আমার সুইফট লাইব্রেরি যুক্ত করে আমার সমস্যার সমাধান করেছি। সম্ভবত এটি আমার কার্যক্ষেত্রে আমার সুইফট কাঠামোটি অন্তর্ভুক্ত করার কারণে হয়েছে? যা এখন এটি সংকলন! প্রস্তুত সুইফ্ট, আমি এখানে আছি!
আমার জন্য, বিষয়টি আমার অ্যাপল ওয়ার্ল্ডওয়াইড বিকাশকারী সম্পর্ক শংসাপত্র কর্তৃপক্ষ অবৈধ ছিল এই কারণে।
এটি এখান থেকে ডাউনলোড করুন: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
এটিকে টানুন এবং কেচেন অ্যাক্সেসে ফেলে দিন, প্রকল্পটি পরিষ্কার করুন এবং চালান।
আমার একটি ওবজ-সি প্রকল্প ছিল যেখানে আমি সুইফট উত্স ফাইল যুক্ত করতে শুরু করি। নিম্নলিখিতটি আমার জন্য সমস্যাটি স্থির করেছে:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
আমি সবেমাত্র Xcode 6.3 টেমপ্লেটগুলি থেকে একটি নতুন প্রকল্প তৈরি করেছি এবং আমার পুরানো মূল প্রকল্পের সাথে প্রকল্পের সেটিংসের তুলনা করেছি।
Alt ধরে রাখার চেষ্টা করুন, তারপরে পণ্য -> পরিষ্কার বিল্ড ফোল্ডারে যান ...
আশা করি এটি কারও সাহায্য করবে ..
এই ঘটনার কারণগুলি অনেকগুলি। স্রেফ একটি মজার সপ্তাহান্তে কাটিয়েছি যার ফলে এটি আরও একটি সমস্যা খুঁজে পেয়েছে (কোড স্বাক্ষরের ক্রম), আমি একটি সংক্ষিপ্ত উত্তর তৈরি করতে চেয়েছিলাম যা সমস্ত সম্ভাব্য সমাধানকে একসাথে নিয়ে আসে:
DerivedData
এবং Build
ডিরেক্টরিগুলিও মুছতে পারেন । অবস্থানের জন্য পছন্দগুলি নীচে দেখুন DerivedData
। Build
আপনার প্রকল্প ফোল্ডারে থাকা উচিত।@executable_path/Frameworks
। এটাই সহজ জিনিস। আপনি যদি নিজের কমান্ড লাইন বিল্ড করছেন তবে .ipa
আপলোড করার জন্য আপনি নিজের ফাইল তৈরি করতে পারেন । সেক্ষেত্রে আপনাকে নিম্নলিখিতগুলি নিশ্চিত করতে হবে:
SwiftSupport/iphoneos
সংস্করণটি সংস্করণটির মধ্যেContents/YourApp.app/Frameworks
বাইনারি সামঞ্জস্যপূর্ণ না সেহেতু সুইফট ফাইলগুলির সংস্করণটি একইরূপে রয়েছে তা নিশ্চিত করুন, আপনি অবশ্যই নিশ্চিত করতে পারেন যে আপনি যে অ্যাপ্লিকেশনটি দিয়েছিলেন সেগুলি এই সংস্করণগুলির একটি। আপনি এই লাইব্রেরি অধীনে খুঁজে পেতে পারেন /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
।codesign
লাইব্রেরি ও ফ্রেমওয়ার্ক ফাইল (অধীনে Frameworks
মধ্যে .app
ফোল্ডার) প্রথম এবং তারপর সমগ্র সাইন .app
গাছ। .app
গাছ একটি সঙ্গে সাইন ইন করতে হবে entitlements.plist
কিন্তু না অবকাঠামো।আশা করি যখন সুইফট 3.0 বের হবে এবং আমাদের আর অ্যাপ্লিকেশনগুলির সাথে সুইফটকে বান্ডিল করার দরকার নেই এই পুরো সমস্যাটি চলে যাবে।
প্রোডাকশন শংসাপত্র সহ একটি অ্যাডহক (বা এন্টারপ্রাইজ) মোবাইল প্রোভিশন ব্যবহার করে আমার এই সমস্যাটি হয়েছিল। বিকাশ শংসাপত্র এবং মোবাইলপ্রোভিজনে স্যুইচ করা সমস্যার সমাধান করেছে।
আমার প্রকল্পটি কিছু উদ্দেশ্যমূলক-সি ক্লাস সহ একটি সুইফট প্রকল্প। পুরানো ইনহাউস (এন্টারপ্রাইজ) শংসাপত্রের সাথে সাইন ইন করার সময় আমারও একই সমস্যা হয়েছিল।
নিম্নলিখিত পদক্ষেপগুলি আমার জন্য এটি স্থির করে।
Runpath Search Paths
বিল্ড সেটিং: $(inherited) @executable_path/Frameworks
। সমাধান 6:
আমাদের ক্ষেত্রে, এন্টারপ্রাইজ বিতরণ শংসাপত্র বাতিল করা হয়েছিল। একটি নতুন শংসাপত্র তৈরি করা এবং প্রভিশন প্রোফাইল আপডেট করা সমস্যার সমাধান করে।
(এই ত্রুটির জন্য বিভিন্ন কারণ রয়েছে বলে মনে হয় Hope আশা করি এটি কাউকে সহায়তা করবে))
আমি একই সমস্যার মুখোমুখি হয়েছি, সঠিক কোড সাইন পরিচয়টি সেট করা সমস্যার সমাধান করেছে (সেটিংস-> কোড স্বাক্ষরকরণ পরিচয় তৈরি করুন) solved
অনুযায়ী অ্যাপল প্রযুক্তিগত প্রশ্ন "সমস্ত এন্টারপ্রাইজ এবং স্ট্যান্ডার্ড আইওএস ডেভেলপার সার্টিফিকেট পর iOS 8 এ মুক্তি সুইফট ভাষা অ্যাপস চালনা করার অনুমতি দেওয়ার সঠিক স্থানে নতুন দল আইডি ক্ষেত্র আছে নির্মিত যে"
যদি আপনি এমবেডেড বাইনারিগুলির মাধ্যমে তিনটি ফ্রেমওয়ার্ক যুক্ত করেন তবে সেগুলি লিঙ্কযুক্ত ফ্রেমওয়ার্ক এবং লাইব্রেরিতে যুক্ত করা হবে। লিঙ্কযুক্ত ফ্রেমওয়ার্ক এবং লাইব্রেরিতে তিনটি এন্ট্রি মুছুন সমস্যার সমাধান করবে।
পুনরায় লঞ্চ করা এক্সকোড এবং ম্যাক পুনরায় চালু করার মতো যাদু পদ্ধতিগুলি আমার উপর কাজ করে না।
ওএস এক্সের সর্বশেষ সংস্করণে আপগ্রেড করুন (যোসাইমাইট)
কয়েক ঘন্টা পরীক্ষার এবং ত্রুটির পরে আমি এই সমস্যার সমাধানে এসেছি। - এটি অবশ্যই আপনার ক্ষেত্রে প্রযোজ্য।
আমি আমার ম্যাক ওএস এক্সকে ম্যাভেরিক্স থেকে ইয়োসেমাইটে আপগ্রেড না করা পর্যন্ত আমার একই সমস্যা ছিল। - এটি আমার সমস্যা সমাধান করেছে, আশা করি এটিও আপনার সমস্যার সমাধান করে দিয়েছে
অ্যাপল এবং নতুন শংসাপত্র সহ ওয়েবে যে সমস্ত সমাধান পাওয়া গেছে সেগুলি আমি চেষ্টা করেছিলাম। সাফল্য ছাড়া.
আমি এক্সকোড চালানোর একমাত্র উপায়, 6 মাস চেষ্টা করার পরে, আমার ম্যাকবুকটিতে একটি নতুন অ্যাকাউন্ট তৈরি করছিল।
সাধারণত আপনি যদি আপনার বিল্ড পর্যায়গুলির "কপি ফাইলগুলি" বিভাগে এই লাইব্রেরিটি যুক্ত করেন তবে এই ত্রুটিটি অদৃশ্য হয়ে যাবে।
এই সমাধানগুলির কোনওটিই আমার পক্ষে ধারাবাহিকভাবে কাজ করছে বলে মনে হয় না; প্রতিটি সফল রান দুটি পরে, এটি আবার ব্যর্থ হবে। "এম্বেড থাকা সামগ্রীটিতে সুইফ্ট কোড রয়েছে" পতাকাটি সর্বদা আমার জন্য হ্যাঁ সেট করা হয়েছিল।
দেখা যাচ্ছে যে আমি এক্সকোডটিকে 6.3- সামঞ্জস্যপূর্ণ হিসাবে সেট করেছি। এটিকে আবার পরিবর্তন করে ৩.২-সামঞ্জস্যপূর্ণ হওয়ায় এটি সমাধান হয়েছে:
আমারও সমস্যা ছিল, কেবল এটি সন্ধান করা হয়নি libswiftXCTest.dylib
।
সমাধানটি ছিল XCTest.framework
টেস্টের টার্গেটে যোগ করা Build Phases/Link Binary with Library
। আমি যখন মূল লক্ষ্যটি তৈরির চেষ্টা করছিলাম তখনও আমি এই ত্রুটিটি পেয়েছিলাম was
আমি যখন পুরানো প্রকল্পে সুইফট ভাষার সাথে একটি নতুন টুডু এক্সটেনশন লক্ষ্য যুক্ত করেছি তখন এটি প্রকাশিত হয়েছিল। প্রস্তাবিত সেটিংসে প্রকল্পটি আপডেট করে সহজেই স্থির করা হয়। এক্সকোড 6.0.1
আইওএস 8.1.1 এর সাথে আইফোন 5 এ পরীক্ষা করে আমি ম্যাভেরিক্স, এক্সকোড 6.1.1 ব্যবহার করে একই সমস্যা পেয়েছি। আমি নতুন শংসাপত্র এবং সরবরাহকারী প্রোফাইল সহ সমস্ত সম্ভাব্য সমাধানের চেষ্টা করেছি, তবে কিছুই সাহায্য করেনি। আমি প্রকল্প স্তর এবং লক্ষ্য স্তরে Embedded Content Contains Swift Code
এবং Runpath Search Paths
উভয়ই পরিবর্তনগুলি করেছি ।
আমি এখন ইয়োসেমাইট ইনস্টল করেছি এবং কোনও পরিবর্তন ছাড়াই এটি কাজ শুরু করে।
এখানে একই সমস্যা, আমার জন্য এটি ক্র্যাশলিটিক্স / ফ্যাব্রিক / বিটা / টুইটার / যাই হোক না কেন তারা নিজেরাই বাইনারি আপলোড করে যা এম্বেডড ফ্রেমওয়ার্কগুলি অনুপস্থিত ছিল। যদি আমি একটি সংরক্ষণাগার তৈরি করি এবং তারপরে স্ট্যান্ডার্ড উপায়ে একটি এন্টারপ্রাইজ বিল্ড রফতানি করি তবে তারা একটি কবজ কাজ করেছিল।
মাস কয়েক মাস পরে এখানে সবকিছু চেষ্টা করে ... পাগলের সংজ্ঞা ... একটি নতুন ম্যাক ব্যবহারকারীর অধীনে এক্সকোড শুরু করা আমার জন্য এটি সমাধান করেছে।
আমি ~ / লাইব্রেরি / ডেভেলপার / * সরিয়ে দিয়ে পুনরায় ইনস্টল করা Xcode- তাই এটির কাজটি করার জন্য আর কিসের বিন্যাস করতে হবে তার কোনও চিহ্ন নেই।
otool