আইওএস 5 দিয়ে আর্মভি 6 এবং আর্মভি 7 আর্কিটেকচারের জন্য কীভাবে তৈরি করবেন


96

ইন iOS5 অ্যাপল ড্রপ armv6 থেকে স্থাপত্য ARCHS_STANDARD_32_BIT

আইফোন 3 জি সমর্থন রাখার জন্য আমি আইওএস 5-তে এমনকি আর্মভি 6-এ সংকলন করতে চাই ।

কেউ কি এর সমাধান খুঁজে পেয়েছিল?

উত্তর:


96

আমি সবেমাত্র iOS 4.0 এর একটি স্থাপনার লক্ষ্য নির্দিষ্ট করে কিছু তৈরি করেছি। আর্কিটেকচারগুলিতে কেবল আর্মভি 7 নির্দিষ্ট করে, এক্সকোড আমাকে সতর্ক করেছিল যে আইওএস 4.2 এর নীচে যে কোনও কিছু সমর্থন করতে আমাকে আর্কিটেকচারে আর্মভি 6 অন্তর্ভুক্ত করতে হয়েছিল। কেবলমাত্র সেই ক্ষেত্রটি সম্পাদনা করুন, ডায়ালগটি পপ আপ হয়ে গেলে "+" বোতামটি ক্লিক করুন এবং আক্ষরিক "আর্মভি 6" প্রবেশ করুন।

আমার ক্ষেত্রে, আমরা আমাদের অ্যাপ্লিকেশনটি আইওএস 4 এবং আইওএস 5 এর অধীনে কাজ করতে চাই। আমাদের কিছু সংশোধন করতে হয়েছিল যাতে এটি আইওএস 5 এর অধীনে সঠিকভাবে কাজ করবে তবে এই সমস্ত পরিবর্তনগুলি আইওএস 4-বন্ধুত্বপূর্ণ কোড পরিবর্তনগুলির মাধ্যমে হয়েছিল।

আমরা এমনভাবে কিছু আইওএস 5-নির্দিষ্ট ক্ষমতা যুক্ত করেছি যা অ্যাপ্লিকেশনটিকে আইওএস 4 এর অধীনে ক্রাশ না করে চালানোর অনুমতি দেয়। বিশেষত, আমরা iOS5 সক্ষমতার জন্য তাদের ব্যবহার করার চেষ্টা করার আগে পরীক্ষা করেছি এবং আইওএস 5-কেবলমাত্র লাইব্রেরিগুলিকে Oচ্ছিক হিসাবে সংযুক্ত করেছি।

সুতরাং, একটি আইওএস 5 জগতে আইফোন 3 জি সমর্থন করা ঠিক তত সহজেই বোঝাতে পারে "আমরা আমাদের অ্যাপ্লিকেশনটি আইওএস 4 এবং তার উপরে চালিত করতে চাই (কোনও আইওএস 5 বৈশিষ্ট্য ব্যবহার ছাড়াই)" বরং "আমরা নিশ্চিত করতে চাই যে আমাদের অ্যাপ্লিকেশন আইওএস 5 চলমান কোনও পুরানো ডিভাইসে চলেছে! "। এখানে একটি পার্থক্য আছে; চিন্তা করুন. :-)

যাইহোক, পিছনে আর্মভি 6 সমর্থন যুক্ত করা খুব সহজ। এবং আমি অনুমান করি এটি হ'ল: এক পর্যায়ে, যখন আর কোনও বাহু 6 ডিভাইস না থাকে তবে চিন্তার কারণ নেই (যে কারণেই হোক না কেন) এর জন্য আপনাকে আর তৈরি করতে হবে না। অ্যাপলের দৃষ্টিভঙ্গি হ'ল প্রত্যেকেরই যত তাড়াতাড়ি সম্ভব সর্বশেষতম হার্ডওয়্যারে আপগ্রেড করা উচিত। সুতরাং সেই বিশ্বে, সর্বশেষতম এবং সর্বশ্রেষ্ঠ ছাড়াও ডিভাইসগুলির কোনও কিছুর ডিফল্ট করার দরকার নেই। :-) সৌভাগ্যক্রমে (বা না), আমরা বিকাশকারীরা আসল বিশ্বে বাস করি এবং স্বীকার করি যে আপনাকে কিছু সময়ের জন্য পুরানো জিনিসগুলি সমর্থন করতে হবে। এবং আমি অনুমান করি যে এক্সকোড দেব দলটি এটি খুব জানে, এই কারণেই আপনি আর্মভ 6 সমর্থনটি খুব সহজভাবে যোগ করতে পারেন।


