Apple Event: May 7th at 7 am PT

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

product build with sysctl-requirement for opting out some mac from installation.

I'm trying to opt-out some old Mac in the product build (which have outstanding bugs with Metal).


I've added the following files, but App Review seems to still test again those iMac 27 Late 2013.


Is it officially supported or not ?


Here the file, any body try something similar ?



<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">


<plist version="1.0">


    <dict>


        <key>sysctl-requirements</key>


        <string>(hw.model!='iMac13,1' AND hw.model!='iMac13,2' AND hw.model!='iMac14,2')</string>




    </dict>


</plist>

Posted on Jan 15, 2019 4:57 PM

Reply
5 replies

Jan 16, 2019 3:45 AM in response to etresoft

It is not the question of workaround or not. For example OpenGL is broken on Mojave with Macbook Pro 2017 (nothing is rendered, only Metal is working), because OpenGL is now deprecated,.


We moved the rendering code to Metal, and it worked everywhere, excepted on NVIDIA Geforce from Late 2012 and Late 201 3 (the rendering is heavily corrupted, no workaround possible, it is definitely a bug from Apple, it works also on Intel HD in Early 2012 MacMini).


Using the same technique described here : https://developer.apple.com/library/archive/qa/qa1748/_index.html

we try to prevent iMac Late 2013 to instal the app, by excluding from the list of compatible computers by using the 'gl-renderer' in property list.


My question, if OpenGL renderers can be filtered, it seems since MacOS 10.10, you can also filter mac from the hw.model, but it is not working, or is my plist above is wrong or something.


Jan 17, 2019 10:04 AM in response to etresoft

Already did a Radar Bug.


Seems I've forgot to assign the plist in Deployement, Pre-install Requirements Property List.


This field is gone in the latest version of XCode, but I can still create an user defined property to enable it (PRODUCT_DEFINITION_PLIST)


I'm seing a lot of games in Mac App Store, with an extensive list of unsupported Mac (for example Rise Of Tomb Raider, not compatible with Geforce 755 GM), but they are in store, so I guess they used the pre-install requirements property list to filter out.


Or maybe not.




Jan 17, 2019 10:51 AM in response to execomrt

Already did a Radar Bug.

Sorry, but that is usually a waste of time. In this case, it is totally a waste of time. Apple won’t lift a finger to support old/deprecated products like OpenGl and/or that old iMac. (“But Apple tests against that old iMac!” you reply. If no one has done this yet, let me be the first to welcome you to the Apple Developer Program.)


You will need to file one to more DTS tickets. You can ask one or more of the following:

1) How to exclude certain hardware configurations from App Store purchases;

2) How to get you OpenGL code to work on new machines;

3) How to get your new Metal code to work on old machines.


Never use anyone else’s App Store app as an example of anything. You don’t know the background there. Maybe they have connections/leverage with Apple that you don’t. Maybe they used a DTS ticket. Maybe they were grandfathered in. Or maybe they just have a description with a long list of hardware-specific requirements that people don’t read, followed by a long list of one-star reviews because the app doesn’t work.


You indicated that you had switched from OpenGL to Metal, apparently fairly easily. Can you do both and choose the engine dynamically based on available hardware? I suggest you explore that option while you wait for your DTS response which should take a few weeks.

product build with sysctl-requirement for opting out some mac from installation.

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.