অ্যাপস্টোরের কোনও অ্যাপ্লিকেশনটিতে আপডেটের মাধ্যমে এনএসইউসারডেফাল্টগুলি কী অবিচল থাকে?


106

এই ঘটনা কি? আপনি যখন অ্যাপ স্টোরের কোনও অ্যাপ্লিকেশনটিতে আপডেট জমা দিবেন বা সেগুলি পুনরায় সেট করা হবে তখন এনএসইউসারডেফল্টগুলি কী পুনরায় সেট হয়?

আমার অ্যাপ্লিকেশন আপডেট হওয়ার সময় ক্রাশ হচ্ছে তবে পুরোপুরি ডাউনলোড করার পরে ক্রাশ হচ্ছে না - তাই আমি নতুন করে ডাউনলোড হওয়া সেশনে আপডেট সেশনে কী আলাদা হতে পারে তা নির্ধারণের চেষ্টা করছি।

চিয়ার্স, নিক।


ডকুমেন্টস এবং লাইব্রেরিতে থাকা ফাইলগুলি ডকুমেন্টেশনের দাবি হিসাবে সংরক্ষণ করা হবে : বিকাশকারী
অ্যাপ্লিকেশন /

উত্তর:


116

ব্যবহারকারী সাধারণত অ্যাপটিকে মুছে না ফেলে এগুলি সাধারণত পুনরায় সেট করা হয় না। বেসিক ডেটাগুলির জন্য, এনএসইউসারডেফাল্টস হ'ল ডেটা সংরক্ষণের সর্বোত্তম উপায় যেমন পছন্দসমূহ, তারিখ, স্ট্রিং ইত্যাদি you আপনি যদি চিত্র এবং ফাইলগুলি সংরক্ষণ করতে চান তবে ফাইল সিস্টেমটি আরও ভাল বাজি bet


5
অ্যাপল ডকুমেন্টেশনে কোথাও এটি উল্লেখ করা হয়েছে?
নিক কার্টরাইট

1
দুঃখিত - আমি আপনার দ্রুত উত্তর জন্য আপনাকে ধন্যবাদ ভুলে গেছি! - যদি কেউ অ্যাপল ডকুমেন্টেশনের যে কোনও রূপের লিঙ্কটি খুঁজে পেতে পারে যা এটি বলে, এটি দুর্দান্ত হবে .... এনএসউসারডেফাল্টসের নথিতে এটি এ সম্পর্কে কিছুই বলে না, তাই আমি মনে করি আমি (ভুলভাবে) ধরেছিলাম ডিফল্টগুলি মুছে ফেলছি। অ্যাপলকে অবশ্যই অ্যাপ্লিকেশনগুলি আপডেট করার পক্ষে এটি নিরাপদতম উপায় বলে মনে হচ্ছে!
নিক কার্টরাইট

এটি সবচেয়ে নিরাপদ উপায় হতে পারে, তবে কোনও অ্যাপ্লিকেশন আপডেট হওয়ার সাথে সাথে তাদের যদি তাদের সমস্ত পছন্দগুলি পুনরায় সেট করতে হয় তবে এটি ব্যবহারকারীদের জন্য অবিশ্বাস্যরকম বিরক্তিকর হবে। আমার সাধারণত প্রতিদিন তিন বা চারটি অ্যাপ আপডেট থাকে; আমি নিশ্চিত অন্যান্য আইফোন ব্যবহারকারীদের আরও বেশি আছে। প্রতিটি আপডেটের জন্য মুছে ফেলা পছন্দগুলি মূলত আমার আইফোনটিকে ব্যবহারযোগ্য করে তুলবে।
ক্রিস্টোফার জনসন

1
ডকুমেন্টস ফোল্ডারে থাকা ডেটা NSUserDephaults হিসাবে ঠিক সহজেই অদৃশ্য হয়ে যেতে পারে। এগুলি উভয়ই বিরল ঘটনা, তবে সাধারণ আপগ্রেড প্রক্রিয়াটির সাথে একেবারেই কিছু করার নেই
কনিয়েবিয়ার

1
ধন্যবাদ ক্রিস্টোফার - এবং হ্যাঁ আমি সম্মত। আমার সমস্যাটি হ'ল আমি প্রোগ্রামগত ইভেন্টগুলি সঞ্চয় করার জন্য এনএসউসারডেফাল্টগুলি ব্যবহার করেছিলাম এবং অ্যাপ্লিকেশন ইনস্টল হওয়ার পরে সেগুলি পুনরায় সেট করার বিষয়ে নির্ভর করে। আইফোন ডিভাইসে আমার সমস্ত টেস্টিং (এবং অ্যাপল টেস্টিং) অ্যাপ্লিকেশনটিকে একটি নতুন ইনস্টল হিসাবে পরীক্ষা করেছে। আপডেট হিসাবে কোনও ডকুমেন্টেশন বা পরীক্ষার উপায় ছাড়াই আমি আপডেট হওয়া ক্র্যাশটির পুনরাবৃত্তি করতে অক্ষম ছিলাম আমাদের সমস্ত গ্রাহকরা এখন ভোগ করছেন। সংক্ষেপে - সম্ভবত একটি পাঠ হার্ড উপায় শিখেছি !!
নিক কার্টরাইট

7

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


