নিঃশব্দ iOS 11 এ অ্যাপ্লিকেশনটিতে বিতরণ করা হয়নি


168

আমি লক্ষ্য করেছি যে আইওএস 11 বিটা 2 তে application:didReceiveRemoteNotification:fetchCompletionHandlerঅ্যাপের অবস্থা (পটভূমি / পূর্বভূমি) নির্বিশেষে নীরব বিজ্ঞপ্তি সরবরাহ করা হয় না।

আমি UIApplicationDelegeteপদ্ধতিটি বাস্তবায়ন করেছি application:didReceiveRemoteNotification:fetchCompletionHandlerএবং আমি নিম্নলিখিত নিঃশব্দ পুশটি প্রেরণ করি

{  
  "aps": {  
    "content-available": 1  
  },  
  "mydata": {  
    "foo": "bar"  
  }  
} 

তবে প্রতিনিধি পদ্ধতি আইওএস 11 এ কল করা হয় না।

এটি আইওএসের অন্যান্য সংস্করণ এবং ডকুমেন্টেশন বিভাগে দুর্দান্ত কাজ করে একটি সাইলেন্ট বিজ্ঞপ্তি কনফিগার করে অন্য কিছু করা উচিত তা উল্লেখ করে না।

এটি কি আইওএস 11-এ একটি বাগ বা আইওএস 11-এ নতুন কিছু মিস করেছি?

দয়া করে মনে রাখবেন যে আমি UserNotificationফ্রেমওয়ার্কটি সম্পর্কে কথা বলছি না বা ব্যবহার করছি না যা নীরব পুশগুলি প্রেরণের প্রয়োজন হবে না।

এখানে একটি নমুনা প্রকল্প রয়েছে যা সমস্যার চিত্র তুলে ধরেছে (আপনাকে নিজের বান্ডেল আইডি সেট করতে হবে)

আপনি যখন নমুনা প্রকল্পটি লাঞ্চ করেন এবং অ্যাপটিতে উপরের পেডলোডটি প্রেরণ করেন, আপনি ম্যাকস কনসোলটি ব্যবহার করে ডিভাইসে পুশটি সঠিকভাবে সরবরাহ করা হয়েছে তা কিন্তু অ্যাপ্লিকেশনটিতে না তা দেখতে ব্যবহার করতে পারেন।

আপডেট 10.08

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

আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন যে, 1 হিসাবে চিহ্নিত করা পুশটি কেবলমাত্র ডিভাইসে বিতরণ করা হয় এবং ধাক্কা 2 (ডিভাইস পুনঃসূচনা করার পরে) অ্যাপ্লিকেশনেও সরবরাহ করা হয়।

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

14.08 আপডেট করুন - আইওএস 11 বিটা 6

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

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

21.08 আপডেট করুন - আইওএস 11 বিটা 7

তবুও একই আচরণ এবং অ্যাপল থেকে ত্রুটি প্রতিবেদনে আপডেট করা হয়নি।

আপডেট 29.08 - আইওএস 11 বিটা 8

তবুও একই সমস্যা। আমি এখন ব্যবহার করি পুনরুত্পাদন করার পদক্ষেপগুলি নিম্নলিখিত:

  • এক্সকোড প্রকল্প প্রকল্পে, "চালু হওয়ার জন্য নির্বাহের জন্য অপেক্ষা করুন" নির্বাচন করুন
  • এর মধ্যে একটি ব্রেকপয়েন্ট যুক্ত করুন didReceiveRemoteNotification: fetchCompletionHandler
  • ডিভাইসে অ্যাপ্লিকেশনটি শুরু করুন
  • উপরের নীরব পুশ পাঠান

প্রত্যাশিত : অ্যাপটি স্থগিত অবস্থা থেকে পটভূমিতে আনা হয় এবং কল didReceiveRemoteNotification: fetchCompletionHandlerকরা হয়

আসল : কিছুই হয় না

আপডেট 06.09 - আইওএস 11 বিটা 10

আমি এখনও একই বগী আচরণ করছি। নিম্নলিখিত উত্তর সহ অ্যাপল থেকে টিকিট আপডেট করা হয়েছিল:

অ্যাপল বিকাশকারী সম্পর্ক সেপ্টেম্বর 6 2017, 10:42 অপরাহ্ন ইঞ্জিনিয়ারিং এই সমস্যাটির বিষয়ে নিম্নলিখিত প্রতিক্রিয়া সরবরাহ করেছে:

আমরা নমুনা অ্যাপ্লিকেশনটি চালাতে এবং আচরণটি পরীক্ষা করতে সক্ষম হয়েছি। বর্ণিত হিসাবে এটি পরীক্ষা করার সময় আমরা কোনও সমস্যা দেখিনি।

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

যখন পরিস্থিতি ভাল তখন আমরা আমাদের সময়ে সময়ে পুশ সরবরাহ করি।

আমরা বিশ্বাস করি এটি সঠিকভাবে আচরণ করছে।

আপডেট 11.09

আমার অ্যাপল বাগ প্রতিবেদনটি বন্ধ ছিল এবং এটির সদৃশ হিসাবে চিহ্নিত ছিল 33278611যা এখনও খোলা রয়েছে

