私は次の問題に遭遇しましたOnDemandResource
:
1)TestFlight
古いバージョンのアプリからダウンロードします... アプリがダウンロードされOnDemandResource
、すべて正常に動作します。
2) 新しいリソースを追加した新しいバージョンのアプリをアップロードし、古いバージョンのアップデートとしてインストールします。また、新しいバージョンのアプリのダウンロードではなく、新しいバージョンのアプリが実行されている場合OnDemandResource
、アプリはすべてのリソースがダウンロードされたと認識します。
修正方法は?
最初に古いバージョンを起動します:
NSSet *tags = [NSSet setWithObjects: @"PACK_1", @"PACK_2", nil];
NSBundleResourceRequest *resourceRequest = [[NSBundleResourceRequest alloc] initWithTags:tags];
resourceRequest.loadingPriority = 1.0;
[resourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler:^(BOOL resourcesAvailable) {
if (resourcesAvailable) {
} else {
// Download PACK_1 and PACK_2
[resourceRequest beginAccessingResourcesWithCompletionHandler:^(NSError * __nullable error) {
if(!error){
} else {
// Run App
}
}];
}
}];
最初に新しいバージョンを起動します (古いバージョンを更新し、新しい PACK_3 を追加します):
NSSet *tags = [NSSet setWithObjects: @"PACK_1", @"PACK_2", @"PACK_3", nil];
NSBundleResourceRequest *resourceRequest = [[NSBundleResourceRequest alloc] initWithTags:tags];
resourceRequest.loadingPriority = 1.0;
[resourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler:^(BOOL resourcesAvailable) {
// Check PACK_1, PACK_2 and PACK_3 and resourcesAvailable = true, but PACK_3 not download
if (resourcesAvailable) {
// Run App
} else {
// Will not start to download PACK_3
[resourceRequest beginAccessingResourcesWithCompletionHandler:^(NSError * __nullable error) {
if(!error){
} else {
}
}];
}
}];