Weird problem including files in XCode 7

Discussion in 'Mac Programming' started by Senor Cuete, Oct 18, 2015.

  1. Senor Cuete macrumors regular

    Joined:
    Nov 9, 2011
    #1
    I use Receigen, http://receigen.etiemble.com/support.html, to implement code signing in a Mac application. This has always worked for me but starting with XCode 7.1, I can't build my project. Receigen generates a header file that you included in your main.m file. This gives you defines a function:
    CheckReceiptAndRun(argc, (const char **) argv);
    that you use instead of:
    NSApplicationMain(argc, (const char **) argv);

    In order to use this you have to include an openssl-version folder that has the openssl libraries and an include folder that contains an openssl folder with the needed header files for the receigen header file to build.

    The Receigen header has lines like this:
    #import <openssl/bio.h>

    These headers are in the project and I can open them and read them but the project won't build. Building reports an error: 'openssl/bio.h' file not found.

    I've tried adding these folders to the project file with and without the copy files needed box checked and with the create groups and create folder references options. The result is the same. The openssl files are added to the project and I can see and read them but the compiler can't locate them.

    I've added /Users/Guest/Projects/openssl-version/include in the User Header Search Paths in the project Search Paths as advised in the Reciegen help. Always search User Paths is set to yes. I've also tried adding search paths to the include folder in the Header Search Paths and Sub-directories to include in Recursive Searches fields but the compiler still reports that they can't be found.

    I can't understand why XCode suddenly can't find included header files in the project tree with version 7. I know that Apple has deprecated openssl but including the libraries and headers should still work. It seems like Apple has done something to sabotage Receigen/openssl.

    The Reciegen developer doesn't respond to help E-mails so maybe one of you can help.
     
  2. Senor Cuete thread starter macrumors regular

    Joined:
    Nov 9, 2011
    #2
    I can get the project to build by replacing for example

    #import <openssl/bio.h>

    with

    #import "openssl-1.0.1g/include/openssl/bio.h"

    I can understand why the quotes would be better than the '<>'s but I shouldn't have to replace all of the 222 "#import <openssl/file name>s with

    #import "fullpath/..."s

    the compiler should be able to do this.
     
  3. Senor Cuete, Oct 18, 2015
    Last edited: Oct 18, 2015

    Senor Cuete thread starter macrumors regular

    Joined:
    Nov 9, 2011
    #3
    Here's a fix:

    Add the opesssl-version folder with the Destination: Copy items if needed check box checked and the Added folders: Create Groups radio button selected.

    Change ALL 222 OCCURRANCES of for example:

    #import <openssl/bio.h>

    with for example:

    #import "bio.h"

    I'm not done doing this yet but If it works I'll post it here.

    Yes, it builds this way.
     

Share This Page