Post not yet marked as solved
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
Post not yet marked as solved
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
Post not yet marked as solved
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.
Post not yet marked as solved
Hi there,in my macOS app, Paypal is used to purchase some items. Currently, this is done by presenting a WKWebView instance which works nice. However, password autofill is not kicking in. Is there any way to get the web view enable Safari's Password AutoFill feature?Thanks and cheersdanielkbx