আপডেট 13.09 - আইওএস 11 জিএম

কাম 8০০ এর মন্তব্যে ধন্যবাদ (নীচে দেখুন) আমি আরও পরীক্ষা করেছি এবং সেই পর্যবেক্ষণগুলি নিয়ে এসেছি:

আইওএস 11-তে একটি নতুন ডেমন রয়েছে বলে মনে হচ্ছে dasd DuetActivitySchedulerDaemonএটি সম্পূর্ণভাবে ডেটা পুশকে ত্যাগ করে বা ডেটা পুশ বিতরণে বিলম্ব করে:

বিতরণ স্থগিত

কনসোল লগস

default 13:11:47.177547 +0200   dasd    DuetActivitySchedulerDaemon CANCELED: com.apple.pushLaunch.net.tequilaapps.daylight:C03A65 <private>!   lifecycle   com.apple.duetactivityscheduler
default 13:11:47.178186 +0200   dasd    DuetActivitySchedulerDaemon Removing a launch request for application <private> by activity <private>   default com.apple.duetactivityscheduler
default 12:49:04.426256 +0200   dasd    DuetActivitySchedulerDaemon Advancing start date for <private> by 6.5 minutes to Wed Sep 13 12:55:31 2017   default com.apple.duetactivityscheduler
default 13:21:40.593012 +0200   dasd    DuetActivitySchedulerDaemon Activity <private>: Optimal Score 0.6144 at <private> (Valid Until: <private>)  scoring com.apple.duetactivityscheduler
default 13:21:40.594528 +0200   dasd    DuetActivitySchedulerDaemon Setting timer (isWaking=1, activityRequiresWaking=0) between <private> and <private> for <private>  default com.apple.duetactivityscheduler

স্থগিত বিতরণ সমস্যা

  • যখন ডেটা পুশ বিতরণ স্থগিত করা হয় এবং অ্যাপ্লিকেশন চালু হয়, তখন ডেলিভারির তারিখ পৌঁছে গেলে ডেটা পুশ সরবরাহ করা হয় যা ভবিষ্যতে কয়েক মিনিট হতে পারে । এটি নতুন অ্যাপ্লিকেশনটির সামগ্রীটি পরবর্তী লঞ্চের জন্য প্রস্তুত রাখতে ডেটা পুশ করার ব্যবহারকে সম্পূর্ণভাবে পরাস্ত করে। আমি আবার এখানে অ্যাপলের ডকুমেন্টেশন উদ্ধৃত করছি:

"নীরব বিজ্ঞপ্তিগুলি আপনার অ্যাপটি আপ-টু-ডেট রাখার সাহায্যে ব্যবহারকারীর অভিজ্ঞতা উন্নত করে, এমনকি এটি চালিত না হয়ও।"

  • যখন দুটি ডেটা পুশ স্থগিত অ্যাপে প্রেরণ করা হয় তখন তারা সরাসরি অ্যাপ্লিকেশন জাগ্রত করার পরিবর্তে আইওএস 11 দ্বারা স্থগিত করা হয়। প্রসবের সময় পৌঁছে গেলে কেবল শেষ ডেটা পুশ সরবরাহ করা হয়! পূর্ববর্তী পুশগুলি হারিয়ে যায় এবং ডেলিগেট পদ্ধতির মাধ্যমে সরবরাহ করা হয় না যার ফলে ডেটা ক্ষতি হয়।

বিতরণ বাতিল হয়েছে

কনসোল লগস

default 13:35:05.347078 +0200   dasd    DuetActivitySchedulerDaemon com.apple.pushLaunch.net.tequilaapps.daylight:C03A65:[
    {name: ApplicationPolicy, policyWeight: 50.000, response: {Decision: Must Not Proceed, Score: 0.00}}
 ], FinalDecision: Must Not Proceed}    scoring com.apple.duetactivityscheduler

বিতরণ সংক্রান্ত সমস্যা বাতিল হয়েছে

ঠিক এই ক্ষেত্রে, ডেটা পুশ সম্পূর্ণরূপে হারিয়ে গেছে এবং আইওএস 11 এ কখনই বিতরণ করা হয়নি যখন এটি আইওএস 10 এ সঠিকভাবে সরবরাহ করা হয়েছিল।

আপডেট 19.09 - আইওএস 11 জিএম

আমি আরও লক্ষ্য করেছি যে যখন অ্যাপ্লিকেশনটি অগ্রভাগে রয়েছে এবং অ্যাপ্লিকেশনটিতে বিজ্ঞপ্তিটি সরবরাহ করা হয় না, তখন আমি কনসোলে নিম্নলিখিত লগগুলি দেখতে পাই:

default 08:28:49.354824 +0200   apsd    apsd    <private>: Received message for enabled topic '<private>' onInterface: NonCellular with payload '<private>' with priority 10 for device token: NO   courier-oversized   com.apple.apsd

