How can I self-sign in Xcode for iPhone? - xcode

How can I self-sign an iPhone application using Xcode? I have done the following:
Created a cert following these instructions
Modified my /Developer/Platforms/iPhoneOS.platform/Info.plist to include the two keys
<key>PROVISIONING_PROFILE_ALLOWED</key>
<string>NO</string>
<key>PROVISIONING_PROFILE_REQUIRED</key>
<string>NO</string>
I have changed the info.plist associated with the project to say
<key>SignerIdentity</key>
<string>Apple iPhone OS Application Signing</string>
I have changed the project properties to refer to the signing authority with the name iPhone Developer, which is the name of my certificate.
The error is currently a valid provisioning profile matching the applications identifier... cannot be found.
Note: I am pretty sure that this can be done without a $99 cert from Apple. Also, I am not trying to build for the simulator but rather for the iPhone/iPod Touch itself.
Any insight would be appreciated.
Perhaps Relevant link.

Have you tried http://iphonedevwiki.net/index.php/Xcode#Developing_without_Provisioning_Profile? The link you've provided only works for SDK 2.x.

The error message is because you do not have the proper provisioning profile through the developer site of Apple, which follows from paying the $99 yearly. It may somehow work on a jail broken device which is not how Xcode is designed to be used.

Related

Xamarin.iOS - Using IPhoneSimulator's Keychain with a free iOS Development certificate

I have troubles with saving an account credentials inside an IPhoneSimulator's Keychain. I cannot use AccountSaver.Create().Save(credentials, "app") without Entitlements.plist. However when I add it to my project, compilation error shows up:
Could not find any available provisioning profiles for iOS.
I've added iOS Development certifcate to my account on Mac and tried to create a free provisioning profile but failed due to a lack of IPhone device.
Suprisingly, when I tried to build dummy project with added Keychain to Entitlements inside Xcode on my Mac and run it on a simulator no compilation errors occured.
My questions are: Do I have to make Apple Developer Account to test my Xamarin.iOS app inside IPhoneSimulator or is it possible without it and I'm doing something wrong? If so, what should I do to be able to compile my app?
I use Visual Studio 2017 on Windows 8 connected to a Mac Agent (Mac Mini).
P.S.: Most posts states, that simulator doesn't need provisioning profile, but according to this thread:
Starting with Xamarin.iOS 8.10, if the Entitlements.plist file is set at all for the iPhoneSimulator build configuration, then codesigning is required and thus an iOS code signing certificate is required to be installed in your keychain. ~ Xamarin Forum
Some time has passed since I asked this question, but I think it deserves an answer not only in the comments.
As #wottle wrote it is required to be enrolled i Apple Developer Program in order to have access to Keychain.
I sugest also to use Xamarin.Essentials' SecureStore instead of AccountSaver.
We have a bunch of Apple Store applications that had their Apple Distribution profiles expired. The issue was gone once we regenerated the Apple Distribution Certificate and created a new Distribution Profile for the impacted Applications.

Is it possible to distribute an OSX app ad-hoc without UUID but with entitlements

I'm having some serious trouble signing an application for ad-hoc distribution. Is it possible to distribute an app with the following requirements?:
Does not require tester to provide UUID up front
Outside app store
Utilizes entitlements such as VPN or Keychain Sharing
I ask because exporting without signing (Organizer (select archive) > Export > Export as Mac Application) fails with "embedded provisioning profile not valid: ..." on some devices. It appears to work on others though.
Thank you!
If you're trying to use the NetworkExtension framework (which I'm assuming because you tagged your question with nevpnmanager,) unfortunately that's only available in App Store apps.
I know this because I asked Apple. I was trying to make a non App Store NEVPN app, but no dice. Quinn from Developer Tech Support told me the NEVPN stuff is only available for App Store apps, and that I should file a bug report (which I think I did.)

How to make build from iOS app when Team account missing?

