distribute software for MAC OS with developer certificate - macos

I had developer application for MAC desktop.
I would like to submit it to client for testing.
But not able to find the steps for developer distribution.
Like iphone application :- we register the UDID of the device (iphone/iPAD) and then add those in the provisioning profile and then create the ipa.
How do we create developer ipa file for mac desktop version.
please help.
I am new to mac os application

There are a couple guides about distributing Mac OS applications. "Distributing your Mac Apps" is the main entry point.
If you want to distribute your app to client just to test you can sign app with Developer ID certificate. In this case you need to investigate this certain chapter "Distributing Applications Outside the Mac App Store".
Separately you have option to export application bundle without any signing.
Short steps:
Select menu item Product->Archive
Click Export button
Select "Export as Mac Application"
Click Next and save your app

Related

Xamarin and Choosing Provisioning Profile for Distribution via Mac App Store

I'm trying to upload a mac app to the Mac App Store. I have done
this successfully with an iOS app, but this is the first time with
a mac app.
I have an Apple Distribution Certificate:
plus a Provisioning Profile for the Mac App Store which used the above cert:
The Cert is installed on my machine (downloaded it, double clicked). I can see it
in Keychain Access.
I now want to upload the Mac App to the AppStore.
Per this document, I need to set the developer ID and provisioning profile for the application and installer package.
So in Visual Studio 2019, I open preferences and head to "Apple Developer Accounts", select my dev account, my apple ID, and click "View Details". I see my certificates there, plus my Provisioning Profile "XXXX Mac App Store Provisioning Profile" (per the above diagram). Note that I have previously clicked "Download All Profiles" to get this profile installed locally.
I now open options for the Mac App project itself, select "Mac Signing".
Here's where things get weird:
a) The identities are correct. So I select the correct Developer ID.
b) the provisioning profiles are not correct. In fact it contains 2 old
entries, and 1 entry I have not heard of. It does not show any of the
provisioning profiles from the "VS | Preferences | Apple Developer Accounts".
c) It does show my "Developer ID Installer" cert for the installer.
Since I can't select any of my profiles, I select:
Identity: My Developer ID
Provisioning Profile: Automatic
Installer Package Identity: my "Developer ID Installer" cert.
I rebuild, "Archive For Publishing", and then attempt "Sign and Distribute".
I select "App Store" and get "No valid Provisioning Profile found"
What am I missing here? VS can see my profiles and certs.
But in the specific Mac project, those profiles do not show up, only some
old cruft.
I'd appreciate any advice. Thx.
Paul.
My comment above resolved the issue:
Apple Distribution certificate (which is SUPPOSED to be for MacOS,
tvOS and iOS) doesn't work in Xamarin for Mac apps. However if I used
Mac App Distribution certificate, and create a Mac App Store
Provisioning Profile using that Mac App Distribution certificate -
they both show up in the App Options | Signing. WTH?
Bottom line is that you need to use Mac App Distribution certs, not Apple Distribution certs.

Run Mac App with CloudKit connected to the Production environment

Has anyone succeeded to run a Developer ID signed Mac App with CloudKit and with access to the Production environment, using Xcode 8 beta 3? According to this diagram of Apple it should be possible, but all my attempts lead to crashes. What are the exact steps to follow?
My attempts until now includes the use of a "Mac DirectDistribution" Provisioning Profile that points to an App ID with CloudKit enabled and with access to an iCloud Container.
My CloudKit enabled-app works perfectly with a standard App Store configuration, but I want to test it with a Production environment.
Just add the following entry to your entitlement plist and do a clean build (shift+command k). No other action is needed: (string to copy: com.apple.developer.icloud-container-environment)
After countless experiments I found the following working solution to test CloudKit on the Mac with Production data, using Xcode 7.3:
In your App project, choose Developer ID in Targets > Identity > Signing
In the Entitlements file add a new line with key "com.apple.developer.icloud-container-environment" with value "Production"
Run the App (debug modus)
Export the app to an Archive, choose Export and select "Export as a Mac Application" to produce a Developer ID-based release version.
The steps are more or less the same if you use Xcode 8, but you have the extra option to disable the App Sandbox.
For Mac the easiest way is to just after Archive click Distribute App then choose Development and click next then choose your iCloud Environment (Production/Test) and save the app wherever you want. This version will access your production iCloud.
enter image description here
enter image description here