fault   08:33:18.128209 +0200   dasd    Foundation  <NSXPCConnection: 0x151eee460> connection from pid 55: Exception caught during decoding of received message, dropping incoming message.
Exception: Exception while decoding argument 0 (#2 of invocation):
Exception: value for key 'NS.objects' was of unexpected class 'NSNull'. Allowed classes are '{(
    NSArray,
    NSData,
    NSString,
    NSNumber,
    NSDictionary,
    NSUUID,
    _DASActivity,
    NSSet,
    _DASFileProtection,
    NSDate,
    NWParameters,
    NWEndpoint
)}'.    general com.apple.foundation.xpc

1
এখনও বিটা 8-তে স্থির নয়, যখন আমি কনসোলটি দেখি আমি নিম্নলিখিত ত্রুটিটি দেখতে পাচ্ছি: <এনএসএক্সপিসিসিঙ্কেশন: 0x123f43620> পিড থেকে সংযোগ 58: প্রাপ্ত বার্তাটি ছিন্ন করে প্রাপ্ত বার্তাটি ডিকোডিংয়ের সময় ব্যতিক্রম ধরা পড়ে। ব্যতিক্রম: আর্গুমেন্ট ডিকোড করার সময় ব্যতিক্রম 0 (অনুরোধের # 2): ব্যতিক্রম: কী 'এনএস.অবজেক্টস' এর মান অপ্রত্যাশিত শ্রেণি 'এনএসনুল' এর ছিল। অনুমোদিত ক্লাসগুলি হ'ল 'N (এনডাব্লিউপ্যারামিটারস, এনডাব্লুঅ্যান্ডপয়েন্ট, এনএসআরাই, এনএসডাটা, এনএসএসটিং, এনএসএনম্বার, এনএসডি অভিধান, এনএসইউইডি, _ডাসঅ্যাক্টিভিটি, এনএসএসেট, _ডাসফিলপ্রোটেকশন, এনএসডিট)}'।
থমাস আইনওয়লার

2
আমি আইওএস 11 এর সাথে একই ফলাফল পাচ্ছি (এর আগে নয়), যদি আমি ধাক্কা দিয়ে প্রেরণ করি "content-available": 1এবং অ্যাপটি অগ্রভাগে রয়েছে, কলব্যাকটি বরখাস্ত করা হবে না।
GoRoS

4
নতুন iOS11.1 বিটা 1 দিয়ে পরীক্ষা করার পরে দেখা যাচ্ছে যে এটি এখনই স্থির হয়ে গেছে এবং আইওএস 10 এর আগে যেমন কাজ করেছে
লি

3
Whatsapp, একটি অনুরূপ সমস্যা ছিল বলে মনে হচ্ছে whatsappen.com/news/5465/... ব্যবহারকারীদের যা সর্বাধিক ডেভেলপারদের হয় "অভ্যাসগত ভাবেই ঘনিষ্ঠ তাদের apps শক্তি" সম্পর্কে কিছু ...
toxaq

3
11.1 এর সর্বজনীন প্রকাশের সাথে এবং ঠিক একই রকম। যদি আপনি নিঃশব্দ ধাক্কা ব্যবহার করছেন এবং আপনার অ্যাপ্লিকেশনটি অগ্রভাগে রয়েছে, তবে বেশ কয়েকটি জিনিসের উপর নির্ভর করে এগুলি সরবরাহ করা হবে বলে আশা করবেন না, তবে প্রাথমিকভাবে ব্যাটারির স্তর, এমনকি ডিভাইসটি কোনও পাওয়ার সাপ্লাইতে প্লাগ ইন করা থাকলেও।
গ্রানটেকস

উত্তর:


31

সুতরাং আইওএস 11.1 বিটা 1 এর রিলিজ নোটগুলি বলে

আইওএস 11.1 বিটা 1 সবেমাত্র প্রকাশিত হয়েছিল এবং তারা উল্লেখ করেছে: "বিজ্ঞপ্তিগুলি সমাধান করা সমস্যাগুলি • নিঃশব্দ ধাক্কা বিজ্ঞপ্তিগুলি আরও ঘন ঘন প্রক্রিয়া করা হয় 33 (33278611)

আমি কিছু পরীক্ষা করেছি এবং এটি সত্যই স্থির বলে মনে হচ্ছে:

স্থগিত অবস্থা

আমি যখন অ্যাপটিকে স্থগিত মোডে চালু করি এবং একটি নীরব পুশ পাঠিই, অ্যাপটিকে ব্যাকগ্রাউন্ডে ফিরিয়ে আনা হয় এবং didReceiveRemoteNotification:fetchCompletionHandlerপ্রতিনিধিকে ডাকা হয়।

অগ্রভূমি রাজ্য

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


3
আমার প্রাথমিক পরীক্ষাগুলিতে আমি ভেবেছিলাম এটি ঠিক হয়ে গেছে। এটি কিছুক্ষণ কাজ করেছিল। কিন্তু কিছু ভারী পরীক্ষার পরে, জিনিসগুলির একটি অংশ পড়তে শুরু করে। হঠাৎ করে এটি প্রতিটি নীরব ধাক্কারের জন্য প্রতিনিধিদের কল করা বন্ধ করে দিল, এমনকি অ্যাপগ্রাউন্ডে থাকা অ্যাপ্লিকেশনটিও। স্পষ্টতই, এই নতুন "ডুয়েট" সিস্টেমটি "এনার্জিবাজেট" না থাকার কারণে আমার অ্যাপের প্রতিনিধিকে কল করতে বাধা দিচ্ছে। সুতরাং, দুর্ভাগ্যক্রমে, এখনও স্থির হয়নি।
Abras

অবিশ্বাস্য :(
থমাস আইনওয়ালার

আমার অভিজ্ঞতা উপরের আব্রাসের মতো। কিছুক্ষণের জন্য পরিশ্রমের পরে পৃথক হয়ে পড়ে এবং হ্যান্ডলারটিকে আর বলা হয় না - এই
লি

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

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

18

আমি এখানে আমার 2 সেন্ট যুক্ত করতে চেয়েছিলাম কারণ আমিও এই সমস্যাটি পেয়েছি এবং আমি লক্ষ্য করেছি যে অ্যাপল এই প্রসঙ্গে বেশ কয়েকটি রাডার বন্ধ করে দিয়েছিল যে তারা পুনরুত্পাদন করতে পারে না couldn't একটি আকর্ষণীয় জিনিস আমি পেয়েছি হ'ল অ্যাপটি ডিবাগারের সাথে সংযুক্ত থাকা অবস্থায় ব্যাকগ্রাউন্ড করা থাকলে পুশগুলি বিতরণ করা হবে।

আমি যদি ডিবাগারটিকে হত্যা করি, আমার ফোনটি আনপ্লাগ করুন, অ্যাপ্লিকেশনটি চালু করুন এবং নীরব পুশ পেডলোড প্রেরণ করুন আমি অ্যাপটি জাগ্রত হচ্ছে না দেখছি। আমি কনসোল লগের মধ্যে দেখতে পাচ্ছি যে সিস্টেমটি আমার অ্যাপ্লিকেশনটিতে পেলোড বিতরণ বাতিল করে।

আমি একটি ছোট্ট নমুনা অ্যাপ্লিকেশন সহ একটি রাডার জমা দিয়েছি যা সমস্যার পুনরুত্পাদন করে। আমি রাডারে স্পষ্টভাবে উল্লেখ করেছি যে আমার টিকিটে কাজ করা ব্যক্তি অবশ্যই সমস্যাটি পুনরুত্পাদন করার জন্য ডিবাগারের সাথে সংযুক্ত অ্যাপটি চালাবেন না। লিঙ্কটি এখানে: https://bugreport.apple.com/web/?problemID=34461063

আশা করি এর ফলে এই ইস্যুতে কিছুটা অগ্রগতি হবে।


2
প্রতিবেদনের জন্য ধন্যবাদ। বিটিডব্লিউ, অ্যাপল বাগ সংযুক্তি এখানে ব্যক্তিগত সাহায্য করবে না কারণ তারা ব্যক্তিগত এবং কেবলমাত্র প্রতিবেদক এবং অ্যাপল তাদের দেখতে পাবে
জানুয়ারী

আমি আরও লোক ওপেনাডার.অ্যাপস্পট.কম ব্যবহার করতে দেখতে চাই যাতে আমরা অন্যান্য লোকের রাডারগুলিকে নজর রাখতে পারি
টমাস আইনওয়ালার

আপনার বাগ রিপোর্টের সাথে আপেল @ বিল সহ কোনও আপডেট রয়েছে
ম্যাগিকফ্লো

আমি অ্যাপল থেকে আমার রাডার সম্পর্কে কোনও আপডেট পাইনি তবে আমরা আইওএস 11.1 এর বিটা ইনস্টল করেছি এবং এটি সমস্যাটি স্থির হয়েছে বলে মনে হচ্ছে।
বিল ডুনায়ে

হ্যাঁ, আমরা আইওএস 11.2.6 এও একই সমস্যার মুখোমুখি, কোন সমাধান বা আপডেট?
গোপিক

14

আইওএস 11 এর নতুন আচরণের মতো মনে হচ্ছে আইওএস 11 বিটা 10 এই সমস্যাটি সম্পর্কিত কিছু বর্ণনামূলক লগ সরবরাহ করে:

default 23:18:51.806011 +0200   dasd    com.apple.pushLaunch.com.acme.Acme:F7E7D0:[
    {name: ApplicationPolicy, policyWeight: 50.000, response: {Decision: Can Proceed, Score: 0.50}}
    {name: BatteryLevelPolicy, policyWeight: 1.000, response: {Decision: Can Proceed, Score: 0.87, Rationale: [{batteryLevel == 62}]}}
    {name: DeviceActivityPolicy, policyWeight: 5.000, response: {Decision: Can Proceed, Score: 0.20}}
 ] sumScores:52.279483, denominator:81.410000, FinalDecision: Can Proceed FinalScore: 0.642175}
default 23:18:51.806386 +0200   dasd    'com.apple.pushLaunch.com.acme.Acme:F7E7D0' has compatibility score of 1.000000 with 'com.apple.CFNetwork-cc-111-79:E7272D'. Relaxing scores.
default 23:18:51.806855 +0200   dasd    'com.apple.pushLaunch.com.acme.Acme:F7E7D0' CurrentScore: 0.642175, ThresholdScore: 0.738454 DecisionToRun:0

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

অ্যাপল এই আইওএস-পার্শ্ব আচরণ সম্পর্কে কোনও অফিসিয়াল তথ্য দেয় না, কেবল সার্ভার-সাইড থ্রোটলিংয়ের তথ্য রয়েছে:

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

আমি আমার আঙ্গুলগুলিকে এই আচরণটি পরিবর্তিত করতে পেরেছি, কারণ এটি আমার অ্যাপ্লিকেশনটিকে সংশোধন করবে :) অন্যদিকে, এই পরিবর্তনটি ভাল - অ্যান্ড্রয়েড ফোনগুলি দীর্ঘস্থায়ী হওয়ার জন্য আইফোনের ব্যাটারি তৈরির অনেকগুলি বিষয় one


