আমি সত্যিই না দ্বিমত পোষণ করছি DarkDust এর উত্তর , কিন্তু যদি আমি আমার ভিতরের বিল ক্লিনটনের চ্যানেলের পারে, এটা কি মানে উপর নির্ভর করে সমর্থিত হয় :)
অ্যাপল চায় না আপনি অ্যাপ স্টোর অ্যাপ্লিকেশনগুলির জন্য এটি করছেন, তবে অপারেটিং সিস্টেম অবশ্যই এটি মঞ্জুরি দেয়। জেলব্রেক অ্যাপগুলি এই কৌশলটি সর্বদা ব্যবহার করে। আপনি সাধারণত একটি ফ্রেমওয়ার্ক / লাইব্রেরিটি গতিশীলভাবে খোলার জন্য একটি মানক ইউনিক্স কৌশল ব্যবহার করেন এবং তারপরে এটি স্টাফ ব্যবহার করেন। Dlopen ফাংশন আপনি পাশ দিয়ে গ্রন্থাগার খুলতে সক্ষম হবেন যে ফ্রেমওয়ার্ক পাথ , বা dylib। জেলinit()
ব্রেক ব্রেক অ্যাপ্লিকেশন তৈরির জন্য কিছু ডক্স থেকে , এখানে আপনার নিজের মধ্যে প্রয়োগ করা একটি ফাংশন কল করার একটি উদাহরণ রয়েছে , পৃথক dylib:
#include <dlfcn.h>
initWrapper() {
char *dylibPath = "/Applications/myapp.app/mydylib2.dylib";
void *libHandle = dlopen(dylibPath, RTLD_NOW);
if (libHandle != NULL) {
// This assumes your dylib’s init function is called init,
// if not change the name in "".
void (*init)() = dlsym(libHandle, "init");
if (init != NULL) {
init();
}
dlclose(libHandle);
}
}
তদুপরি, আইওএসের জন্য আপনাকে গতিশীল লাইব্রেরি প্রকল্প তৈরি করার অনুমতি দেওয়ার বিরুদ্ধে ডিফল্ট সীমাবদ্ধতা হ'ল এক্সকোডের এমন কিছু যা আপনার কাছে কয়েকটি এক্সকোড এক্সএমএল ফাইল সম্পাদনা করে ওভাররাইড করার ক্ষমতা রাখে:
IOS এ dylib তৈরি এবং ব্যবহার করুন
একবার আপনি এটি করার পরে, আপনি একটি সাধারণ iOS .dlib গ্রন্থাগার তৈরি করতে পারেন এবং উপরের নমুনা কোড অনুযায়ী এটি ব্যবহার করতে পারেন। (হ্যাঁ, আপনি যখনই নতুন এক্সকোড সংস্করণ ইনস্টল করবেন তখন আপনাকে সম্ভবত এই ক্ষমতাটি আনলক করতে হবে)।
সুতরাং, এটি কোনও প্রযুক্তিগত সীমাবদ্ধতা নয়, তবে অ্যাপ স্টোরের নীতি সীমাবদ্ধতা। আপনি যদি অ্যাপ স্টোরের মধ্যে সীমাবদ্ধ না হন তবে আপনি এটি করতে পারেন। নোট যে এই কৌশল নেই না jailbreaking প্রয়োজন, যদিও যদি অ্যাপ্লিকেশন স্যান্ডবক্সভুক্ত হয়, এটি সীমিত হতে পারে যেখানে dylibs থেকে লোড করা যাবে।
সম্পাদনা করুন: এই তথ্যটি ভবিষ্যতের লিঙ্ক পচায় হারিয়েছে না তা নিশ্চিত করার জন্য, কীভাবে এক্সকোডে আইওএস ডায়ালিবস সক্ষম করতে হবে সেই লিঙ্কটির বিষয়বস্তু এখানে। ( দ্রষ্টব্য: এই প্রক্রিয়াটি এখনও এক্সকোড 4 এ কাজ করে তবে পাথগুলিতে আপডেট ইত্যাদির জন্য নীচে মন্তব্য (গুলি) দেখুন) উত্সটি আইওএস প্লেস ব্লগ :
এক্সকোড আপনাকে আইওএসের জন্য ডাইলিব তৈরি করতে দেয় না। অ্যাপ্লিকেশনটি যদি একক বাইনারি না হয় তবে তা প্রত্যাখ্যান করা হবে। তবে আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা plugচ্ছিক মডিউলগুলি লোড করার জন্য প্লাগ-ইন আর্কিটেকচার রয়েছে। আমি আইওএসে সম্পূর্ণরূপে পোর্ট করার আগে ধারণাটি প্রমাণ করার জন্য একটি দ্রুত প্রোটোটাইপ চাই। ডাইলিব সহজভাবে কাজ করতে পারলে এটি করা দ্রুত। সুতরাং, এই পোস্টটি দেখায় যে কীভাবে ডাইলিব তৈরি এবং ব্যবহার করতে হয় তবে সচেতন থাকুন এটি অ্যাপ স্টোরে অনুমোদিত হবে না। (10.6.4 এ এক্সকোড 3.2.4 দিয়ে পরীক্ষিত)
1. সম্পত্তি ফাইল তালিকাতে এই ফাইলগুলি খুলুন: / ডেভেলপার / প্ল্যাটফর্মগুলি / ম্যাকোএসএক্স.প্ল্যাটফর্ম / ডেভেলপার / লাইবারি / এক্সকোড / স্পেসিফিকেশনস / ম্যাকসএক্স পণ্য প্রকার.এক্সসিএসপেক এবং / ডেভেলপার / প্ল্যাটফর্ম / আইফোনসিমুলেটর.প্ল্যাটফর্ম / ডেভেলপার / লাইফেরি / এক্সকোডফিকেশন / আইফোন সিমুলেটার প্রোডাক্টটাইপস.এক্সসিএসপেক
২. " ম্যাকসএক্সএক্স পণ্য প্রকার। Xcspec " এ আইটেমটি সন্ধান করুন যা পণ্যের ধরণ রয়েছে com.apple.product-type.library.dynamic
এবং এটিকে " আইফোন সিমুলেটর প্রোডাক্টটাইপস.এক্সসিস্পেক " এ টানুন ।
৩. একই জায়গায় পাওয়া যায় " ম্যাকসএক্সএক্স প্যাকেজ প্রকার। Xcspec " এবং " আইফোন সিমুলেটর প্যাকেজটাইপস। এক্সসিএসপেক " খুলুন ।
৪. প্যাকেজের ধরণ রয়েছে এমন " ম্যাকোসএক্স পণ্য প্রকারের প্রকার। Xcspec " এ আইটেমটি সন্ধান করুন com.apple.package-type.mach-o-dylib
এবং এটিকে " আইফোন সিমুলেটর প্যাকেজটাইপস.এক্সসিস্পেক " এ টানুন ।
৫. " আইফোন.এস.প্ল্যাটফর্ম " এর জন্য পদক্ষেপগুলি পুনরাবৃত্তি করুন এবং এক্সকোড চালু থাকলে এটি পুনরায় চালু করুন।
এখন, একটি dylib নির্মাণ করা যাক। " কোকো টাচ স্ট্যাটিক লাইব্রেরি " টেম্পলেট দিয়ে শুরু করুন। প্রকল্পের মধ্যে ফাউন্ডেশন.ফ্রেমওয়ার্ক অন্তর্ভুক্ত করা উচিত। ডাইলিব তৈরির জন্য আমি এখানে টেম্পলেটটির উপরে পরিবর্তনগুলি করেছি।
1. টেক্সট এডিটরটিতে ফাইল প্রজেক্ট.পিবিএক্সপ্রজ (এক্সকোড প্রকল্পের ফাইলের বান্ডেলের ভিতরে পাওয়া যায় ) খুলুন । স্ট্রিং " প্রোডাক্ট টাইপ " অনুসন্ধান করুন , এর মানটি এতে পরিবর্তন করুন com.apple.product-type.library.dynamic
;
এখন, এক্সকোড দিয়ে প্রকল্পটি খুলুন, প্রকল্প-> প্রকল্প সেটিংস সম্পাদনা করুন এ যান
২. " ইনস্টলেশন ডিরেক্টরি " সেট করা হয়েছে @executable_path/
কারণ আমি অ্যাপ্লিকেশনটির এক্সিকিউটিভের মতো একই ডিরেক্টরিতে ডাইলিব স্থাপন করার পরিকল্পনা করেছি।
3. ডায়ামিক লাইব্রেরিতে " ম্যাচ-ও টাইপ " সেট করুন
৪. " এক্সিকিউটেবল এক্সটেনশন " dylib এ সেট করুন
৫. " এক্সিকিউটেবল উপসর্গ " খালি সেট করুন
6. লাইব্রেরিতে একটি বা দুটি সহজ পদ্ধতি যুক্ত করুন এবং এটি তৈরি করুন।
এখন, এটি পরীক্ষা করার জন্য একটি অ্যাপ তৈরি করুন। এবার আমি ভিউ-ভিত্তিক অ্যাপ্লিকেশনটি বেছে নিই । লাইব কল করতে এবং ফিরে বার্তা দেখানোর জন্য একটি ইউআইবাটন এবং একটি ইউআইএলবেল হুক করুন। আপনি সম্পূর্ণ প্রকল্প টেস্ট অ্যাপ্লিকেশনটি ডাউনলোড করতে এবং এটির সাথে খেলতে পারেন।