Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do Finder Sync Extensions require a provisioning profile?

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:

  • Code Signing Identity: Developer ID Application:
  • Provisioning profile: None

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:

  • Code Signing Identity: Developer ID Application:
  • Provisioning Profile: (not set)

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.

like image 468
RobertR Avatar asked Sep 17 '14 21:09

RobertR


People also ask

What is Macos provisioning profile?

A provisioning profile is a type of system profile used to launch one or more apps on devices and use certain services.

What is Findersync appex?

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.

How do I add device id to provisioning profile?

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'.


2 Answers

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.

enter image description here

like image 188
dlinsin Avatar answered Oct 04 '22 18:10

dlinsin


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.

like image 31
robotspacer Avatar answered Oct 04 '22 18:10

robotspacer