1
হ্যাঁ পুশগুলি ডিভাইসে সরবরাহ করা হয় তবে অ্যাপ্লিকেশনটিতে নয়। এটিই আমি আমার মূল পোস্টে লিখেছি। "নিরব বিজ্ঞপ্তিগুলি আপনার অ্যাপ্লিকেশনটিকে পটভূমিতে জাগ্রত রাখার উপায় হিসাবে বোঝানো হয় না" এটি "ঠিক আছে" যতক্ষণ না "কখনও কখনও" সরবরাহ করা হয় ততক্ষণ ঠিক। বড় সমস্যা হ'ল নীরব বিজ্ঞপ্তিটি কখনই পটভূমিতে থাকে তবে আইওএস 11-এ অ্যাপে কখনই সরবরাহ করা হয় না । এটি ডেটা পুশ করার পুরো উদ্দেশ্যকে সম্পূর্ণ পরাস্ত করে।
জানুয়ারী

হ্যাঁ, আপনি ইতিমধ্যে লিখেছেন যে, আমি এই নতুন পুশ নীতিগুলি সম্পর্কে পুরো ব্যাখ্যা দিতে চেয়েছি। আমি অ্যাপল ডক্সকে উদ্ধৃত করে দেখিয়েছি যে তারা ইতিমধ্যে পুশ-বিতরণ অনিশ্চয়তা সম্পর্কে সতর্ক করেছে। যেমনটি আমি লিখেছি: "আমি গতকাল রাতে একটি নীরব ধাক্কা নিতে পেরেছি" (অ্যাপ্লিকেশনটিতে আমি বোঝাতে চাইছিলাম) এবং অ্যাপটি ব্যাকগ্রাউন্ডে ছিল। তবে দিনে - আমার অ্যাপ্লিকেশন কোনও ধাক্কা দেয় না :( আমার মতে অ্যাপল আরসি সংস্করণে এই পুশ-পলিসিগুলি আলগা করবে the অন্যদিকে, তারা আসল ধাক্কায়িত আচরণটি পুনরুদ্ধার করতে পারে - তারা ইতিমধ্যে কেবল প্রদত্ত বৈশিষ্ট্যগুলি থেকে মুক্তি পেয়েছিল used বিটা সংস্করণ (উদাহরণস্বরূপ 10.3 কীচেন অটোডোলেট)
ক্যাম 800

পুশ পাওয়ার পরে এবং অনুরূপ অ্যাপ্লিকেশনটি স্থগিত করা হলে আমি একই রকম লগগুলি দেখতে পাচ্ছি। dasd প্রক্রিয়া তারপর লগ default 10:17:42.994236 +0200 dasd DuetActivitySchedulerDaemon Advancing start date for <private> by 6.3 minutes to Wed Sep 13 10:24:03 2017। নিঃশব্দ ধাক্কা সেই সময় বিতরণ করা হবে বলে মনে হচ্ছে।
জানুয়ারী

ইতিমধ্যে আইওএস 11 জিএম দিয়ে পরীক্ষা শুরু করেছে, এখনও অদ্ভুত আচরণ দেখে, লগের মতো com.apple.fetch.com.troii.timriphone:F613DA:[ {name: ApplicationPolicy, policyWeight: 50.000, response: {Decision: Must Not Proceed, Score: 0.00}} ], FinalDecision: Must Not Proceed}
টমাস আইনওয়ালার

