Xcode iOS 11 show folder app in app File Apple - swift

I can not understand how to share folders and files created by my app within Apple File app.
Virtually how does the app Pages
I tried this but it did not work
How to enable file sharing for my app?

Edit your Info.plist file and add these keys:
<key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
The file sharing link included in the question is for the iTunes-based file sharing, which is still supported and requires the UIFileSharingEnabled key only. The new Files app in iOS 11 requires that key plus the LSSupportsOpeningDocumentsInPlace key.

Related

App Store submission shows app icon issues in Xcode 11

I was recently not able to submit the app to Appstore and its showing 3 errors and the thing is i have all the app icons placed in Xcode as you can see in my screenshot correctly but this error comes. I have been trying for many hours to solve this issue. Anyone has idea what is wrong and how to solve? I have included all the icons in my assets folder as you can see . I even checked the dimensions and even deleted assets folders and created new . But still the error comes. How to solve this issues?
Missing App Store Icon. iOS Apps must include a 1024x1024px App Store
Icon in PNG format. Without providing the icon in the Asset Catalog or
via iTunes Connect, apps cannot be submitted for App Review or Beta
App Review
Missing Info.plist value - A value for the Info.plist key
'CFBundleIconName' is missing in the bundle 'com.abcd.iphone'. Apps
built with iOS 11 or later SDK must supply app icons in an asset
catalog and must also provide a value for this Info.plist key. For
more information see
http://help.apple.com/xcode/mac/current/#/dev10510b1f7
XCODE ASSET FOLDER
Added the info.plist screenshot :
Make sure your asset catalog is in fact part of the app target.
Make sure your build settings point to the AppIcon image set.
And make sure you don't have multiple asset catalogs with multiple AppIcon image sets, as the build system will not know which one to use.
You should be able to open the built app package in the Finder and see the CFBundleIcon entry:
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon60x60</string>
</array>
<key>CFBundleIconName</key>
<string>AppIcon</string>
</dict>
</dict>

ios mail app does not open vcard in my app

I would like to import vCards into my iOS app using the mail app. I have added public.vcard to my projects plist. If I try to open the vcard in another app using the UIDocumentInteractionController everything works as expected. However if I try to open the vCard in the mail app, the vCard is opened in the mail with no choice for my app. Is there a solution?
UPDATE:
The plist entry for the vcard looks like
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>vCard</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>public.vcard</string>
</array>
</dict>
</array>
This entry looks rather incomplete to me. Generally if yor application is able to open certain types you need to have either an import declaration (if the file format is owned by another application) or an export declaration (if the format is owned by your)
iOS and Mac are matching UTIs mostly by extension, so I guess you also need to have that in the declaration. Check with the UTI functions on iOS is there is indeed the public.vCard type assigned to your file's extension. If not, then it cannot be found.
I would add an UTImportedTypeDeclarations to your plist if there is such an association, if not add an UTExportedTypeDeclarations
I wrote this tutorial to explain all the things you need: http://www.cocoanetics.com/2012/09/fun-with-uti/
This seems to be impossible as of iOS 7.0.4.
iOS seems to handle some file types within the Mail app differently than others. Within the Mail app you won't get the option to open those file types in apps that are not from Apple.
You can verify this by using the UIDocumentInteractionController to open a file programmatically. This will prompt the user to open the file in a lot of apps (in all apps that registered this file type or a more general one. The Dropbox app e.g. almost opens everything).
When you mail yourself the exact same file and try to open it within the Mail app you'll not get those options (like Dropbox).
I verified this by registering VCard/.vcf, Jpegs and a custom type.

How to make our iPad application to share files through iTunes

I have made an iPad application. Now i have a requirement to upload any file into my application shared/document folder from my System through iTunes.
I have learned from this link http://support.apple.com/kb/ht4094 that we can make our application for File Sharing. If our application has enabled File Sharing then our application will be seen under File Sharing Tab in iTunes.
So i want my app to be seen under File Sharing Tabs so that i can share any file into my application.
Please can anybody guide me through this.
Thanks
Just define this key in your info.plist file -
<key>UIFileSharingEnabled</key>
<true/>

iPhone Entitlements problem with XCode 4 for Ad Hoc distribution