4
  1. পোস্ট করা প্রশ্নের সরাসরি উত্তর: হ্যাঁ।
  2. আপনার সমস্যা: যুক্তিযুক্ত সমস্যার কারণে আপনার অ্যাপটি ক্র্যাশ হয়ে গেছে। মনে করুন আপনি কোনও বস্তু ডিফল্টে সঞ্চয় করেন এবং অ্যাপ্লিকেশনটি লঞ্চের মূল্য (বা অন্য কোথাও) পরীক্ষা করে। আপডেট করার সময় আপনি এটি যাচাই বা ব্যবহারের পদ্ধতিতে পরিবর্তন করতে পারেন, যেমন আপনি কোনও মান আশা করেন তবে বস্তুটি শূন্য, বা বিপরীত। এটি একটি SIGABRT বা EXC_BAD_ACCESS এর কারণ হতে পারে।

2

যদি আপনার কোরেডাটা মডেল থাকে এবং মাইগ্রেশন পরিচালনা না করে আপনি আপনার মডেল এবং আপডেটে কিছু পরিবর্তন করেন তবে সম্ভবত আপনার অ্যাপ্লিকেশনটি আপডেট হওয়ার কারণে ক্রাশ হচ্ছে ...


আমি আশা করব যে এটি একটি কেস হতে পারে :) কোনও এনএসউজারডিফোল্ট নয়
জুলিয়ান ক্রোল

1

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

আমাদের অভিজ্ঞতা NSUserDefaults সাফ হয়ে যায় না যখন কোনও ব্যবহারকারী আমাদের অ্যাপ্লিকেশন আপডেট করে তবে সেটিংস প্রদর্শনটি আপডেট হয় না।


0

এই ক্ষেত্রে সচেতন হন, যখন আপনার অ্যাপটি পটভূমিতে চলছে এবং আপনি NSUserDephaults এ আপনার সঞ্চিত মানগুলি অ্যাক্সেস করতে পারবেন না:

এরিক:

এটি সম্পর্কে অনেক থ্রেড এবং বাগ রয়েছে, তবে আইওএস 9-এ আবার আমার সাথে এটি ঘটছে I পুনরুত্পাদনযোগ্যভাবে, যদি আমি আমার ফোনটি রিবুট করি এবং আমার অ্যাপ্লিকেশনটির ব্যাকগ্রাউন্ড প্রবর্তনের জন্য অপেক্ষা করি, তবে আমি যখন অ্যাপটি খুলি তখন দেখতে পাই যে [[এনএসউসারডেফল্টস স্ট্যান্ডার্ড ইউজারডেফাল্টস] ডিকশনারিপ্রেসিভেশন] এ সমস্ত সিস্টেমের মান রয়েছে, যেমন অ্যাপলআইটিউনস্টোর স্টোর আইটেমকিন্ডস ইত্যাদি রয়েছে তবে এতে নেই but আমি যে মান নির্ধারণ করেছি তার মধ্যে যদি আমি জোর করে ছেড়ে দিতে এবং অ্যাপ্লিকেশনটি পুনরায় চালু করি তবে আমার সমস্ত মান ফিরে আসবে। ফোনটি আনলক হওয়ার আগে থেকেই এটি "খালি" মানক ব্যবহারকারী ডেফাল্টগুলি ক্যাচ করার এড়াতে কি কোনও উপায় আছে বা অ্যাপটি জোর করে ছাড়ার পরে কমপক্ষে তারা কখন গণ্ডগোল করছে তা নির্ধারণ করার জন্য এবং ঠিক করার জন্য?

এস্কিমো (এস্কিমো 1@apple.com):

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

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

ডেটা সুরক্ষা প্রসঙ্গে এনএসউসারডেফাল্টসে দুটি সমস্যা রয়েছে:

এটি একটি সম্পূর্ণ বিমূর্ত API: এর ব্যাকিং স্টোরের উপস্থিতি এবং অবস্থান সেই API এর অংশ হিসাবে বিবেচিত হয় না, সুতরাং আপনি স্পষ্টভাবে এর ডেটা সুরক্ষা পরিচালনা করতে পারবেন না।

দ্রষ্টব্য ওএস এক্স এর সাম্প্রতিক সংস্করণগুলিতে এনএসউসারডেফাল্টস একটি ডেমন দ্বারা পরিচালিত হয় এবং যে লোকেরা সরাসরি এর ব্যাকিং স্টোরটি পরিচালনা করতে চেষ্টা করে তারা সমস্যার মধ্যে পড়ে। কোনও সময়ে একই ধরণের জিনিসটি আইওএসে আসা কল্পনা করা সহজ।

এমনকি ডেটা সুরক্ষা পরিবর্তন করা সম্ভব হলেও এনএসইউসারডেফাল্টসের যে প্রসঙ্গে আপনি এটি ব্যবহার করছেন তার উপর ভিত্তি করে ডেটা শ্রেণিবদ্ধ করার কোনও ব্যবস্থা নেই; এটি একটি 'সমস্ত বা কিছুই নয়' এপিআই। আপনার ক্ষেত্রে আপনি আপনার ব্যবহারকারীর সমস্ত ডিফল্ট থেকে সুরক্ষা সরাতে চান না, কেবল প্রথম আনলকের আগে পটভূমিতে আপনার অ্যাক্সেস করা দরকার।

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

সূত্র: https://webcache.googleusercontent.com/search?q=cache:sR9eZNHpZtwJ:https://forums.developer.apple.com/thread/15685

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