1
এছাড়াও - আমি কিছু স্টাব বিজ্ঞপ্তি সহ নীরব ধাক্কা প্রেরণ করে এবং বিজ্ঞপ্তি পরিষেবা এক্সটেনশন ব্যবহার করে সঠিক সামগ্রী দিয়ে বিজ্ঞপ্তিটি পূরণ করে আমার অ্যাপ্লিকেশনটি সমাধান করতে সক্ষম হয়েছি।
kam800

9

আইওএস 11.1 বিটা রিলিজ নোটগুলির মধ্যে রয়েছে: বিজ্ঞপ্তিগুলি সমাধান করা ইস্যুগুলি নিঃশব্দ ধাক্কা বিজ্ঞপ্তিগুলি আরও ঘন ঘন প্রক্রিয়া করা হয়। (33278611)


7

আইওএস 11.1 বিটা 2 এও রয়েছে

Notifications
Resolved Issues
 Silent push notifications are processed more frequently. (33278611)

রিলিজ নোটস - এটি এখন পরীক্ষা করবে।

আপডেট - 11.10.2017 - আইওএস 11.1 বিটা 2

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


1
আমি বিভিন্ন দৃশ্যের পরীক্ষা করেছি: এটি অগ্রভাগ এবং পটভূমিতে কাজ করছে was দুর্ভাগ্যক্রমে এটি কাজ করে না, যদি অ্যাপ্লিকেশনটি ব্যবহারকারী দ্বারা বন্ধ হয়ে যায়। সমাপ্তির পরে ডিভাইসটি কোনও নীরব ধাক্কা পায় না, যতক্ষণ না অ্যাপটি সক্রিয়ভাবে ব্যবহারকারী দ্বারা আরম্ভ করা হয় না। আপনি কি একই অভিজ্ঞতা?
অ্যালেক্সওয়ে 89

