OS X 10.10 Yosemite introduces Finder Sync extensions. I'm having trouble integrating these into an existing project. I have an existing component that I would like the extension to live under. This component is not distributed through the app store, and the "Identity -> Signing" under General-> Settings is set to "None"
Under Build Settings, I have the following:
I read some information about distributing apps outside the app store and it didn't say anything about a provisioning profile.
When I use the Xcode 6.1 beta 2 template to create the Finder Sync extension target, it sets it up with "General -> Identity -> Signing" of None, just like the parent component. Build settings has the following:
However, when I build, it says the following:
"No matching provisioning profiles found"
"This product type must be built using a provisioning profile, however no provisioning profile matching the identity “Developer ID Application: [Team Account]” was found. Xcode can resolve this issue by downloading a new provisioning profile from the Member Center."
Is there a new requirement for provisioning profiles when building app extensions? Is there a different type of certificate that I should be using?
I found this interesting snippet in the App Extension Programming Guide:
To deliver an OS X app extension, it’s recommended that you submit your containing app to the App Store, but it’s not required.
Note: If you distribute an OS X app extension outside of the Mac App Store, Gatekeeper prevents the extension from running until the user opens and approves the containing app. Further, if you code sign with a certificate other than your Developer ID, users must explicitly override Gatekeeper to open the containing app to make your extension available.
Another relevant snippet from the Debug, Profile, and Test Your App Extension section:
Note: You must code sign your containing app and its contained app extensions.
All the targets in your Xcode project must be code signed in the same way. For example, during testing you can employ ad hoc code signing or use your developer certificate, but must use the same approach for all the targets in your project. For submission to the App Store, use your distribution certificate for all the targets.
A provisioning profile is a type of system profile used to launch one or more apps on devices and use certain services.
In OS X, the Finder Sync extension point lets you cleanly and safely modify the Finder's user interface to express file synchronization status and control. Unlike most extension points, Finder Sync does not add features to a host app. Instead, it lets you modify the behavior of the Finder itself.
Adding a new device to the Ad Hoc ProfileGo to the iOS Provisioning Portal and click on Provisioning. Select the Distribution tab. 2. Select the Ad Hoc profile you want to modify and click 'Edit'.
I found a tip in the Apple Dev Forum, which worked for me. The solution was to manually resign the App Extension before the Embed App Extension build phase in the App target.
I had a similar problem with the same error message, using Xcode 6.1 "GM". In my case I'm using Today and Share extensions, though I have no idea if that's actually related to the problem. I tried removing them at one point and still got the same error.
In any case, I finally got it to build by setting the Provisioning Profile to "XC: *". I don't know why, as it doesn't actually embed the profile. I'm assuming you could select any provisioning profile that's valid for the app, but I only tested with a wildcard.
My extensions do work correctly after opening the containing app and allowing it to run.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With