I'm having another look at this.
I've been looking at the system log when my app first tries to access photos. Here are some excerpts from the huge amount of logging that looks relevant:
| default 19:11:18.758810+0000 TopoMaps2 [4.475] [T=22792] enabling photos service |
| default 19:11:18.813997+0000 photolibraryd photolibraryd starting up [97330] |
| default 19:11:18.856556+0000 tccd requestor: TCCDProcess: identifier=com.apple.photolibraryd, pid=97330, auid=501, euid=501, binary_path=/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd is checking access for accessor TCCDProcess: identifier=com.topomapsapp.TopoMaps2, pid=97320, auid=501, euid=501, binary_path=/private/var/folders/n4/lyzh1r8n1wl77pqsjpm6xm440000gn/X/330A9F7F-2CC8-5AF6-83DC-C8193E22383A/d/Wrapper/TopoMaps2.app/TopoMaps2 |
| default 19:11:18.859100+0000 tccd AUTHREQ_SUBJECT: msgID=97330.1, subject=com.topomapsapp.TopoMaps2, |
| error 19:11:18.862226+0000 trustd SecKeyVerifySignature failed: Error Domain=NSOSStatusErrorDomain Code=-67808 "RSA signature verification failed, no match" UserInfo={numberOfErrorsDeep=0, NSDescription=RSA signature verification failed, no match} |
| error 19:11:18.862278+0000 trustd SecKeyVerifySignature failed: Error Domain=NSOSStatusErrorDomain Code=-50 "rsa_pub_crypt failed, ccerr=-7" (paramErr: error in user parameter list) UserInfo={numberOfErrorsDeep=0, NSDescription=rsa_pub_crypt failed, ccerr=-7} |
| error 19:11:18.864989+0000 tccd Prompting policy for hardened runtime; service: kTCCServicePhotos requires entitlement com.apple.security.personal-information.photos-library but it is missing for accessing={TCCDProcess: identifier=com.topomapsapp.TopoMaps2, pid=97320, auid=501, euid=501, binary_path=/private/var/folders/n4/lyzh1r8n1wl77pqsjpm6xm440000gn/X/330A9F7F-2CC8-5AF6-83DC-C8193E22383A/d/Wrapper/TopoMaps2.app/TopoMaps2}, requesting={TCCDProcess: identifier=com.apple.photolibraryd, pid=97330, auid=501, euid=501, binary_path=/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd}, |
| default 19:11:18.866647+0000 tccd requestor: TCCDProcess: identifier=com.apple.photolibraryd, pid=97330, auid=501, euid=501, binary_path=/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd is checking access for accessor TCCDProcess: identifier=com.topomapsapp.TopoMaps2, pid=97320, auid=501, euid=501, binary_path=/private/var/folders/n4/lyzh1r8n1wl77pqsjpm6xm440000gn/X/330A9F7F-2CC8-5AF6-83DC-C8193E22383A/d/Wrapper/TopoMaps2.app/TopoMaps2 |
| error 19:11:18.904886+0000 photolibraryd cannot open file at line 49450 of [1b37c146ee] |
| error 19:11:18.904897+0000 photolibraryd os_unix.c:49450: (2) open(/private/var/db/DetachedSignatures) - No such file or directory |
| default 19:11:18.921665+0000 TopoMaps2 _addObserver:authorizationStatus: waiting for authorization (not determined) |
| error 19:11:18.932657+0000 tccd Prompting policy for hardened runtime; service: kTCCServicePhotos requires entitlement com.apple.security.personal-information.photos-library but it is missing for requesting={TCCDProcess: identifier=com.topomapsapp.TopoMaps2, pid=97320, auid=501, euid=501, binary_path=/private/var/folders/n4/lyzh1r8n1wl77pqsjpm6xm440000gn/X/330A9F7F-2CC8-5AF6-83DC-C8193E22383A/d/Wrapper/TopoMaps2.app/TopoMaps2}, |
| default 19:11:18.933346+0000 tccd Policy disallows prompt for Sub:{com.topomapsapp.TopoMaps2}Resp:{TCCDProcess: identifier=com.topomapsapp.TopoMaps2, pid=97320, auid=501, euid=501, binary_path=/private/var/folders/n4/lyzh1r8n1wl77pqsjpm6xm440000gn/X/330A9F7F-2CC8-5AF6-83DC-C8193E22383A/d/Wrapper/TopoMaps2.app/TopoMaps2}; access to kTCCServicePhotos denied |
| default 19:11:18.940315+0000 TopoMaps2 _addObserver:authorizationStatus: waiting for authorization (denied) |
Does that mean anything to anyone????