এখন এটি প্রায় 'ডাউনটাইম' পরে কাজ করে। 5 থেকে 10 মিনিটের নীরব বিজ্ঞপ্তিগুলি প্রত্যাশার মতো কাজ করছে ... আমার পূর্বের জন্য দুঃখিত। মন্তব্য :)
অ্যালেক্সওয়ে 89

1
ব্যবহারকারী যখন অ্যাপটি বন্ধ করে দেয় তখন নিঃশব্দ ধাক্কা কখনই কাজ করে না - দেখুন ডেভেলপার.অ্যাপল. com/docamentation/uikit/uiapplicationdelegate/… "তবে ব্যবহারকারী যদি জোর করে ছেড়ে দেয় তবে সিস্টেমটি স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশন চালু করবে না।"
টমাস আইনওয়লার

1
আমি দেখছি যে iOS11.1 বিটা 3 iOS10 এর মতো কাজ করছে এবং iOS11.1 বিটা 2 এর চেয়ে অনেক ভাল।
লি

1
@ অলেক্রামোয়াক আমার জন্য আইওএস 11.1 বিটা 4 আইওএস 10 এর মতো কাজ করছে
অ্যালেক্সওয়ুই 89

7

অ্যাপল বিকাশকারী সম্পর্ক মাত্র আমার রাডারে একটি মন্তব্য যুক্ত করেছে:

আমরা বিশ্বাস করি যে সাম্প্রতিকতম আইওএস 11.2 বিটাতে এই সমস্যাটির সমাধান হয়েছে।

সর্বশেষতম আইওএস বিটা দিয়ে পরীক্ষা করুন। আপনার যদি এখনও সমস্যা থাকে তবে দয়া করে আপনার বাগ রিপোর্টটি কোনও প্রাসঙ্গিক লগ বা তথ্য দিয়ে আপডেট করুন যা আমাদের তদন্তে সহায়তা করতে পারে।

https://developer.apple.com/download/

বর্তমানে আইওএস ১১.২ বিটা ইনস্টল করছে - নীরব ধাক্কার আচরণটি পরীক্ষা করবে


সুতরাং এর অর্থ কি এই আইওএস 11.1 জিএম সমস্যার সমাধান করবে না? :(
ওলেক্রামোয়াক

শুনে ভাল লাগল, আমরা কখন iOS11.1 এর অফিসিয়াল প্রকাশের আশা করতে পারি?
অ্যালেক্সওয়ে 89

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

3

আইওএস 10 অবধি আমি আমার অ্যাপ্লিকেশনটির সাথে একই রকম সমস্যা পেয়েছি আমি পুশ বিজ্ঞপ্তি পাচ্ছিলাম এবং application:didReceiveRemoteNotification:fetchCompletionHandlerসঠিকভাবে ডাকা যাচ্ছিলাম iOS তবে আইওএস 11 এ আপডেট হওয়ার পরে ধাক্কা দেওয়ার বিজ্ঞপ্তিগুলি কাজ করা বন্ধ করে দিয়েছে।

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

আপনি এই দুটি দক্ষতা চালু করেছেন তা নিশ্চিত করুন।

ব্যাকগ্রাউন্ড আনার সামর্থ্য চালু করার পরে এটি এখন কাজ করছে


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

2
সমাপ্ত অ্যাপ্লিকেশনটির জন্য, কোনও ধাক্কা বিজ্ঞপ্তি (অজস্র বা সাধারণ ধাক্কা) অ্যাপের প্রতিনিধিগুলিতে অগ্নি প্রতিনিধি পদ্ধতিতে ব্যবহৃত হবে না। ডিফল্ট আচরণ thats। আইওএস 11.0 এর জন্য বিশেষ কোনও মামলা নেই।
সুদীপ জর্জে

3

আইওএস 11.4.1, সুইফট 4

নীরব ঠেলা (ক্লাউডকিট থেকে) আগত না হওয়া নিয়ে আমার সমস্যা ছিল এবং আমি এখানে প্রত্যেকে উল্লিখিত সমস্ত কিছু চেষ্টা করেছিলাম। তারপরে আমি স্থির করেছিলাম যে এইভাবে alertBodyআমার CKNotificationInfo()জিনিসগুলিতে একটি ফাঁকা স্থাপন করার চেষ্টা করবে :

let info = CKNotificationInfo()
info.shouldSendContentAvailable = true
info.alertBody = ""

এটি পুশগুলিকে উচ্চ অগ্রাধিকার হিসাবে প্রেরণ করতে সক্ষম করেছে (তবে তারা এখনও নিঃশব্দে ঠেলাঠেলি করেছে) এবং আমার ডিভাইস লগগুলিতে আমি আর ত্রুটি পাই নি যে ধাক্কা উপেক্ষা করা হচ্ছে।

আমি আশা করি যে কাউকে সাহায্য করবে :)


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