I have reread all the documentation and postings on Ad Hoc distribution and still have a problem. If I try 'wireless' distribution (with a .plist and .ipa file being downloaded using Safari) the app starts to download, the icon is drawn correctly and the name changes from 'Installing..' but when its about 90% complete I get an 'Unable to Download ...' alert.
If I use the iTunes method of transferring the app I get 'The app "xx" was not installed on the iPhone "xx" because the entitlements are not correct.'
Q1: I have read that you no longer need to separately add the .mobileprovision file because XCode (I am using 4.0.1) adds it to the bundle - is this true ?
Q2: when I 'download' the .mobileprovision in safari (on the iPhone) it merely displays it as text. Is this symptomatic of my problem or an irrelevancy ?
Q3: does this problem concern the Entitlements.plist ? I can't find any documentation from Apple or any blogs that relate to what I see when editing this file with XCode 4.0.1. If I follow the instructions (New->New File->Code Signing->Entitlements) I get a default file with only a 'Can be debugged' Key. I have tried setting this to NO, adding a get-task-allow Key (replacing the existing - presumably Can be debugged is the same key ?) adding my application-identifier, and adding an iPhone Entitlements Dictionary with the above two keys in (as per Apple's documentation).
Q4: what is the suicide rate amongst iPhone developers trying to get Entitlements and Code Signing working?
To cut down on suggestions I've seen for similar questions:
I do have Code Signing Entitlements set to my Entitlements.plist for Distribution and Release.
I have tried restarting XCode, rebuilding, archiving etc
I have tried restarting the iPhone
I have gone back to the iPhone
Update:In XCode 4.0.1 there is a menu option when the Entitlements.plist is being edited (Editor->Show Raw Keys and Values) which will toggle the key from 'Can be debugged' to 'get-task-allow'
The entitlements file should be:
<?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>get-task-allow</key>
<false/>
<key>application-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
</array>
</dict>
</plist>
this works for wireless too.
Why on earth the default one doesn't have all this in is something only Apple can answer.
I can't see how to edit the raw text of a plist in Xcode so edited in TextEdit.
Code signing entitlements are no longer necessary for Ad Hoc builds in Xcode 4 - see details notes in Apple Technical Note TN2250
I just wrote a blog post outlining all the steps to successful ad hoc distributions in Xcode 4 which may be helpful. http://www.musicalgeometry.com/?p=1237
Entitlements.plist should be added in project and there should be only get-task-allow key inside it.
When debugging on device using developer profile, It should be checked
When building using Ad-Hoc or Distribution profile, It should be unchecked
Regarding Q4: If you like you can increase it by just doing... but I don't recommend it.
If you right click on the plist file in the project navigator, and select "Open As" then "Source Code", you can edit it as plain source.
Maybe they made a shorter version of Entitlements.plist in xcode4. The default Entitlements.plist does not contain the 'application-identifier' and the 'keychain-access-groups' keys, but if you change the value of the 'Can be debugged' key via the 'ASCII Property editor' it really changes the value of the 'get-task-allow' key in the background...
I tried setting the entitlements parameter "on" or "off", re-download my ad-hoc provisional that had been used for as long as I can remember, and tried hundreds of other combinations. None worked for me until...I went to the provisional portal and recreate a new provisional.
What really got me to stay up until 4:00AM and wasting hours of time that I did not have was how I created the ad hoc provisional. On Apple's iOS provisional Portal page, if you click on the "provisioning" on the left side bar, you will see 4 tabs: "development", "distribution", and the other two. I used to use my provisional created under the "development" tab and added all the test users' phone UUID. That had worked for me for years until the xCode 4 came along, and I was stupid enough to jump on board too fast. Apple engineers had always given me a surprise "mid-night" party every time xCode had an update. And they will wait long enough for me to forget this experience and release the next one.
The solution that worked for me was to create a provisional under the distribution tab. When you create a new provisional here, you have the option of selecting "ad hoc" as the "Distribution Method." After used this provisional on xCode project and target build setting, and turned off "can be debugged" on the entitlements, I then could install via iTunes or via OTA. I hope this tip might help someone save a few gray hair.

Copy file from iPhone app to iTunes

I am trying to figure out how to copy a ringtone file (.m4r) embedded in the app to iTunes when connected. After the file is copied into iTunes, they can simply sync the file like every other file. I know this is possible, since there are other ringtone apps that do this exact same thing. If someone could point me in the right direction or maybe provide some sample code, that would be great. Thanks.
You can share files from your app's Documents directory with iTunes. Simply add the following XML to your info.plist:
<key>UIFileSharingEnabled</key>
<true/>
Now, files in your app's Documents directory will appear in the File Sharing section of iTunes. Is that what you're after?