Distributing Apps Outside the Mac App Store crash with Code Signature Invalid error

I have a Mac App for OS X 10.10 that I am trying to create a working release build.
Not for the Mac App store "Distributing Apps Outside the Mac App
Store"
Uses "Developer ID Application" for the release code signing. Things look good in my App dev account
Created an OSX APP ID com.blah.app
Can create and verify an Archive successfully
sudo spctl --assess --verbose=4 Name.App, looks good "Name.App : accepted
source=Developer ID"
Read thru Apple "Distributing Apps Outside the Mac App Store"
Needs to be OS X 10.10 due to customer requirements
Read through everything I can find on stack overflow regarding this
matter
Can build and release iOS without a second thought, but this is my
first Mac App
I run the App and in the console I see "EXC_CRASH (Code Signature Invalid)"
Stumped ...
Gatekeeper
Macs have a "gatekeeper" feature that can be set in 3 modes in System Preferences > Security & Privacy > General > "Allow apps downloaded from:".
Which is your test system set to ?
Since you're signing using a Developer ID, it needs to be set to the 2nd or 3rd option (not just allowing the App store). [2nd option is the default on freshly installed machines]
Build for distribution outside of the app store
Builds that you create for submission to the App store cannot be run by everybody. One needs to build it specifically for that.
To quote https://developer.apple.com/library/mac/qa/qa1884/_index.html :
[...] use Xcode Organizer > Export > Export a Developer ID-signed Application. Developer ID-signed apps can be run by anyone. However, code that uses technologies only available to Mac App Store apps, such as receipt validation, iCloud, and push notifications, will not work if your app is Developer ID-signed. You might need to temporarily disable those parts of your app if you opt for the Developer ID testing approach
There was an error in the selected capabilities (red) that wasn't stopping the build, "Key chain sharing" in this case. Turned off as I didn't need it and everything works as expected

Stuck in "Import Developer Profile" screen While Trying to submit my App

I am struck in this page
I am using XCode 5.
I create Bundle ID in https://itunesconnect.apple.com/‎
I create the Mac App Id in https://developer.apple.com/ using the Bundle ID
I used the Bundle Id in my App Target in xcode
I used the Mac App Id (Step 2) in the Provisioning Profile in XCode 5
Code Sign of XCode says - Mac Developer - this is where i think there is something wrong
All i do is xcode > archive > validate and i get the above screen
Any anybody please guide me?
Like the other answer said, You are right now trying to use your developer provisioning profile to compile the app to the appStore.
To create a Distribution profile & certificate:
Login to developer.apple.com, Under iOS Developer Program click on "Certificates, Identifiers & Profiles"
Click on "Certificates" and create one with the type "iOS Distribution" , once done under "Provisioning Profiles" click on Distribution, and create a provisioning profile targeting your App Id.
Hope this helps
The Mac Developer signing identity is for development signing.
To submit to the store you need two Mac Developer certificates:
3rd Party Mac Developer Application: Your Company
3rd Party Mac Developer Installer: Your Company
Have you set them up in iTunesConnect?
After a clean install of xcode 5.1.1 this issue got resolved automatically

Code Sign Application option

What does "Signature - Code Sign Application" option checkbox in Summary panel of application Targets in Xcode 4.5 is needed for?
Isn't it the magic option which eliminates all this codesigning headache when distributing the application?
Unlike iOS apps, desktop apps don't need to be signed to run on a machine. Turning this on means that you will be using code signing.
If you are distributing through the Mac App store you will need to sign your app with an Apple Certificate.
If you are distributing your app yourself you have the choice of signing your app with an Apple certificate or not. Although there are settings on Mountain Lion (OS X 10.8) which can be set up to only allow apps that are signed (or even only allow apps that are from the Mac App store).
So no. The checkbox doesn't remove the "headache" of codesigning, it just turns the option on or off.

Resources