Apple heeft onlangs een extra controle-laag aan het goedkeuringsproces voor de App Store toegevoegd. Hiermee kan Apple ingediende applicaties nu ook controleren op het gebruik van verboden API’s.

Deze API’s, ook wel application programming interfaces genoemd, kunnen door ontwikkelaars gebruikt worden om hardware en software samen te laten werken om zo (bijzondere) acties uit te voeren. Ontwikkelaars mogen echter alleen zogenaamde publieke API’s gebruiken. Volgens de App Store-voorwaarden is het gebruik van verboden API’s, zogenaamde private API’s, niet toegestaan.

"Private API’s zijn aanroepen en features die alleen Apple gebruikt, en die niet aan ontwikkelaars worden gemeld", legt John Herrman van Gizmodo uit. Volgens hem kunnen er verschillende redenen zijn waarom Apple deze API’s private heeft gemaakt. Zo kunnen de veiligheid en consistentie van het iPhone OS in het geding komen, maar is het ook mogelijk dat het gaat om API’s die nog niet af zijn en nog zouden kunnen veranderen waardoor een applicatie niet meer werkt als Apple een software-update uitbrengt.

Middels de nieuwe static analysis tools, is Apple nu in staat om een ieder die voorheen met het gebruik van private API’s door het goedkeuringsproces kwam alsnog te pakken. In theorie verandert er weinig voor ontwikkelaars die zich netjes aan de regels houden, maar voorziet het wel in een grondigere analyse van de software voordat deze klaar is voor distributie via de App Store.

Dat er echter ook nadelen aan dit nieuwe systeem zitten werd deze week duidelijk. Chris Parrish, ontwikkelaar bij RogueSheep Incorporated, liet weten dat hun nieuwe applicatie, Postage, door het systeem werd afgekeurd vanwege een false positive. RogueSheep gebruikte de naam van een private API als naam voor zijn eigen categoriemethode. Dit werd door Apples API-controle als private aangemerkt en zodoende werd de applicatie afgekeurd.

Parrish heeft, hoewel hij geen private API gebruikte, inmiddels een wijziging doorgevoerd die het probleem oplost. Hij pleit ervoor dat Apple hem en andere ontwikkelaars een kopie van de analyse-software beschikbaar stelt, zodat ontwikkelaars hun eigen applicaties kunnen testen alvorens ze bij Apple ingediend worden. Volgens hem moesten hij en zijn team veertien dagen wachten tot het goedkeuringsproces was afgerond. Toen bleek pas dat de analysefase was mislukt.