Post

Replies

Boosts

Views

Activity

Reply to Apple app review removed my app
My app is a random chat and video call app with ability to choose a specific gender 1.2 says: Apps with user-generated content or services that end up being used primarily for … Chatroulette-style experiences ... do not belong on the App Store and may be removed without notice. I don’t think you have any chance of getting this approved.
Mar ’25
Reply to JPEG2000 (JP2) Decoding Works on iOS 16 but Fails on iOS 18
Did Apple remove or modify JPEG2000 support in iOS 18? I have read that they removed it from Safari in iOS 18, though I've not personally tested that. I'm not aware of its status in ImageIO. There have been problems with Apple's support for JPEG2000 previously. The danger of them breaking it in iOS updates is not a risk that I would take. It's not massively difficult to compile OpenJpeg yourself, and that is what I would advise.
Topic: Graphics & Games SubTopic: General Tags:
Mar ’25
Reply to Photo permission dialog not shown when iOS app runs on Mac
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????
Mar ’25
Reply to How to pass URL to iOS app from share sheet, and automatically open app?
Is there a known iOS restriction or trick for allowing an extension (share or action) to open its containing app directly? This isn’t allowed. (We don’t know why.) https://developer.apple.com/documentation/foundation/nsextensioncontext/1416791-open This says “Each extension point determines whether to support this method, or under which conditions to support this method. In iOS, the Today and iMessage app extension points support this method. An iMessage app extension can use this method only to open its parent app, and only if the parent app is shown on the iOS home screen.” It would be great if it explicitly said “other extension types do not allow it”; it doesn’t say that, but it is true. If you search StackOverflow you’ll find hacks that bypass this restriction. They seem to involve walking the containing app’s objects to find an unrestricted open() method on the UIApplication. In practice apps that do this do seem to get approved by app review; you may or may not want to risk it. In the case of Safari, you may be able to do it from a Javascript web extension, with some friction. See my recent thread about that.
Topic: App & System Services SubTopic: General Tags:
Mar ’25
Reply to Redirecting to an app's universal link from and app extension popup
Custom URL schemes seem to work a bit better than universal links. In all the cases where the universal link attempts to open the web page and adds a page banner saying "Open in APP", the custom URL scheme instead presents a blank grey page with a popup saying "Open in APP?". Although both involve the same number of taps for the user, the latter is much more better in practice as it's obvious what the user has to do.
Topic: Safari & Web SubTopic: General Tags:
Mar ’25
Reply to Redirecting to an app's universal link from and app extension popup
you need to display the link with an <a href and let the user tap the link. It seems that if I do this within the popup.html, it doesn't work; it opens a new tab, redirected to the web content of the universal link with the "open in app" banner. On the other hand, if I put the <a href="universal-link"> in the content, tapping on it does open the app. Is this a deliberate limitation on what Safari extensions are allowed to do?
Topic: Safari & Web SubTopic: General Tags:
Mar ’25
Reply to Does ' finishTransaction(_:) ' API affect settlement?
Hi, I'm wondering if an in-app purchase is already made, but my app has not yet call finishTransaction(_:). Would that transaction be settled to me? Yes. Or do I only receive payment after the transaction is marked as 'finish' via storekit? No.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Apple app review removed my app
My app is a random chat and video call app with ability to choose a specific gender 1.2 says: Apps with user-generated content or services that end up being used primarily for … Chatroulette-style experiences ... do not belong on the App Store and may be removed without notice. I don’t think you have any chance of getting this approved.
Replies
Boosts
Views
Activity
Mar ’25
Reply to Doubt about rejection under Guideline 4.3(b) - Design - Spam
My recollection is that all fortune telling apps are considered spam.
Replies
Boosts
Views
Activity
Mar ’25
Reply to JPEG2000 (JP2) Decoding Works on iOS 16 but Fails on iOS 18
Did Apple remove or modify JPEG2000 support in iOS 18? I have read that they removed it from Safari in iOS 18, though I've not personally tested that. I'm not aware of its status in ImageIO. There have been problems with Apple's support for JPEG2000 previously. The danger of them breaking it in iOS updates is not a risk that I would take. It's not massively difficult to compile OpenJpeg yourself, and that is what I would advise.
Topic: Graphics & Games SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to DUNS Name Update Delay – Can I Enroll with Old Name and Update Later?
Keep It Simple. Just wait for the update to happen. Be patient. Yeah maybe Apple could change the name later, but that could also take "4-6 weeks". Or something could go wrong, and you'd be left with a borked account.
Replies
Boosts
Views
Activity
Mar ’25
Reply to Safari Web Extension: How do I avoid "this extension can read and alter web pages"?
warning that "this extension can read and alter web pages". I think that if you use the activeTab permission, you don't get that.
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Safari extension without native code
You can delete the beginRequest() method, but SafariWebExtensionHandler is required. Deleting beginRequest gives a "does not conform to protocol" error. I have removed its body, which seems to work.
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Photo permission dialog not shown when iOS app runs on Mac
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????
Replies
Boosts
Views
Activity
Mar ’25
Reply to How to Convert Individual Apple Developer Account to Organization?
I did this several years ago; it was necessary to contact Developer Program Support, who were able to do it reasonably efficiently. I don’t know if things have changed since then.
Replies
Boosts
Views
Activity
Mar ’25
Reply to How to pass URL to iOS app from share sheet, and automatically open app?
Is there a known iOS restriction or trick for allowing an extension (share or action) to open its containing app directly? This isn’t allowed. (We don’t know why.) https://developer.apple.com/documentation/foundation/nsextensioncontext/1416791-open This says “Each extension point determines whether to support this method, or under which conditions to support this method. In iOS, the Today and iMessage app extension points support this method. An iMessage app extension can use this method only to open its parent app, and only if the parent app is shown on the iOS home screen.” It would be great if it explicitly said “other extension types do not allow it”; it doesn’t say that, but it is true. If you search StackOverflow you’ll find hacks that bypass this restriction. They seem to involve walking the containing app’s objects to find an unrestricted open() method on the UIApplication. In practice apps that do this do seem to get approved by app review; you may or may not want to risk it. In the case of Safari, you may be able to do it from a Javascript web extension, with some friction. See my recent thread about that.
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Redirecting to an app's universal link from and app extension popup
Custom URL schemes seem to work a bit better than universal links. In all the cases where the universal link attempts to open the web page and adds a page banner saying "Open in APP", the custom URL scheme instead presents a blank grey page with a popup saying "Open in APP?". Although both involve the same number of taps for the user, the latter is much more better in practice as it's obvious what the user has to do.
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Redirecting to an app's universal link from and app extension popup
you need to display the link with an <a href and let the user tap the link. It seems that if I do this within the popup.html, it doesn't work; it opens a new tab, redirected to the web content of the universal link with the "open in app" banner. On the other hand, if I put the <a href="universal-link"> in the content, tapping on it does open the app. Is this a deliberate limitation on what Safari extensions are allowed to do?
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Redirecting to an app's universal link from and app extension popup
Could you please confirm if the link is functioning correctly when accessed through the link embedded within the app’s Notes feature? Yes, the universal links work fine in general, including from the Notes app.
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Redirecting to an app's universal link from and app extension popup
I found this old thread: https://developer.apple.com/forums/thread/684693 which suggests that window.open() might work. It hasn't worked for me yet, but they were discussing custom URL schemes rather than universal links. Might that be significant?
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Reply to Opening native app from a web extension
window.open(universal-link) not working for me in 2025. Might a custom URL scheme behave differently than a universal link?
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25