My app using Audiokit is running perfectly without sandbox. But as soon as I enable sandbox in Xcode the app crashes when trying to initialize the mic access.
(The app is on the App Store for iOS, but now I am trying to submit to the Mac Store as a OS X app but I need to enable sandbox)
Has anyone been able to submit a Mac app to the Mac App Store with Audiokit in it?
ERROR: >avae> AVAudioEngine.mm:275: AttachNode: required condition
is false: node != nil
To enable microphone access in App Store sandbox you'll need to add following entitlement:
com.apple.security.device.audio-input
See reference of Sandbox: Enabling Hardware Access
This entitlements file did work for me. But it doesn't cover all the cases.
Please check Apple documentation for more details https://developer.apple.com/library/archive/technotes/tn2312/_index.html
<?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>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.audio-video-bridging</key>
<true/>
<key>com.apple.security.files.bookmarks.document-scope</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.temporary-exception.audio-unit-host</key>
<true/>
<key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
<array>
<string>com.apple.midiserver</string>
<string>com.apple.midiserver.io</string>
</array>
</dict>
Related
Is it possible to ignore invalid ssl certificates when making https requests for i-phone apps?
I have an ios developer working on an app of mine and I find it hard to believe when he says this is not possible. I would appreciate it if anyone could clarify this for me.
Since iOS 9, SSL connections will fail for invalid or self-signed certs. This is part of the new App Transport Security protocol.
You can override this behavior in the Info.plist, by setting NSAllowsArbitraryLoads to YES in the NSAppTransportSecurity dictionary.
However, no production bound app should opt into this behavior.
In addition to #Woodstocks answer, you may need to add NSThirdPartyExceptionRequiresForwardSecrecy and NSThirdPartyExceptionMinimumTLSVersion
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>some.domain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
I tried to follow the instruction on here: https://gist.github.com/boopathi/27d21956fefcb5b168fe
The instruction is somewhat dated with respect to how fast new react-native builds are pushed.
I fixed some of the obvious issues in the instruction (change lib.ReactKit.a to libReact.a, etc...).
I was able to compile the swift project and bring up the simulator. However, the red screen of death showed up with the following msg:
Unable to execute JS call: __fbBatchedBridge is undefined
Any insights or general direction to how to create a swift project with react-native would be appreciated.
After looking through multiple ways of creating a swift project, the following method worked for me:
1) Follow the instruction here (use the swift version): https://github.com/davidyaha/react-native/blob/master/docs/EmbeddedAppIOS.md
2) If your build ran into a red screen of death with "Could not connect to development server". Paste the following lines into your Info.plist file under your swift project:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Detailed discussion of the reasoning is here https://github.com/facebook/react-native/issues/304
The above steps will allow you to see the react-native component in a swift project.
I recently visit m.freemyapps.com in iphone. This web site ask me to install .mobileconfig file . I do some R&D but didn't got the much intresting. Can any one tell me what is use of mobileconfig ?? why it is use in m.freemyapps.com like this sites ??
This file will contain all the configurations you want for your users
iPhones.The mobileconfig file extension is associated with Apple iPhone or iPod Touch. The mobileconfig files are used to customize various configurations and to switch them, whenever the user needs to or to provide access to certain services.
Configuration of mobile Apple devices such as the iPad and iPhone can
be done using pre-cooked configuration files. These files are
generated by the iPhone Configuration Utility (iPCU), which spits out
an XML file with the extension .mobileconfig. Such a file can then be
put up a web site so that users can download it to apply a certain
so-called profile, which will be listed in the Settings/General panel
on the device.
these MobileConfiguration files can contain device security policies and restrictions, VPN configuration information, Wi-Fi settings, email and calendar accounts, and authentication credentials that permit iPhone, iPod touch, and iPad to work with certain enterprise systems. The mobileconfig files can also be encrypted.
The Configuration Utility saves the mobileconfig files, which is may be sent to an email account attached to the users iPhone or iPod Touch. After that, the user can open the attachment in mail and is prompted to install it.
MobileConfig file looks like this:
<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>LDAP Settings</string>
<key>PayloadType</key>
<string>com.apple.ldap.account</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>6df7a612-ce0a-4b4b-bce2-7b844e3c9df0</string>
<key>PayloadIdentifier</key>
<string>com.example.iPhone.settings.ldap</string>
<key>LDAPAccountDescription</key>
<string>Company Contacts</string>
<key>LDAPAccountHostName</key>
<string>ldap.example.com</string>
<key>LDAPAccountUseSSL</key>
<false />
<key>LDAPAccountUserName</key>
<string>uid=username,dc=example,dc=com</string>
<key>LDAPSearchSettings</key>
<array>
<dict>
<key>LDAPSearchSettingDescription</key>
<string>Company Contacts</string>
<key>LDAPSearchSettingSearchBase</key>
<string></string>
<key>LDAPSearchSettingScope</key>
<string>LDAPSearchSettingScopeSubtree</string>
</dict>
<dict>
<key>LDAPSearchSettingDescription</key>
<string>Sales Departments</string>
<key>LDAPSearchSettingSearchBase</key>
<string>ou=Sales,dc=example,dc=com</string>
<key>LDAPSearchSettingScope</key>
<string>LDAPSearchSettingScopeSubtree</string>
</dict>
</array>
</dict>
<dict>
<key>PayloadDisplayName</key>
<string>Email Settings</string>
<key>PayloadType</key>
<string>com.apple.mail.managed</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>362e5c11-a332-4dfb-b18b-f6f0aac032fd</string>
<key>PayloadIdentifier</key>
<string>com.example.iPhone.settings.email</string>
<key>EmailAccountDescription</key>
<string>Company E-mail</string>
<key>EmailAccountName</key>
<string>Full Name</string>
<key>EmailAccountType</key>
<string>EmailTypeIMAP</string>
<key>EmailAddress</key>
<string>username#example.com</string>
<key>IncomingMailServerAuthentication</key>
<string>EmailAuthPassword</string>
<key>IncomingMailServerHostName</key>
<string>imap.example.com</string>
<key>IncomingMailServerUseSSL</key>
<true />
<key>IncomingMailServerUsername</key>
<string>username#es2eng.com</string>
<key>OutgoingPasswordSameAsIncomingPassword</key>
<true />
<key>OutgoingMailServerAuthentication</key>
<string>EmailAuthPassword</string>
<key>OutgoingMailServerHostName</key>
<string>smtp.example.com</string>
<key>OutgoingMailServerUseSSL</key>
<true />
<key>OutgoingMailServerUsername</key>
<string>username#example.com</string>
</dict>
</array>
<key>PayloadOrganization</key>
<string>Your Organization's Name</string>
<key>PayloadDisplayName</key>
<string>Organization iPhone Settings</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>954e6e8b-5489-484c-9b1d-0c9b7bf18e32</string>
<key>PayloadIdentifier</key>
<string>com.example.iPhone.settings</string>
<key>PayloadDescription</key>
<string>Sets up Organization's LDAP directories and email on the iPhone</string>
<key>PayloadType</key>
<string>Configuration</string>
</dict>
</plist>
Sometimes this is the only way to configure certain features, because the device's interface won't let you. A good example is Eduroam wireless networking with TTLS.
RemoveProfile command is not working properly for me.
I am setting the proper profile identifier with below xml
<?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>Command</key>
<dict>
<key>RequestType</key>
<string>RemoveProfile</string>
<key>Identifier</key>
<string>com.apple.mgmt.mdmA3727E23-7914-59A6-FDCE-D79D9B42A209</string>
</dict>
<key>CommandUUID</key>
<string>B733FE25-101E-4959-4FAD-7262D7774169</string>
</dict>
</plist>
Also when I query for profiles installed on device I get this profile installed with same profile identifier.
Can someone guide me whats wrong with the command.
On IPCU, I get the following error:
The profile “com.apple.mgmt.mdmA3727E23-7914-59A6-FDCE-D79D9B42A209” is not managed by MDM.
If I performed an enterprise wipe i.e. remove the main enrollment profile via the same above command, it removes the enrollment as well as all the associated profiles, so why doesn't it allow me to remove individuals?
Two pieces of information:
1) If profile is truely not managed (wasn't installed through MDM), you can't remove it using MDM.
2) I noticed and reported to Apple a bug in which my iOS device lost association between MDM profile and profiles which were installed through MDM. So, you may have seen this bug.
I am facing a problem for the last couple of days regarding the downloading of the application on ipad.
What I have done is hosted the .ipa and .plist on my IIS server and installed the certificates on the server. Actually i am giving the https link for downloading the application.
Whenever,the service is hit from the ipad end,sometimes the error occurs:"Cannot connect to the server or otherwise unable to download at this time and retry many times" but not able to download
I am sending the code for .plist file and the html on which we are calling the .plist file.
Code for plist Section:
<?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>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://<ServerName>:<PortNumber>/abcV.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>abc</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>abcV.25</string>
<key>title</key>
<string>abcV.25</string>
</dict>
</dict>
</array>
</dict>
</plist>
I am calling the itms services in the body as:
Install the app
What am I doing wrong?
Did you try using normal http instead of https?
Also, When I have used java web services, the url will be
http://:port//abcV.ipa
Jus check appending the projectName path component after this http://<serverIP>:port/
Also, write a sample html and check if that is opening or not.
You seem to have a space in the URL. The certificates need to be installed only on the iOS Device side. If that doesn't work, what is wrong here is probably your MIME types. Check the Apple Docs for more in-depth info about MIME types for itms-services://