NSUbiquitousKeyValueStore error : "com.mycompany.myappname" has no valid com.apple.developer.ubiquity-kvstore-identifier entitlment - objective-c

I set the entitlements file correctly.
I'm getting the cloud url.
the error happen after im trying to save values in the keyValue store.
I can write and read from the NSUbiquitousKeyValueStore,
But after the method finished, I got the error I wrote in the title of the question.
this error happen on ipad 1,
when compiling the same project to the iphone, it works ok without error.

This usually happens when you download your app from the AppStore and update it using XCode.
Have a look at the "Recommended Testing Procedure" in Technote 2285

Are you using different targets for iPhone and iPad versions of your app? Check your entitlements file and make sure it has the correct values for organization all targets.
You might also want to do a text search in your projects folder and see if any files contain the line "com.mycompany.myappname".

Related

NSPhotoLibraryUsageDescription in Xcode8

Update:
I attempt to add a String value to the "NSPhotoLibraryUsageDescription" key.
And it works.My build version is now available on my TestFlight.
ps: 构建版本 means Build Version
But I want to know why Apple Store just let me add String value for "NSPhotoLibraryUsageDescription" key rather than "Camera Usage Description" or "Location When In Use Usage Description"?
And how to localize the info.plist.
Old:
I've uploaded many build versions to iTunes Connect.But TestFlight shows none of these build versions.
Then I search this issue on stackoverflow. And I know this is caused by usage description. I add the NSPhotoLibraryUsageDescription in my Info.plist.
However, Apple Store team email and tell me that:
Dear developer,
We have discovered one or more issues with your recent delivery for "Family Health Tracker". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team
They still tell me add NSPhotoLibraryUsageDescription
Localizing of info.plist file may be very unuseful, especially if you use many languages in your apps.
The simplest way for localizing NSPhotoLibraryUsageDescription, NSLocationWhenInUseUsageDescriptionor NSCameraUsageDescription keys is to describe it in InfoPlist.strings file.
Create new *.strings file with name InfoPlist;
Press Localize... button in file inspector and choose the default language;
Add new records in your new InfoPlist.strings file. For example
in English:
NSLocationWhenInUseUsageDescription = "Location usage description";
NSPhotoLibraryUsageDescription = "Photos usage description";
NSCameraUsageDescription = "Camera usage description";
For more information Apple docs
Make sure that "NSPhotoLibraryUsageDescription" has value assigned before uploading the app to iTunesConnect.
Simply add these lines to your info.plist file
<key>NSPhotoLibraryUsageDescription</key>
<string>Photo Library Access Warning</string> //For NSPhotoLibraryUsageDescription issue.
To localize the Info.plist:
Click your Info.plist
Show your Utilities, then click File inspector
This is a button Localize, click it.
I had the same problem with two applications, the solution shows you the itunnes connect via mail:
info.plist review your file and tries to add the following fields:
Privacy - Photo Library Usage Description
Bluetooth Sharing - NSBluetoothPeripheralUsageDescription
each with a text explaining the reason for its use.
You can check here the permissions that now requires iOS 10 in its info.plist here:
https://blog.xamarin.com/new-ios-10-privacy-permission-settings/
This worked for me.
Try this it work for us,
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to the photo library.</string>
For more details please refer Best Answer
Hope this will help for some .
The missing keys are related to some APIs requiring some usage descriptions defined in the .plist keys. Before adding any keys if you know that your app doesn't make any specific usage I will recommend you take a look at this official guide from Apple to identity faulty API classes. As an example I simply have a comment out on a line containing UIImagePickerController. This was enough to get the binary rejection from Apple; while I didn't access to the user photo library. Once you validated this step you can go ahead with other solutions mentioned here.

Xcode 5 invalid image path error

Im relatively new to programming and am just in the process of uploading my first app to the app store however i am getting the following error message which i just can't figure out / fix. I have looked everywhere online for a solution but as yet, no luck. Please can someone help? I am using Xcode 5:
Error:
ERROR ITMS-9000: "Invalid Image Path - No image found at the path referenced under key 'CFBundleIcons': 'AppIcon40x40'" at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
This really doesn't mean anything to me as i have tried all the usual asset catalogue stuff / looked at my p-list.
You need an App Icon.
If you created the project in Xcode 5 then there should be a catalogue called Images.xcassets where you should place the icons of the correct sizes for your app.
I have added a screenshot of my app as an example of what I am talking about:
I saw the same error. First I thought that the images where not correct (I found one with 144 dpi), but the error showed up again.
Just search for the exact name "AppIcon40x40" in the whole project using Shift+Cmd+F. I have seen it referenced in a plist file under another key. There you have to change the names to the appropriate ones.

Icons, Asset Catalog and Info.plist confusion

