有史以來最悲劇審核被拒的經(jīng)歷-關(guān)于iCloud到底應(yīng)該備份什么數(shù)據(jù)

2016年農(nóng)歷新年年前,我提交了新版本等待蘋果審核,等待年后上班時新版本上線,但被拒了! 被拒有三個原因,其中前兩個原因很好解決,但最后一個違反了蘋果2.23審核規(guī)則.

被拒原因

先看看被拒的反饋信息:

Apps must follow the iOS Data Storage Guidelines or they will be rejected

On launch and content download, your app stores 27.34MB, which does not comply with the iOS Data Storage Guidelines.

我查閱了相關(guān)資料:一次審核被拒的經(jīng)歷-關(guān)于iCloud到底應(yīng)該備份什么數(shù)據(jù)

了解到幾條重要信息:

只有用戶創(chuàng)建的历造,并且不能被App重現(xiàn)的文檔、數(shù)據(jù)遣疯,才應(yīng)該被保存在“/Documents”路徑下侮腹。

可以重新產(chǎn)生彼念、下載的數(shù)據(jù)可以放在“/Library/Caches”目錄下,如用于緩存的數(shù)據(jù)庫文件。

純粹用于緩存的數(shù)據(jù)可以放在“/tmp”目錄下夺脾。

可以通過對NSURL加參數(shù)芙代,來保證特定的文件夾及其內(nèi)容不被iCloud備份吊奢,也不會被清除,如Document文件夾纹烹。

我打印了所有在Documents目錄下的內(nèi)容:

+ (void)showAllFilesUnderDocumentsDirectory {

NSError*error =nil;

NSString*stringPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0];

NSArray*filePathsArray = [[NSFileManagerdefaultManager]subpathsOfDirectoryAtPath: stringPatherror:&error];

NSLog(@"-------Print File Start-------");

for(inti=0;i<[filePathsArraycount];i++)

{

NSString*strFilePath = [filePathsArrayobjectAtIndex:i];

NSLog(@"[%@]--[%@]",[NSNumbernumberWithInt:i],strFilePath);

NSURL*pathURL = [NSURLfileURLWithPath:[[stringPathstringByAppendingString:@"/"]stringByAppendingString:strFilePath]];

NSError*error =nil;

NSLog(@"[Value For NSURLIsExcludedFromBackupKey]--[%@]",[pathURLresourceValuesForKeys:@[NSURLIsExcludedFromBackupKey]error:&error]);

NSLog(@"error:%@",error);

NSDictionary*fileDictionary = [[NSFileManagerdefaultManager]attributesOfItemAtPath:[[stringPathstringByAppendingString:@"/"]stringByAppendingString:strFilePath]error:&error];

longlongfileSize = [fileDictionaryfileSize];

NSLog(@"FileSize:%@",@(fileSize));

NSLog(@"error:%@",error);

}

NSLog(@"-------Print File End---------");

}

然后采用了Apple官方示例的解決代碼:

assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);

NSError *error=nil;

BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]

forKey: NSURLIsExcludedFromBackupKeyerror: &error];

if(!success){

NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent],error);

}

returnsuccess;

}

自以為解決了問題,沒想到一周之后再次被拒! 被拒的原因還是2.23iCloud備份的問題.

于是在找原因,我檢查了Xcode中 iCloud功能開關(guān)是關(guān)閉的,檢查了開發(fā)者中心iCloud功能也是關(guān)閉的.并且在騰訊Bugly交流群里探討了該問題,

再次參考了StackOverFlow iphone - Where should I save data & files I want to keep long term 并且確認(rèn)Documents下全部設(shè)置為YES,不備份到iCloud,再一次信心滿滿的提交.

得到的結(jié)果是再一次被蘋果拒絕,本人心中一萬只草泥馬奔騰而過,已經(jīng)不知道如何解決,于是跟蘋果抗議(si)(bi),蘋果回復(fù)說讓我等等,最后給出建議是我可能存放到Documents的子目錄下了?

但是這不是問題的真正原因,因為設(shè)置是遞歸的页滚,所以其所有子目錄和文件都不用再設(shè)置一次,都會自動不被備份铺呵。(測試有效裹驰,但是不確定=。=片挂,參考:is-nsurlisexcludedfrombackupkey-recursive


那么真正的原因是什么呢? 經(jīng)過多種測試,以及猜測問題就是自定義字體導(dǎo)致的!

//初始化需要添加字體的PostScript

NSArray*fontPostScriptNames = [NSArrayarrayWithObjects:@"F1--B51-0",@"F2--GBK1-0",@"F3--B51-0",@"F4--GBK1-0",nil];

NSMutableArray*fontsNeedToRegister = [NSMutableArrayarrayWithCapacity:6];

NSMutableArray*fontsFileURL = [NSMutableArrayarrayWithCapacity:6];

NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES)objectAtIndex:0];

