Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RoboVM can't see iosProvisioningProfile

I'm trying to configure RoboVM to build my LibGDX project for iOS.

In my build.gradle

project(":ios") {
    apply plugin: "java"
    apply plugin: "robovm"

    configurations { natives }

    dependencies {
        compile project(":core")
        compile "org.robovm:robovm-rt:${roboVMVersion}"
        compile "org.robovm:robovm-cocoatouch:${roboVMVersion}"
        compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
    }

    robovm {
        // Configure robovm
        iosSignIdentity = "ABCD123455442D6E878394E55925E0987654321"
        iosProvisioningProfile = "/path/to/profile.mobileprovision"
        iosSkipSigning = false
        stdoutFifo = ""
        stderrFifo = ""
    }

}

I'm not sure if what I have for iosSignIdentity is correct either, those characters (well not those ones, but close) are the sequence returned by security find-identity -v -p codesigning

So far it's completely refused to see my provisioning profile file that I downloaded from Apple. The error I get is:

> No provisioning profile found matching '/path/to/profile.mobileprovision'

I've been bashing my head against this for days. Any ideas?

like image 738
Jephron Avatar asked Jun 30 '14 05:06

Jephron


1 Answers

Rather than provide the path as you have in your question, provide the names of the provisioning profile and signing identity.

Example:

robovm {
    iosSignIdentity = "iPhone Distribution: My Company Name (ABC3214QFD)"
    iosProvisioningProfile = "MyApp Distribution Provisioning Profile"
}

Where do you get these names?

First, some prerequisites:

  1. Open Xcode, go to Preferences > Accounts
  2. Make sure you have added your Apple ID to the list of accounts
  3. Once done, click View Details
  4. Ensure you have an iOS Development and iOS Distribution signing identity (if not, add using the plus button)
  5. Press the refresh button

To obtain the name of the provisioning profile, see the bottom list of provisioning profiles. The one whose name you use must be a provisioning profile for App Store distribution, and it must be associated with a certificate in the member portal that is for app distribution. This certificate must also be the one you use to sign your IPA.

In my case, I created this provisioning profile in the member portal, and named it something like:

MyApp Distribution Provisioning Profile

To obtain the name of the signing identity, open the Keychain Access app on your Mac and, under Certificates, look for a certificate named like this:

iPhone Distribution: My Company Name (ABC3214QFD)

Note, in order to use this certificate you must have an associated private key on your Mac. You should see this in Keychain Access, as an expandable row under the corresponding certificate.

like image 54
outofcoffee Avatar answered Nov 13 '22 22:11

outofcoffee