4
আপনার যথাযথ উত্তরের জন্য আপনাকে ধন্যবাদ :-) প্রকৃতপক্ষে আমি আইওএস ৪.২.১ বা তার চেয়ে কম আইফোন 3G এ আমার অ্যাপ চালাতে সক্ষম হতে চাই এবং বর্তমান ডিভাইসের জন্য কিছু আইওএস 5 নির্দিষ্ট বৈশিষ্ট্য পেতে চাই। আমি আর্কিটেকচারে কেবল "আর্মভি 6" যুক্ত করার চেষ্টা করিনি, আমি পরিবেশের পরিবর্তনশীল যেমন আর্চএসপিএসএনপিআরএডিআরডি_32_BIT এর সন্ধান করছিলাম এবং আমি কেবল ARCHS_UNIVERSAL_IPHONE_OS খুঁজে পেয়েছি তবে এটি কাজ করছে বলে মনে হয় না।
iGranDav

4
এটি যুক্ত করতে চেয়েছিলেন যে সেখানে প্রচুর সমাধানের পরামর্শ দেয় যে এটি "আর্মভ 6 আর্মভি 7" বলা উচিত - এটি আমার পক্ষে কার্যকর হয়নি। বর্তমানে কেবল "আর্মভি 6 AR (আরএইচএসসিপিএএনডিআরডি_32_বিআইটি)" আমার পক্ষে কাজ করে, যার অর্থ যা আছে তা থেকে মুক্তি পাবেন না, কেবল আর্কিটেকচার সেটিংয়ে "আর্মভি 6" যুক্ত করুন
22:25 এ ব্র্যাক করুন

4
আমি এই সমস্ত কিছু করেছি এবং আমার বিল্ডটি এখনও ব্যর্থ ছিল - কারণটি ছিল আমি একটি (অব্যবহৃত) রিলিজ বিল্ড আইওএস 5.0 এর একটি ডিপ্লোয়মেন্ট টার্গেটে সেট করেছিলাম যখন ডিবাগ এবং ডিস্ট্রিবিউশন 3.0 তে সেট করা হয়েছিল এবং এটি আর্মভ 6 এর জন্য এক্সকোড বিল্ডিং বন্ধ করে দেবে বলে মনে হচ্ছে। সমস্ত বিল্ডের জন্য স্থাপনার লক্ষ্যমাত্রা 3.0 এ নির্ধারণ করা সমস্যার সমাধান করেছে।
সাইমন পূর্ব

6
এটি আমার পক্ষে কার্যকর হয়নি (এমনকি 'আর্মভি 6' যোগ করার পরেও)। এমনকি অ্যাপ্লিকেশনটি আমার আইপড স্পর্শে উপস্থিত হয়নি। তবে আমি আবিষ্কার করেছি যে 'প্রয়োজনীয় ডিভাইস সক্ষমতা' (তথ্য ট্যাবের নীচে) এতে আর্মভ 7 ছিল। আমি কেবল এটি মুছে ফেলেছি এবং এটি পুরোপুরি চলতে শুরু করেছে
এরফিউস

4
আমি সাধারণত $ (VALID_ARCHS) ব্যবহার করি যা আমার পক্ষে কাজ করে। আমি সবেমাত্র পেয়েছি যে নতুন প্রকল্পগুলিও একটি সামর্থ্যের প্রয়োজনীয়তা 'আর্ম 7' যুক্ত করে। আমি কেবল এটি মুছে ফেলেছি এবং সমস্ত কাজ ঠিক আছে।
গর্ডন ডভ

51

এর সহজ উত্তরটি হ'ল আপনাকে "স্ট্যান্ডার্ড (আর্মভি 7) - $ (এআরএইচএসপিআরপিডিআরডি_32_BIT)" থেকে স্রেফ "আর্মভি 6" এবং "আর্মভি 7" এ পরিবর্তন করতে হবে। নীচের চিত্রটি দেখুন। এটি কাজ করার জন্য আপনাকে পূর্ববর্তী সেটিংস সহ লাইনটি মুছতে হবে।

আর্মভি 6 এবং আর্মভ 7 এর জন্য সঠিক সেটিংস


4
এটি একটি চিত্রের সাথে ব্যাখ্যা করার জন্য ধন্যবাদ - এটি সত্যই এটি পরিষ্কার করেছে।
রেডভেন

11