2

তাই এই প্রকৃতপক্ষে আইওএস 11 একটি বাগ এবং এটি এখন আইওএস 11 বিটা 3. সংশোধন হচ্ছে application:didReceiveRemoteNotification:fetchCompletionHandlerএখন সঠিকভাবে বলা হয় একটি নীরব ধাক্কা পুরোভূমিতে বা পটভূমিতে উভয় প্রাপ্ত হয় তখন।

হালনাগাদ

না এটি স্থির নয় এবং এখনও iOS বিটা 3 এবং 4 এ চলছে in


1
আসলে এটি নয় :( এটি এখনও iOS 11 বিটা 3
জানুয়ারি

1
অ্যাপল বাগ রিপোর্টটিও আবার খোলে। আমি আপনাকে জানাব
জানুয়ারী

1
আমি আইওএস ১১ বিটাতে নীরব ধাক্কা পাচ্ছি না More আরও সম্পর্কিত, যদি অ্যাপটি অগ্রভাগে না থাকে তবে তারা কখনও কখনও নিয়মিত বিজ্ঞপ্তি হিসাবে উপস্থিত হয়। অবশ্যই কিছু আপ!
বেন ডডসন

1
সুতরাং আমি সবেমাত্র আইওএস 11 বিটা 5 ইনস্টল করেছি এবং এটি আরও ভাল দেখাচ্ছে এবং অ্যাপটি ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ডে didReসেপ্টRemoteNotifications ডেলিগেটের মাধ্যমে কিছুক্ষণের জন্য প্রেরণ করা হবে তবে আমি যা করি তা তা আবার কাজ করা বন্ধ করে দেয়: / আপনার কাছে কি আছে? একই আচরণ?
জানুয়ারী

1
এটি দুর্দান্ত হবে যদি আপনি পরীক্ষা করেন পাশাপাশি এটি আমাকে মাথা ব্যাথা দেয়। নীরব ঠেলা ডিভাইসটি পুনরায় চালু করার পরে এলোমেলোভাবে কাজ করে বা না করে don't আমি তাই একটি নমুনা প্রকল্পের সঙ্গে আমার মূল পোস্টটি আপডেট যে আমরা সবাই ব্যবহার একই
জানুয়ারী

2

কার্যকারণ হিসাবে আমরা একটি "বিজ্ঞপ্তি" কী এবং একটি শিরোনামের ভিতরে খালি স্ট্রিং সহ একটি মান হিসাবে যুক্ত করছি। এটি অ্যাপ্লিকেশনটিতে করানো কলব্যাকটি জাগ্রত করবে।


1
এটি অ্যাপ্লিকেশনের মাধ্যমে বাগটি ঠিক না করা অবধি অ্যাপটি জাগ্রত করার জন্য ডুয়েটঅ্যাক্টিভিটিশেজুলারডেমোনকে পাওয়ার জন্য একটি কার্যকারিতা বলে মনে হয়েছিল।
জো বেনটন

একটি শূন্য শিরোনামযুক্ত জেএসএন-তে চাপ দেওয়ার সময় আমি এখনও কনসোলটিতে "কোনও সতর্কতা, শব্দ বা ব্যাজ ছাড়াই বিজ্ঞপ্তি উপেক্ষা করছি ..." {"এপস": alert "সতর্কতা": title "শিরোনাম": ""}, "সামগ্রী-উপলভ্য": "1"}, "gcm.message_id": "0 ... বিবি" J এই JSON কাঠামোটি কি আপনার জন্য কাজ করছে?
ওলেক্রোমাক

আপনি কি উদ্ধৃতি ছাড়াই 1 (সামগ্রীতে উপলব্ধ সামগ্রীর মান) প্রেরণ করবেন না?
elkorb

গুগল ফায়ারবেস এইভাবে জাসনকে ("1") ফর্ম্যাট করে এবং এটি সর্বদা কাজ করে। ডাসড ননসেন্স সহ কেবল আইওএস 11 একটি সমস্যা তৈরি করছে। আপনি দয়া করে কোনও জসনের একটি উদাহরণ পোস্ট করতে পারেন যা আপনার জন্য কাজ করছে?
ওলেক্রোমাক

সুতরাং আমি আইওএস ১১.১-এ যা পর্যবেক্ষণ করছি তা হ'ল ডিভাইসটি ব্যাটারিতে চলমান (চার্জ হচ্ছে না) এবং ব্যাটারির স্তর 20% এরও কম থাকলেও, যখন কম শক্তি মোড সক্রিয় না হয় তখনও নীরব পুশ বিতরণ করা হয় না। এইটা খারাপ. আইওএস 11 এ নীরব ধাক্কা মোটেও নির্ভরযোগ্য নয়, প্রায় অকেজো।
ওলেক্রোমাক

1

