_BSMachError XCode 7 bèta

Ik krijg de volgende foutmelding wanneer ik mijn code uitvoer in Xcode7 met Swift2, na het presenteren van een view-controller via een push-segue:

_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

De andere SO-artikelen hadden geen oplossing, kent iemand dit probleem?


Antwoord 1, autoriteit 100%

Hoewel dit probleem lijkt te blijven bestaan ​​als een bug en waarschijnlijk zal worden opgelost, komt het voort uit de nieuwe App Transport Securitydie is geïmplementeerd in iOS 9.

Als uw toepassing gegevens ophaalt van een webserver om de View Controller die u gaat presenteren te vullen, kunt u deze foutenoplossen door de toegang te verifiëren/verlenen naar de specifieke site(s) waar u vandaan haalt.

Om dit op te lossen, voegt u het volgende toe aan het .plist-bestand van uw app:

  • Misschien wilt u uw ATS Exception Dictionaryaanpassen aan uw behoeften

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>testdomain.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <false/>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <false/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <true/>
                <key>NSExceptionMinimumTLSVersion</key>
                <string>TLSv1.2</string>
                <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
                <false/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <true/>
                <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                <string>TLSv1.2</string>
                <key>NSRequiresCertificateTransparency</key>
                <false/>
            </dict>
        </dict>
    </dict>
    

Meer details over deze oplossing zijn te vinden hierof hier
De Apple-documentatie voor App Transport Securityis ook het lezen waard.


Antwoord 2, autoriteit 81%

Ik had dezelfde twee foutmeldingen. In mijn geval verschenen de fouten toen ik [[UIApplication sharedApplication] openURL:url]belde nadat de gebruiker een knop had geselecteerd in een open UIAlertController. Ik nam aan dat de waarschuwing probeerde te sluiten op hetzelfde moment dat ik de URL probeerde te openen. Dus ik heb een kleine vertraging ingevoerd en de foutmelding is verdwenen.

dispatch_after(0.2, dispatch_get_main_queue(), ^{
    [[UIApplication sharedApplication] openURL:url];
});

Ik weet niet zeker of dit helpt bij uw specifieke probleem, maar ik dacht dat het misschien nuttig zou zijn om dit te delen.


Antwoord 3, autoriteit 14%

Wijzig de sleutel voor de lokale ontwikkeling van lokalisatie in uw info.plist van en in Verenigde Staten


Antwoord 4, autoriteit 14%

Voortijdig afwijzen van de weergavecontroller kan dit veroorzaken.

[self dismissViewControllerAnimated:YES completion:NULL]; 
//<do something..>

Dit genereert _BSMachErrors

vs

//<do something..>
[self dismissViewControllerAnimated:YES completion:NULL]; 

Nu is de _BSMachError verdwenen.


5

Ik had dit probleem tijdens het debuggen en het verdween toen ik een breekpunt verwijderde in mijn reactie op het wisselen van de weergave.

Other episodes