I have an app that started life for iOS 5 and has been updated ever since. For iOS 7 I have switched over to using an Asset Catalog for all the resources, which is nice and appears to work well. However, when I try to submit to Apple I get validation errors:
Invalid Image Path - No image found at the path referenced under key 'CFBundleIconFiles': 'Icon#2x.png'
I get the same error for the other icons, too. These icons do appear in the Asset Catalog and the names -- right down to the case -- match exactly as far as I can tell. The Asset Catalog is in the "Copy Bundle Resources" and all the resources appear in the right place when I run the app on both my iPhone and iPad (in iOS 7) and in the Simulator for iOS 6.
I have updated the app to use the minimum deployment target of iOS 6.
So, how do I successfully submit my update to Apple? Do I need the references in the Info.plist? Are there any other settings that I should check? Is the warning spurious and something that I should ignore (after raising a Radar)?
When an asset catalog is compiled for iOS 6 and lower, the images are put in the root of the app bundle, as if you were just copying them the old way. When this happens, Apple names the images according to the asset name, rather than the filename, which means we can still use +[UIImage imageNamed:] to get the assets on iOS 6 and lower.
This is true for the App Icon asset, when we have the following icons set in our asset catalog:
They become compiled like so:
As iOS 6 is still iOS 6, these files must be referenced in the Info.plist, otherwise the existing system wouldn't work. Looking in the compiled Info.plist for this test app, you see that Xcode has added CFBundleIconFiles for us and so we don't need to.
I have uploaded the test project I used to github.com/danielctull-tests/AssetTest.
Okay, so here is what I ended up doing. I'm not 100% sure it's correct but I thought that it was worth sharing.
I removed CFBundleIconFile, which I don't think is used in iOS 6 and above
I used the asset name rather than the icon filename in CFBundleIconFiles
I'm not clear what the proper names are so, for the sake of clarity: by icon filename I mean the name visible in the Attribute Inspector of the Asset Catalog when the icon is selected; and by asset name I mean AppIcon, which refers to seven actual icons in my case.
This both passes Apple's validation step and appears to look okay. I don't currently have an iOS 6 device but it displays correctly in the Simulator.
I had also a lot of Problems on this matter - I was constantly getting the error with the missing CFBundleIconName and that my Icons where not found. So here is my story, maybe it will be of help for somebody. By the way, I am using Visual Studio with Xamarin.
Add an Asset Catalogue to your Project with AppIcons (the actual name of the asset is not important but just that it is for the application icons). Add all of the necessary icon sizes. For the 'App Store' icon I have added an icon without a # in the name as someone in the forums suggested, but I am not sure, if it is 100% necessary. For generating the different icon sizes there are a lot of Websites and tools that can do that for you and you just need to provide the 1024x1024 one. They will generate the rest.
In the Info.plist under 'Visual Assets' and then 'App Icons' set the source to the asset that you have just created.
Now check your Info.plist. Do not open it with an external Editor, because all of your changes will be overwritten once you build your project. Do the following - right mouse click on the Info.plist in the Solution Explorer then select Open With -> Generic PList Editor.
Check that you have the following entries:
-Property = CFBundleIconName, Type = String. Value = Assets.xcassets/AppIcons.appiconset
-Property = XSAppIconAssets, Type = String. Value = Assets.xcassets/AppIcons.appiconset
Note that Visual Studio automatically adds, when it adds something altogether, 'Resources/Assets.xcassets/AppIcons.appiconset' as the Value. But in my case the Asset Catalog was created outside of the Resources folder and therefore, my icons where not found. So, check where your assets folder was created.
CFBundleIconFiles was not needed, because Apple uses the Asset Catalog instead now.
I hope that I was of some help :)

Objective C two errors pngcrush

I don't have any problems with my code, but I think there are some settings wrong.
On the simulator, my application works great, but when I want to put it on my device I get the following error:
**pngcrush caught libpng error**
Could not find file: /Users/USER/Library/Developer/Xcode/DerivedData/PROJ-afhreiqghfsdvwbrdbfrawtkuser/Build/Products/Debug-iphoneos/PROJ.app/Email.png
This is the first error I get, and it only happens with Mail.png and Emailp.png. All other pics are okay.
The second error I get is not really an error. But when I view the .app folder which is on my device, I have lots of files which shouldn't be in there:
AppDelegate.d
Appdelegate.dia
AppDelegate.h
AppDelegate.o
Proj-Prefix.pch
I have these for every header. How can I change it so it won't all land in my bundle?
I'm gessing that Email.png has not been linked to your target when you imported the image, thus it has not been moved to your device.
You can check if you select the blue area with the project's name in the navigator window and go to Build Phases -> Copy Boundle Resources and add it with the little plus sign at the bottom if it's not in the list.
My other guess is that the actual filename is email.png and while the simulator is case-insensitive, the device is not. That can be why it cannot find it.
EDIT:
2, I'm quite certain XCode generates those files at build time and somehow they got put in the .app package. Can you tell us what's inside those files?

-HD image file not found?

Why am I getting
cocos2d: CCFileUtils: Warning HD file not found: META-hd.png
If I definitely have META-hd.png file in my project?
What I am doing is running my .tmx tilemap. The map uses a tileset that searches for "META.png" (without -hd suffix since I am expecting cocos2d to automatically put it on).
I've found the problem. I only do have -hd versions of my files. But I don't have "non-hd" versions. And for some reason, CCFileUtils will throw me errors when I don't have both types in my project.
Verify that the image is part of the app's target. If it was included as part of a group, and say there was a duplicate on file 10 of 25, the copy stops and files 1-9 are NOT tagged as part of the target. You have to go back and sweep the floor by hand.
In Xcode 4 show the assistant editor, and click the resource in the navigator. The target membership will be shown. If your app is not checked, click on that and voilà, the file will now be found.
In rare cases, i have had to clean the target and recompile to make this effective.
If I understand correctly you will have to have a -hd version of the tilemap as well: meta.tmx and meta-hd.tmx.
Also be sure that your image file is named META-hd.png and not META-HD.png and both images use the same case: META.png and META-hd.png. The iPhone file system is case sensitive (not the iOS Simulator though).