Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

Testing In App for Mac App Store

Discussion in 'Editor & General Support' started by sevensails, May 16, 2016.

  1. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I'm following this tips to test the In App for Mac App Store : http://docs.unity3d.com/Manual/UnityIAPiOSMAS.html

    Build I have two problems! After installing the resulting Package, I can't run my game! And if I try to send it to Application Load I got this :

    Code (csharp):
    1.  
    2. ERROR ITMS-90511: "CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'com.unity.purchasing.unitypurchasing' of 'Druids - Battle of Magic.app/Contents/Plugins/unitypurchasing.bundle' is already in use by another application."
    3. ERROR ITMS-90255: "The installer package includes files that are only readable by the root user. This will prevent verification of the application's code signature when your app is run. Ensure that non-root users can read the files in your app."
    4. ERROR ITMS-90266: "Your application bundle must install to '/Applications'."
    5. ERROR ITMS-90296: "App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "com.sevensails.druidsbattleofmagicmac.pkg/Payload/Druids - Battle of Magic.app/Contents/MacOS/Druids - Battle of Magic" )] Refer to App Sandbox page at https://developer.apple.com/devcenter/mac/app-sandbox/ for more information on sandboxing your app.
    6. (1102)
    7.  
    It seems there are some additional steps missing!

    Any advice?
     
  2. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    Well... making some changes I was able to fix some errors:

    But there are 2 remaining :

    Code (csharp):
    1.  
    2. [*]ERROR ITMS-90511: "CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'com.unity.purchasing.unitypurchasing' of 'Druids - Battle of Magic.app/Contents/Plugins/unitypurchasing.bundle' is already in use by another application."
    3. [*]ERROR ITMS-90266: "Your application bundle must install to '/Applications'
    4.  
    - Is it an Unity InAPP bug or Am I missing something?
    - Where my package is not installed to /Applications folder? The install folder of it is the pkg folder itself.
     
  3. aheidorn

    aheidorn

    Joined:
    Jan 17, 2013
    Posts:
    13
    I'm also trying to submit an update to my app (adding IAP) and I ran into the exact same error:
    "CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'com.unity.purchasing.unitypurchasing' of '<myapp>.app/Contents/Plugins/unitypurchasing.bundle' is already in use by another application."

    Short of editing Plugins/UnityPurchasing/Bin/unitypurchasing.bundle/Contents/Info.plist and altering the CFBundleIdentifier to something else, what should we be doing to get this to upload to the Store?
     
    ilmario likes this.
  4. jkampitakis

    jkampitakis

    Joined:
    Dec 27, 2015
    Posts:
    56
    I have exactly the same problem, still cant figure out what to do here...
     
  5. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Yes you need to change this, info.plist to for example your company name.. Thing is unity doing poor job actually properly testing there stuff, bench of coders make changes as needed but no one tests real life scenarios!! Shame because they should just have bought company Prime31..they know this
     
    jkampitakis likes this.
  6. jkampitakis

    jkampitakis

    Joined:
    Dec 27, 2015
    Posts:
    56
    I changed the CFBundleIdentifier of the info.plist of the unitypurchasing.bundle to match the one we have in info.plist of the root .app namespace.
    The Application Loader successfully passed the validation and uploaded the file to the store. After a while we took the following email

    Dear developer,

    We have discovered one or more issues with your recent delivery for "Ποια λέξη;". To process your delivery, the following issues must be corrected:

    Invalid Signature - The main app bundle Ποια λέξη; at path worditout.app has following signing error(s): --prepared:/Volumes/data01/app_data/dstr/mz_4177966872830669251dir/mz_678394295444109399dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libmono.0.dylib --validated:/Volumes/data01/app_data/dstr/mz_4177966872830669251dir/mz_678394295444109399dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libmono.0.dylib --prepared:/Volumes/data01/app_data/dstr/mz_4177966872830669251dir/mz_678394295444109399dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib --validated:/Volumes/data01/app_data/dstr/mz_4177966872830669251dir/mz_678394295444109399dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib /Volumes/data01/app_data/dstr/mz_4177966872830669251dir/mz_678394295444109399dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app: code object is not signed at all In subcomponent: /Volumes/data01/app_data/dstr/mz_4177966872830669251dir/mz_678394295444109399dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/info.plist . Refer to the Code Signing and Application Sandboxing Guide at http://developer.apple.com/library/...ceptual/CodeSigningGuide/AboutCS/AboutCS.html and Technical Note 2206 at https://developer.apple.com/library/mac/technotes/tn2206/_index.html for more information.

    Unable to Sign - This package doesn't meet the current code signing requirements. For more information, see the Code Signing and Application Sandboxing Guide and Technical Note 2206.

    Specifically, codesign generated the following error:


    com.lazyland.worditout-el-osx.pkg/Payload/worditout.app: code object is not signed at all

    In subcomponent: com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/info.plist




    Once these issues have been corrected, you can then redeliver the corrected binary.

    Regards,

    The App Store team



    Any ideas, what we should now do?

    Regards,
    john.
     
  7. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    I changed the CFBundleIdentifier of the info.plist of the unitypurchasing.bundle to match the one we have in info.plist of the root .app namespace.

    Im not sure if this should match, com.unity.purchasing.unitypurchasing
    You should just change it to com.lazyland.purchasing.unitypurchasing.
    This maybe not the reason for your error, it maybe due to code signing as it tells you.
    How have you codesigned the package?
     
    ilmario likes this.
  8. jkampitakis

    jkampitakis

    Joined:
    Dec 27, 2015
    Posts:
    56
    We had some progress concerning this issue, but we still get a rejection from Apple...

    We advise including the 'com.apple.security.network.client' entitlement if your app connects to the Internet.We look forward to reviewing your revised binary.Best regards,App Store Review

    What we did to bypass the previous Application Loader errors you will ask. You can see it in the "MyBuildPostprocessor.cs" file I am attaching you.

    So, we create a .plist + .entitlements on the fly and put the first one inside the .app (inside the Contents root folder) and we use the other one in order to sign EVERYTHING inside the .app (including the unity purchasing.bundle and some .dylibs found inside the Frameworks folder. Yes, we needed to sign EVERYTHING in order to pass phase 1 and 2 of the verification).

    So, we are now in a situation where we don't know what else to do.
    We tried to copy and paste the .entitlements file inside the Contents root folder of the .app but we get a rejection email immediately from Apple saying the following:

    Dear developer,

    We have discovered one or more issues with your recent delivery for "Ποια λέξη;". To process your delivery, the following issues must be corrected:

    Invalid Signature - The main app bundle Ποια λέξη; at path worditout.app has following signing error(s): --prepared:/Volumes/data01/app_data/dstr/mz_5259608710386326893dir/mz_7421766441859889417dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libmono.0.dylib --validated:/Volumes/data01/app_data/dstr/mz_5259608710386326893dir/mz_7421766441859889417dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libmono.0.dylib --prepared:/Volumes/data01/app_data/dstr/mz_5259608710386326893dir/mz_7421766441859889417dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib --validated:/Volumes/data01/app_data/dstr/mz_5259608710386326893dir/mz_7421766441859889417dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/Frameworks/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib /Volumes/data01/app_data/dstr/mz_5259608710386326893dir/mz_7421766441859889417dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app: code object is not signed at all In subcomponent: /Volumes/data01/app_data/dstr/mz_5259608710386326893dir/mz_7421766441859889417dir/com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/worditout.entitlements . Refer to the Code Signing and Application Sandboxing Guide at http://developer.apple.com/library/...ceptual/CodeSigningGuide/AboutCS/AboutCS.html and Technical Note 2206 at https://developer.apple.com/library/mac/technotes/tn2206/_index.html for more information.

    Unable to Sign - This package doesn't meet the current code signing requirements. For more information, see the Code Signing and Application Sandboxing Guide and Technical Note 2206.

    Specifically, codesign generated the following error:


    com.lazyland.worditout-el-osx.pkg/Payload/worditout.app: code object is not signed at all
    In subcomponent: com.lazyland.worditout-el-osx.pkg/Payload/worditout.app/Contents/worditout.entitlements




    So, we can't just copy and paste the .entitlements file inside the .app (as we thought that may be the cause of the rejection).

    Any help would be greatly appreciated.

    Kind regards,
    John.
     

    Attached Files:

    Last edited: Jun 22, 2016
  9. ilmario

    ilmario

    Joined:
    Feb 16, 2015
    Posts:
    71
    I have the same damn problem, why oh why hasn't this been resolved in over a year, using the latest Unity IAP with latest Unity 2017.1-version! Is this because so few people try to build Unity apps/games to Mac App Store with IAP?

    Manipulating the .plist files seems like a solution, but Unity IAP itself wants to update it quite often, and it makes little sense to change .plist files manually/skip updating them.

    Does anyone know of a more elegant solution?
     
  10. ilmario

    ilmario

    Joined:
    Feb 16, 2015
    Posts:
    71