I have installed new inHouse provisioning profiles, however when I archive my build in Xcode, I am presented with a message saying the iOS development team is missing. I have xcode 6.4.
I know that you are able to build and sign an app if you don't have a developer team membership in Xcode.
Anyone know what is wrong?
Also another strange thing when I go into keychain to check if profiles and keys are there, they are not stored under the "Login" section like other profiles, but in "System". Is this ok?
Thanks
In order to archive your build (either for the App Store or Adhoc) it must be codesigned by Xcode. This requires a signing identity. Signing identities are only obtainable through the developer console at http://developer.apple.com/ and requires being a member of the apple developer program to access.
Sorry to break the news but without a developer membership you won't be able to archive your app for a device, but run it in the simulator only.

Testing a Mac App on Registered Devices

I have a Cocoa Mac App that I don't know if it will on the Mac AppStore.
The application is still in development, and I want few persons to be able to launch it on their devices while the app gets new features.
The situation is the following :
I have a Mac Developer Certificate
Devices are registered in the Mac Member Center.
Every time they launch the app, GateKeeper complain the app doesn't come from the Mac AppStore, nor is provided by a identified developer, no matter if I sign the app or not.
So I tried to sign it and a provisioning profile is embedded into the app. If I don't sign it nothing embedded.
I should mention that the app has a Spotlight importer and QuickLook generator bundled into it.
I didn't find any clear explanation on how to resolve this issue in the Apple documentation, and most (if not all) blog posts, or articles on the Internet are about iPhone apps, not Mac ones (the process/requirements seems to be different on the two platforms).
The documentation is unclear on if all testers should be team members (which seems crazy because some of them aren't developers and don't have Xcode installed).
Can someone provide a clear step-by-step explanation on how to do that ?
Or maybe a article/blog post link or tips ?
Edit :
Here are screenshots of the app bundle structure and plug-in structure :
Everything seems to be right.
The way I obtained that is : I didn't set "Code Signing Identity" build setting, but rather archived the app, and exported it specifying code signing identity at that time.
Edit :
More and more curious, when I run codesign command in the terminal, codesign -vvv MyApp.app, the output tends to suggests that all is rightly done :
MyApp.app: valid on disk
MyApp.app: satisfies its Designated Requirement
Interpreting this question as essentially:
"how do I beta test Mac App Store apps" ?
Apple hasn't yet published an official workflow in the App Distribution Guide, but the following process works:
Tester sends "System Information utility > Hardware tab > Hardware UUID" to developer
Developer updates dev provisioning profile to include the hardware UUID
Developer uses Xcode Organizer Archives tab, Distribute > "Save as Mac Application", then select the updated development signing identity.
Developer sends newly built app to the tester
Note: The development identities have yellow caution ! icons during the re-signing process but they can still be used.
Not only does this avoid the GateKeeper prompt, but the development provisioning profile is also needed for any store technologies you might be using to work during testing, e.g. iCloud, GameCenter, etc.

Why can't I code sign this Mac app?

I started some days ago a small Mac app for Mac OS X Lion. I've never uploaded a Mac app before, so this is the very first time.
This is what I've already done:
Created App ID
Created Certificate
Installed Certificate
Created a Production Provisioning Profile
Changed the App ID to my generated one
Created a new Configuration based on "Release"
Changed its Code Signing to 3rd Party Mac Developer Application
Selected the "Production"-Configuration which I created for the Archive-Scheme
Archived the Application
Now I wanted to "Share" the Application. Xcode (4.1 btw) said to me, there were no valid signing identities. Does I need to add an Entitlement.plist like in iOS? Have I forgotten something?
Update:
I just figured out, that I have to sign my app twice. I've still selected "3rd Party Mac Developer Application" but I can't select the Installer cert while submitting my app.
Have you installed the WWDR intermediate certificate? I just had the exact same problems and my issue was that the intermediate certificate was not installed on my machine. Granted, nowhere does Apple explicitly say you need it installed, more like suggestions. But, you do need it. You can find it here, or by going to Developer Certificate Utility under the Mac Developer Center.
I got it to work. I deleted my App and created it new.
I didn't create a new Configuration, and I only changed the Code Signing Indentity of the Target to 3rd Party Mac Developer Application. After this, I archived the app and then I was able to select the installer cert.

Resources