আপনি এটি প্রকল্প এবং লক্ষ্যগুলিতে সেট করেছেন তা নিশ্চিত করুন ... এটি নির্ধারণের জন্য আমার এক ঘন্টা ব্যয় হয়েছে। এটি একটির জন্য নির্ধারণ করেছিল কিন্তু অন্যটির জন্য নয়। আশাকরি এটা সাহায্য করবে. জিএলটিএ


এছাড়াও, আপনার যদি কোনও গ্রন্থাগার থাকে তবে আপনাকে এটি প্রকল্প এবং লক্ষ্যগুলিতে সেট করতে হবে।
উইলিয়াম জকুশ

9

আমি মনে করি যে অ্যাপল স্ট্যান্ডার্ড সেটিংস থেকে আর্মভ dropped নামার কারণ রয়েছে reason

আমি আইওএস 5 এসডিকে দিয়ে আর্মভি 7 / আর্মভি 6 সংকলন করেছি, তবে, আর্মভ 6 সংকলক রিলিজ মোডে ভুল কোড তৈরি করেছে। ঘন্টাখানেক পরে কাজ করার পরে (বিভিন্ন অপ্টিমাইজেশনের স্তরের সাথে এলএলভিএম বা জিসিসি চেষ্টা করা) ছেড়ে দিই।

সুতরাং, আমি যতক্ষণ না পুরানো আর্মভি 6 ডিভাইসগুলি সমর্থন করি ততক্ষণ আমি iOS এসডিকে 4.x এ ফিরে যাচ্ছি।

কোডের উদাহরণ:

// myView center=(160, 100)
CGPoint p=myView.center;  
// now p=(100,100) (what the heck?)
p.x=myView.center.x;
p.y=myView.center.y;
// now p=(160,100) 
p.y+=100;
// now p =(200,200) (what the heck?)

তবে আমার কাছে কিছুটা মেমোরি দুর্নীতি রয়েছে, তবে আর্মভ 7 সংকলক এবং আইওএসএসকে <5.0 এ এটি প্রত্যাশার মতো আচরণ করে।

শুভেচ্ছান্তে


আমি পুরানো ডিভাইসে আর্মভি 6 বিল্ডগুলিতে অদ্ভুত বাগগুলিও দেখছি। আপনি কি এটি খুঁজে পেয়েছেন, বা সত্যিই আগের কোনও এক্সকোডে ফিরে গিয়েছেন? এছাড়াও আমি নোট করি যে তারা আপনাকে আর পুরানো এসডিকে ডাউনলোড করতে দেয় না!
ক্রেগ ম্যাকমাহন

19
এটি এক্সকোড ৪.২ এবং সিজিপিয়েন্ট / সিজিসিস্ট স্ট্রাক্টগুলিতে: ডেভলফর্মস.এপল / থ্রেড / १२২০59৯?tstart=15 এ এলএলভিএম সংকলক 3.0 এর সাথে একটি জ্ঞাত সমস্যা । আর্মভি 6-তে থাম্বের জন্য বিল্ডিং অক্ষম করা এই ধরণের ত্রুটিগুলি প্রতিরোধ করে।
ব্র্যাড লারসন

কি দারুন! আমি আপনার উত্তরের জন্য খুব আনন্দিত, এটি আমার সাথেও ঘটছে।
ক্লাফু

7

এটি সত্যই এখনও কোনও সমাধান কিনা তা নিশ্চিত না, তবে আমি আবিষ্কার করেছি যে "আর্কিটেকচারগুলি" -এ the (আর্চএসসিপিআরডিআরডি_32_BIT) সংজ্ঞাযুক্ত স্ট্রিংয়ের পরিবর্তে "আর্মভি 6 আর্মভি 7" আমাকে আইওএস 5 এর সাথে বেস এবং আইওএস 4 একটি স্থাপনা হিসাবে সংকলন করার অনুমতি দেয় লক্ষ্য, এবং বৈধতা পাস।

আমি কোনও আইওএস 5-এক্সক্লুসিভ লাইব্রেরি বা কল ব্যবহার করছি না, তবে আমার পরবর্তী প্রকাশে যেতে চাইছি।


1

অ্যাপ্লিকেশনটি সংকলন করতে এবং অ্যাপ স্টোরে আপলোড করার জন্য আমার কেবল v (ARCHS_STANDARD_32_BIT) প্রতিস্থাপন করার দরকার নেই।

মার্কগ্র্যানফের পরামর্শ অনুসারে, আমি সহজভাবে আর্মভ 6 যুক্ত করে প্লেইন টেক্সট হিসাবে যুক্ত করেছি এবং কেবল দুটি লাইনে টাইপ করে।

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