এই উত্তরটি লিখতে গিয়ে আমি বিল ডুনয়ের উত্তর হিসাবে ঠিক একই সমস্যার মুখোমুখি ।

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

{
    "aps" : {
        "badge" : 0,
        "sound" : ""
    },
    "mydata": {  
        "foo": "bar"  
    }  
}

দয়া করে নোট করুন আমি ইচ্ছাকৃতভাবে "সামগ্রী-উপলভ্য" ব্যবহার করছি না। সেট করা যার ফলে বিজ্ঞপ্তি সরবরাহের বিলম্ব / বাতিল করতে আইওএস অপ্টিমাইজেশনের যুক্তি থেকে লাঞ্ছিত হয়।


1

আমি কিছু বিজ্ঞপ্তির জন্য একই সমস্যাটি পেয়ে আসছি (অগত্যা চুপচাপ নয়)।

সমস্ত আপডেট এবং উত্তরগুলি পর্যালোচনা করার পরে আমি দুটি আপডেট যুক্ত করতে সক্ষম হয়েছি যা সহায়তা করতে পারে:

  • আমি দেখতে পেয়েছি যে UIApplication.shared.isRegisteredForRemoteNotificationsকোনও বিজ্ঞপ্তি পাওয়ার সময় অ্যাক্সেস পদ্ধতিটি এক্সকোডকে কিছু না জানিয়ে অ্যাপ্লিকেশনটিকে থামিয়ে দেয়। পদ্ধতিটি অ্যাক্সেস করে এমন বিজ্ঞপ্তি পাওয়ার পরে আপনি কিছু কোড চালাচ্ছেন কিনা তা পরীক্ষা করে দেখুন। ( ইজ রেজিস্টার্ডফরমেটনোটিকেশনস সিআইএফোর_উইট_ট্র্যাপের সাথে ইউআই লক করছে )।

    • আমি আবিষ্কার করেছি যে "title-loc-args" : [3333]3333 আক্ষরিকভাবে গ্রহণ না করে স্ট্রিং হিসাবে স্বীকার করার কারণে কনসোলে আমার একটি পুশ বিজ্ঞপ্তি পার্সিং ত্রুটি ছিল "title-loc-args" : ["3333"]। উপরের পদ্ধতিটি অ্যাক্সেস করার পরে এটি আমার সম্পূর্ণ ইন্টারফেস স্টল তৈরি করেছে, কেবল আইওএস 11 এ এটি আইওএস 12 এ কাজ করে।
  • আমি আরও জানতে পেরেছিলাম যে, একই কোড সহ, এটি আইওএস 12.0 (16A5366a) এ কোনও সমস্যা ছাড়াই কাজ করে । তবে আইওএস 11 এ এটি ঘটছে।


1

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

এই কাজটি পেতে আমি প্রতিনিধি যুক্ত করি এবং UNUserNotificationCenterDelegateপ্রোটোকল এবং willPresent notification(আইওএস 10+) পদ্ধতির সাহায্যে এক্সটেনশন তৈরি করি , যা প্রতিবারের জন্য সঠিক পেওলড দিয়ে ট্রিগার করা হয়। অ্যাপটি সক্রিয় থাকাকালীন বিজ্ঞপ্তি না দেখানোর জন্য কেবল ব্যাজ বা শব্দ সহ সমাপ্তি কল করুন। আমি এই জাতীয় কিছু দিয়ে শেষ করেছি

    import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    // MARK: - Lifecycle
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UNUserNotificationCenter.current().delegate = self
        return true
    }

    //this was only method to handle notifications before
    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                     fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        //process silent notification
        completionHandler(UIBackgroundFetchResult.newData)
    }
}

extension AppDelegate : UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        //proces notification when app is active with `notification.request.content.userInfo`
        if UIApplication.shared.applicationState == .active {
            completionHandler(.badge)
        }else {
            completionHandler(.alert)
        }
    }
}

অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে থাকে এবং নীরব বিজ্ঞপ্তিগুলি যখন থাকে তখন এই রাজ্যগুলিতে কাজ করার জন্য আমি সরাসরি বিজ্ঞপ্তি কেন্দ্র থেকে বিজ্ঞপ্তি পাই applicationDidBecomeActive:

UNUserNotificationCenter.current().getDeliveredNotifications { (notifications) in
            debugLog(message: "unprocessed notification count: \(notifications.count)")
            if notifications.count > 0 {
                notifications.forEach({ (notification) in
                    DispatchQueue.main.async {
                        //handle `notification.request.content.userInfo`
                    }
                })
            }
        }

0

আমার ক্ষেত্রে, "ব্যাকগ্রাউন্ড অ্যাপ রিফ্রেশ" আইফোন সেটিংসে বন্ধ ছিল। কারণ এই পুশ বিজ্ঞপ্তিটি ডিভাইসে সরবরাহ করা হয়েছিল কিন্তু অ্যাপটিতে নয়। ব্যাকগ্রাউন্ড অ্যাপ রিফ্রেশ চালু করা অ্যাপ্লিকেশনটিতে নীরব ধাক্কা গ্রহণ করে।

কারও কাছে যাচাই করা দরকার যদি হয় তবে এটি এই প্রশ্নের আসল উত্তর হতে পারে না।

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