NSURL*documentsURL = [[[NSFileManagerdefaultManager]URLsForDirectory:NSLibraryDirectoryinDomains:NSUserDomainMask]firstObject];

以上代碼是字體相關(guān)代碼,存到了NSLibraryDirectory.

LibraryDirectory也需要NSURLIsExcludedFromBackupKey.


我打印了Library下的目錄,輸出的Log,NSURLIsExcludedFromBackupKey都為0,不是1,正驗證了由于字體存入NSLibraryDirectory而導(dǎo)致的備份到iCloud的問題

+ (void)showAllFilesUnderLibraryDirectory {

NSError*error =nil;

NSString*stringPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES)objectAtIndex:0];

NSArray*filePathsArray = [[NSFileManagerdefaultManager]contentsOfDirectoryAtPath: stringPatherror:&error];

NSLog(@"-------Print File Start-------");

for(inti=0;i<[filePathsArraycount];i++)

{

NSString*strFilePath = [filePathsArrayobjectAtIndex:i];

NSLog(@"[%@]--[%@]",[NSNumbernumberWithInt:i],strFilePath);

NSURL*pathURL = [NSURLfileURLWithPath:[[stringPathstringByAppendingString:@"/"]stringByAppendingString:strFilePath]];

NSError*error =nil;

NSLog(@"[Value For NSURLIsExcludedFromBackupKey]--[%@]",[pathURLresourceValuesForKeys:@[NSURLIsExcludedFromBackupKey]error:&error]);

NSLog(@"error:%@",error);

NSDictionary*fileDictionary = [[NSFileManagerdefaultManager]attributesOfItemAtPath:[[stringPathstringByAppendingString:@"/"]stringByAppendingString:strFilePath]error:&error];

longlongfileSize = [fileDictionaryfileSize];

NSLog(@"FileSize:%@",@(fileSize));

NSLog(@"error:%@",error);

}

NSLog(@"-------Print File End---------");

}

總結(jié):

1.如果遇到Apple2.23因為備份至iCloud而被拒,要檢查Documents,Library目錄,是否設(shè)置了NSURLIsExcludedFromBackupKey為YES.

2.多看蘋果官方文檔.


后續(xù):已經(jīng)通過審核,親測有效,三次被拒換來的慘痛經(jīng)驗 ~~~~(>_<)~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末幻林,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子音念,更是在濱河造成了極大的恐慌沪饺,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷愤,死亡現(xiàn)場離奇詭異整葡,居然都是意外死亡,警方通過查閱死者的電腦和手機讥脐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門遭居,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旬渠,你說我怎么就攤上這事俱萍。” “怎么了告丢?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵枪蘑,是天一觀的道長。 經(jīng)常有香客問我,道長腥寇,這世上最難降的妖魔是什么成翩? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮赦役,結(jié)果婚禮上麻敌,老公的妹妹穿的比我還像新娘。我一直安慰自己掂摔,他們只是感情好术羔,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乙漓,像睡著了一般级历。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叭披,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天寥殖,我揣著相機與錄音嗦嗡,去河邊找鬼蔚携。 笑死,一個胖子當(dāng)著我的面吹牛娘扩,可吹牛的內(nèi)容都是我干的同诫。 我是一名探鬼主播粤策,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼误窖!你這毒婦竟也來了叮盘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤霹俺,失蹤者是張志新(化名)和其女友劉穎柔吼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吭服,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡嚷堡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了艇棕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡串塑,死狀恐怖沼琉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桩匪,我是刑警寧澤打瘪,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響闺骚,放射性物質(zhì)發(fā)生泄漏彩扔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一僻爽、第九天 我趴在偏房一處隱蔽的房頂上張望虫碉。 院中可真熱鬧,春花似錦胸梆、人聲如沸敦捧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兢卵。三九已至,卻和暖如春绪颖,著一層夾襖步出監(jiān)牢的瞬間秽荤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工柠横, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留王滤,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓滓鸠,卻偏偏與公主長得像雁乡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糜俗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容