Post

Replies

Boosts

Views

Created

How to Migrate Photo Project Extension to Another App
Hi there, we have an app that is distributed both to the Mac App Store and direct downloads from our homepage. They have different bundle identifiers and a photo project extension: App Store App: com.company.appname-appstore App Store App Extension com.company.appname-appstore.extension Homepage App: com.company.appname Homepage App Extension: com.company.appname.extension We no plan to discontinue the homepage version and want to migrate users' data to the App Store version. For the app itself, this is pretty easy and straight-forward: establish one shared app group in both app copy the data to the group's container tell the user to use the App Store version from now on However, we struggle to do something similar to the projects of the Photos extension. Once the user deletes the homepage version, all existing projects in Photos.app are dead, no other extension can open them (since they are tied to the extension's bundle identifier). We cannot embed both extensions (of the homepage and the App Store version) in the (one and only) App Store version since an extension's bundle identifier must be the embedding's app bundle identifier plus something else which is not the case. Is there any way, an extension would be allowed to read the data of another extension of the same developer (team id) an app could contain an extension that does not share the same bundle identifier prefix (again of the same team) Or any other ideas? Thank you very much
0
0
589
Mar ’23
Bookmark Creation With Security Scope Fails in Xcode Cloud
I have an macOS app, where the user can open/drag a folder so that the contents can be listed and used. The app saves the bookmark data for these folders and restores them the next time the app runs. This works perfect on the development machines and on thousands of users' Macs. Recently I added UI tests which perform a couple if happy path tests and they are helping a lot. One of the tests adds a folder and tries to use an image which is in the folder. The folder is copied from the test bundle to the Desktop at the beginning of the test. This works both locally (on my Mac) and on two CI "servers" (latest macOS, Xcode Server). At the moment I try to migrate to Xcode Cloud. Unit tests run fine (after disabling the Hardened Runtime). However, I do not get the UI tests to succeed. They run and add the folder, however, the URL's bookmark data creation fails. I tried to track the differences during the build and found Xcode Cloud builds always being adhoc-signed. Running the UI tests locally but signing the app (and the tests) adhoc too does not result in the same problem. Problem in short: user selects folder (using NSOpenPanel or Drag'n'Drop) url.bookmarkData() works locally and in Xcode Cloud url.bookmarkData(options: [.withSecurityScope]) only works locally but not in Xcode Cloud This is easily reproducible with a very simple project which I can hand-out if needed. Anybody a hint or idea? Since those folders are essential for the app, not solving this would render Xcode Cloud completely useless for me. Thanks! Daniel
1
0
881
Aug ’23
finishProject not called when Photos quits
In a Photos extension, the function finishProject(completionHandler completion: () -> Void) of PHProjectExtensionController is not called when Photos quits. Is there anything I need to setup for Photos to call it? When the user leaves the extension (and keeps Photos alive) the function is called.
Replies
0
Boosts
0
Views
654
Activity
Mar ’22
How to Migrate Photo Project Extension to Another App
Hi there, we have an app that is distributed both to the Mac App Store and direct downloads from our homepage. They have different bundle identifiers and a photo project extension: App Store App: com.company.appname-appstore App Store App Extension com.company.appname-appstore.extension Homepage App: com.company.appname Homepage App Extension: com.company.appname.extension We no plan to discontinue the homepage version and want to migrate users' data to the App Store version. For the app itself, this is pretty easy and straight-forward: establish one shared app group in both app copy the data to the group's container tell the user to use the App Store version from now on However, we struggle to do something similar to the projects of the Photos extension. Once the user deletes the homepage version, all existing projects in Photos.app are dead, no other extension can open them (since they are tied to the extension's bundle identifier). We cannot embed both extensions (of the homepage and the App Store version) in the (one and only) App Store version since an extension's bundle identifier must be the embedding's app bundle identifier plus something else which is not the case. Is there any way, an extension would be allowed to read the data of another extension of the same developer (team id) an app could contain an extension that does not share the same bundle identifier prefix (again of the same team) Or any other ideas? Thank you very much
Replies
0
Boosts
0
Views
589
Activity
Mar ’23
Bookmark Creation With Security Scope Fails in Xcode Cloud
I have an macOS app, where the user can open/drag a folder so that the contents can be listed and used. The app saves the bookmark data for these folders and restores them the next time the app runs. This works perfect on the development machines and on thousands of users' Macs. Recently I added UI tests which perform a couple if happy path tests and they are helping a lot. One of the tests adds a folder and tries to use an image which is in the folder. The folder is copied from the test bundle to the Desktop at the beginning of the test. This works both locally (on my Mac) and on two CI "servers" (latest macOS, Xcode Server). At the moment I try to migrate to Xcode Cloud. Unit tests run fine (after disabling the Hardened Runtime). However, I do not get the UI tests to succeed. They run and add the folder, however, the URL's bookmark data creation fails. I tried to track the differences during the build and found Xcode Cloud builds always being adhoc-signed. Running the UI tests locally but signing the app (and the tests) adhoc too does not result in the same problem. Problem in short: user selects folder (using NSOpenPanel or Drag'n'Drop) url.bookmarkData() works locally and in Xcode Cloud url.bookmarkData(options: [.withSecurityScope]) only works locally but not in Xcode Cloud This is easily reproducible with a very simple project which I can hand-out if needed. Anybody a hint or idea? Since those folders are essential for the app, not solving this would render Xcode Cloud completely useless for me. Thanks! Daniel
Replies
1
Boosts
0
Views
881
Activity
Aug ’23