• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
[SOLVED] Re: Spotlight importer don't work anymore under Mavericks (sandbox error)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SOLVED] Re: Spotlight importer don't work anymore under Mavericks (sandbox error)


  • Subject: [SOLVED] Re: Spotlight importer don't work anymore under Mavericks (sandbox error)
  • From: Giacomo Tufano <email@hidden>
  • Date: Fri, 25 Oct 2013 11:03:30 +0200

Hi, for the records (and future searchers):

As per https://developer.apple.com/library/mac/qa/qa1773/_index.html (I should have read this one before) the importer have to be signed with the same identity and entitled for com.apple.security.app-sandbox.
To check if the importer works you *must* move it in the /Applications folder (ie: executing the main app in the debugger is not enough).

The main issue is that under Mavericks embedded spotlight importers not signed don’t work anymore (correctly, in a way).

Il giorno 24/ott/2013, alle ore 23:12, Giacomo Tufano <email@hidden> ha scritto:

> Hi, I have a spotlight importer for a sandboxed coredata application, derived directly from the Xcode 4.x template and working embedded in the app.
> The importer works under OS X 10.7 and 10.8 but fails in allocating the NSManagedModel from the storeURL located in the sandbox at containerdir/Data/Library/CoreData/LocalConfig/.support/model.mom
>
> In console I see a related sandbox error at the same time of my error:
>
> 24/10/13 19:31:49,364 sandboxd[351]: ([2437]) mdworker(2437) deny file-read-xattr /Users/gt/Library/Containers/it.iltofa.Janus/Data/Library/CoreData/LocalConfig/.support/model.mom (import fstype:hfs fsflag:480D000 flags:240000005F diag:0 isXCode:0 uti:it.iltofa.janus plugin:/Janus Notes.app/Contents/Library/Spotlight/Janus NotesImporter.mdimporter - find suspect file using: sudo mdutil -t 22334033)
>
> The store is allocated in the “main” app with:
>
>    NSURL *cacheDirectory = [[NSFileManager defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&localError];
>    cacheDirectory = [cacheDirectory URLByAppendingPathComponent:@"CoreData/LocalConfig/" isDirectory:YES];
>    if(![[NSFileManager defaultManager] createDirectoryAtURL:cacheDirectory withIntermediateDirectories:YES attributes:nil error:&localError]) {
>        ALog(@"Error creating %@: %@", cacheDirectory, [localError description]);
>        assert(NO);
>    }
>    NSString *externalRecordsSupportFolder = [cacheDirectory path];
>    NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES,
>                              NSInferMappingModelAutomaticallyOption: @YES,
>                              NSExternalRecordExtensionOption: @"janus",
>                              NSExternalRecordsDirectoryOption: externalRecordsSupportFolder,
>                              NSExternalRecordsFileFormatOption: NSXMLExternalRecordType
>                              };
>    _localStore = [_psc addPersistentStoreWithType:NSSQLiteStoreType configuration:@“LocalConfig” URL:storeURL options:options error:&localError];
>
> The failing call on the importer is:
>  	_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:self.modelURL];
>
> where self.modelURL is inited as:
>    NSDictionary *pathInfo = [NSPersistentStoreCoordinator elementsDerivedFromExternalRecordURL:[NSURL fileURLWithPath:filePath]];
>    self.modelURL = [NSURL fileURLWithPath:[pathInfo valueForKey:NSModelPathKey]];
>
> IIRC this is the template code.
>
> I suspected a signing error, but the importer built with XCode 4 was not signed at all, and it is signed on Xcode 5 with the same identity as the main app.
> The importer embedded in the app freshly downloaded from the App Store works as intended under ML with no error at all and fails under Mavericks with the error above.
>
> I was not able to find anything on the Internet and I’m out of ideas… It seems strange to me that this is a bug because I think this is a very common case (at least, I think that a core data app with a spotlight importer is not *so* strange)
>
> any hint/suggestion will be appreciated… more code is available on request, in case it will be useful.


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


References: 
 >Spotlight importer don't work anymore under Mavericks (sandbox error) (From: Giacomo Tufano <email@hidden>)

  • Prev by Date: Re: NSTextField, maximum string length, bindings and NSFormatter
  • Next by Date: NSPopupButton and content values binding transformer
  • Previous by thread: Spotlight importer don't work anymore under Mavericks (sandbox error)
  • Next by thread: operatingSystemVersionString replacement
  • Index(es):
    • Date
    • Thread