Search code examples
macoskeychainmobileprovision

iOS app: manually copy .mobileprovision file to keychain without xcode


I want to manually add .mobileprovision to the keychain access without using xCode because I didn't develop the app with xCode. Any suggestions?


Solution

  • I found a YouTube video by Kotobee to be immensely helpful.

    You will need an OpenSSL. All necessary info is within this video.

    My personal notes from this video:

    Step 1: Need Open SSL folder

    Step 2: Process of making the KEYS

    https://youtu.be/yCvbbIfMnxI?t=6m
    
    https://youtu.be/yCvbbIfMnxI?t=8m4s
    

    1ST KEY

    certificate signing request file (CSR)
    open SSL file in COMMAND PROMPT (cmd)
    
    openssl genrsa -out [keyname].key 2048
        // optional change [keyname]
        (NOTE: if issues locating openssl.cfg type at command prmpt
        set OPENSSL_conf-d:\OpenSSL-Win64\bin\openssl.cfg
        nothing will show on command prmpt, but continue)
    

    2ND KEY

    making the CertificateSigningRequest.certSigningRequest KEY
    
    ////    video timestamp around 13:00 //////
    openssl req -new -key [keyname].key -out    CertificateSigningRequest.certSigningRequest -subj  "/[email protected], CN= companyName, C=US"
    

    C=US is about the country of origin. So you may need to change this if not US.

    NOTE: SEEMS LIKE ONCE YOU HAVE THE KEY FROM OPENSSL, don't need to do this process again. Not positive though, but so far seems true.

    3RD KEY

    https://youtu.be/yCvbbIfMnxI?t=14m52s
    
    log into developer.apple.com account
    3 steps:
    
    STEP A:
      Certificates
        there's a DIFFERENCE between DEVELOPMENT & PRODUCTION/DISTRIBUTION
    
      Click the PLUS sign in upper right corner of web page.
      You can likely reUPLOAD the SAME key created under name:
        CertificateSigningRequest.certSigningRequest
    
      dev site will return "Your certificate is ready" to download
        file name will be
            ios_distribution.cer   for DISTRIBUTION KEY
            ios_development.cer    for DEVELOPMENT KEY
    

    /// NOTE: SO FAR LOOKS LIKE YOU CAN USE SAME KEY ONCE MADE!

      Put your .cer file into the OpenSSL bin folder
    
    STEP B:
      Make your APP ID via the developer.apple.com site
        https://youtu.be/yCvbbIfMnxI?t=16m58s
    
      THIS SECTION appears to need to change per app, especially for DISTRIBUTION
       could just use the wildcard key and be done with it for DEVELOPMENT
    
    STEP C:  Create .mobileprovision file
    (note: this will include your registered devices)
        Make an APP ID
            click on Identifiers > App IDs > 
            Explicit App:   Dev Prov Profile
            App Bundle: id="com.domain.app"
            Enabled:    Push Notifications    (can exclude this line)
        Download new .mobileprovision file from developer.apple.com into
          D:\OpenSSL-Win64\bin
        Make sure latest CertificateSigningRequest.certSigningRequest file in
          D:\OpenSSL-Win64\bin
        Along with .key file in D:\OpenSSL-Win64\bin
    
    STEP D: Create .pem file
        In Command Prompt type:
    

    openssl x509 -in [developer_certificate].cer -inform DER -out [app_pem_file].pem -outform PEM ios_distribution.cer OR ios_development.cer

        rename the [app_pem_file].pem file if you like -- make it similar (my thought)
        to bundle app ID name or Explicit App name
        OR
        make it same as the .key name (if recreating & not using a previous one)
    
        this creates the .PEM file
    
    
    STEP E: Create .p12 file (final task)
    
        In Command Prompt type:
    

    openssl pkcs12 -export -inkey [keyname].key -in [app_pem_file].pem -out [app_p12].p12

    As I said, all this information is on the video. You don't need my personal notes to get the key. :)