Packaging a bundle (.app) inside 'Resources' folder of another Bundle (.app)

Discussion in 'Mac Programming' started by kamy, Jan 27, 2015.

  1. kamy macrumors member

    Joined:
    Jul 27, 2011
    #1
    Hi guys,

    I was working on a project for a client and earlier they packaged a bundle in this manner

    AppABC.app (Macho-Type = Executable)
    -->Contents
    --> Resources --> ImageA.png
    --> Resources --> ImageBCD.png
    --> Resources --> ImageBCD.png
    --> Resources --> NewBundle.bdl (Macho-Type = Bundle)

    NewBundle.bdl is a bundle that is packaged inside the main Bundle - "AppABC.app"

    This was accepted in the app store.

    However we worked on an enhancement where we had to add a new application bundle (ScreenWow.app) inside the main Bundle "AppABC.app"

    AppABC.app (Macho-Type = Executable)
    -->Contents
    --> Resources --> ImageA.png
    --> Resources --> ImageBCD.png
    --> Resources --> ImageBCD.png
    --> Resources --> NewBundle.bdl (Macho-Type = Bundle)
    --> Resources --> ScreenWow.app (Macho-Type = Executable)

    Now with this kind of a bundle - We are facing issues uploading our updated bundle in App Store. For some reason we cannot upload our binary while submitting the app from Xcode. The ScreenWow.app binary is still recognized as an executable file and is not validated.

    Please see screenshot
    Screen Shot 2015-01-26 at 16.16.26.png

    Can we bundle an application bundle (.app) inside another application bundle?
     
  2. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #2
    The error messages in your screenshot seem self-explanatory to me.

    1. The bundled app (ScreenApp) isn't sandboxed. ("App sandbox not enabled".)
    2. The CFBundleExecutable key names an executable that doesn't exist. ("Cannot find executable file that matches...")
    3. The bundle identifier is invalid. (It tells you the exact string that's invalid.)
    4. The key named CFBundleExecutable names an executable that doesn't exist. This is the same error as #2, but it applies to a different executable. (It tells you the incorrect CFBundleExecutable string.)
    Based on the apparent fact that the literal string "$(PRODUCT_NAME)" appears in two errors, those look like the build isn't properly expanding the PRODUCT_NAME build variable. This would be errors #3 and #4 above.

    Error #1 looks to be an error in the bundled app's pathname. It could be the ".capp" suffix is wrong, or that "ScreenApp" is wrong, since you mentioned "ScreenWow.app" in your post and I see nothing with that name in any error message.

    Error #2 looks like an incorrect CFBundleExecutable string. Look at the exact pathname given in the error. Confirm whether that executable file actually exists in the built app.

    You need to look very carefully at your build variables, your build names, and exactly what files get put into the built app. In other words, confirm your beliefs and expectations with reality by looking at the actual files. The place to start is the specific files named in the error messages.
     
  3. kamy thread starter macrumors member

    Joined:
    Jul 27, 2011
    #3
    Thanks Chown.
    Actually the bundle inside the 'Resources' is called - ScreenApp.app
    I was trying to use a different extention (.capp) - but still got the same issues.

    I will try look at my build names once more. Thanks.
     

Share This Page