Xamarin iOS - publish fails, started happening after iOS 13 update - ios

had anyone see this issue, not able to publish to app store.
tried everything re-doing the icons, asset catalog, used mac machine, etc
any suggestions?

You are missing a required image on your iOS project. In order to verify this:
Open your iOS project in Visual Studio,
And most likely inside the Resources folder, you will see the Images.xcassets.
When you open that, you will see "AppIcon" on the top.
Open that and you will see several empty slots. If you hover over them, they will tell you what dimensions are needed.
Drag and drop two pictures in the empty location that is required and it should fill up as shown in the picture below:
Most likely, you are missing the iPhone Spotlight 3x or iPhone App 2x image.

issue raised here is the reason for my builds failing
issue
installing this package breaks everything.
https://www.nuget.org/packages/ImageCropper.Forms/

Related

Xcode 9 Alternate App Icons - Invalid Image Path

I use alternate app icons in my app (which is currently in the App Store). Since upgrading to Xcode 9, I get errors when submitting to the App Store (see screenshots). The alternate icon works properly when running on the simulator/device.
The main app icon is included in the Asset catalog, and the alternate icon is added directly to the project (which I needed to do to get it to work in Xcode 8.3). I've double checked that all the alternate app icon files are part of the app target.
I'm also getting some errors regarding missing required app icon files, which seems suspicious since they're all there as far as I can tell.
I'm using Xcode Server to create my builds, and submitting to the App Store from the integration results page.
Please let me know if you need any other information to help me solve this issue.
EDIT: I created an archive manually using Xcode, and that archive was accepted. Looks like this is an issue with archives created by Xcode Server.

Missing required icon file. The bundle does not contain an app icon for iPad of exactly '167x167' pixels, in .png format when trying to upload app

I successfully uploaded my app on Xamarin forms but after it was uploaded I received this in an email from apple:
"Missing required icon file. The bundle does not contain an app icon for iPad of exactly 167x167 pixels, in .png format ."
So it wants an image in my resources file I suppose (not in info.plist icons as they are not asking for 167x there) but should I name it: Icon-83.5#2x.png or Icon-174.png?
Go to xcode > select Images.xcassets > check ipad from the right menu at the top right > you will get new set of dimensions, now it's easy as fill your new app icons for each dimension.
I've had this particular problem in the last couple of days.
The iPad icon didn't show within the Info.plist and kept giving the warning you're getting right now.
My fix was to manually add the icon Icon-83.5#2x.png to the resources folder ( as Prashant pointed out ) and add this to the Info.plist:
<key>CFBundleIconFiles</key>
<array>
<string>Icon-40.png</string>
<string>Icon-40#2x.png</string>
<string>Icon-40#3x.png</string>
<string>Icon-60#2x.png</string>
<string>Icon-60#3x.png</string>
<string>Icon-76.png</string>
<string>Icon-76#2x.png</string>
<string>Icon-83.5#2x.png</string>
<string>Icon-Small-40.png</string>
<string>Icon-Small-40#2x.png</string>
<string>Icon-Small.png</string>
<string>Icon-Small#2x.png</string>
<string>Icon-Small#3x.png</string>
</array>
I used to work with Asset Catalog but I couldn't get it to work with the iPad Pro icon.
For the forum post Andres mentioned in the comments:
Rename the 167x167 icon file to Icon-83.5#2x.png, place it in the Resources folder, and make sure it has a build action of BundleResource.
See https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_resources/ for information about setting BundleResource option.
XCODE 13 2022
In my case, the problem was default AppIcon is deprecated, then we need to use a new App Icon standard. As I publish apps to iPhone and iPad I need all the necessary icons. (This issue no appear when you check only one device(iPhone or iPad))
Go to Xcode >Images.xcassets> And select your App Icon from the assets list.
Right-click on there, You can now see a menu list like that
Select iOS>New iOS App Icon
Then you can find now a new "AppIcon" asset named "AppIcon-1"
There is a difference to "AppIcon" because It has more icons options(iPad icons size)
Remove "AppIcon" (OLD)
Rename your "AppIcon-1" to "AppIcon"
Now you can put the missing icon size.
Xcode 14.1 (14B47b)
You're getting this error because you have checked the iPad option. In my case, I had been developing my app on Xcode 13.x and then after the new version of Xcode 14.x I got this error.
So on Xcode 14 there is no need to create app icons in various versions and put them inside Images.xcassets, just follow the steps:
Click on the Images:
Then try to press + and choose iOS App icon:
You will see it got changed by comparing it to the previous version, it only accepts one and only one 1024x png image.
Now, clean your last build and build your app again.
But if still you want to use the previous version, you can click on AppIcon and then after choosing it, open the right panel of Xcode:
Then by choosing All sizes you would be able to see the previous version set.
I use Visual Studio 2017 on a Windows machine with a MacBook connected to it. I have an Asset Catalog called images that contains an image set called AppIcons where I have posted all of the various required image sizes. I was getting the same error as medvedo except I was getting three errors for 3 different images sizes (2 for ipad and 1 for ipod as I recall) After a lot of searching I found the solution was to reference the Asset Catalog in the Info.plist file.
First I had to find the path that Xamarin was putting my asset catalog in. I did that by deploying the app to the MacBook and then using Finder I went to the Go menu and chose the Library folder (earlier in the day I Googled how to show hidden folders on the Mac) In the Library folder I found the Caches folder and in that I found Xamarin/mtbs/builds/myappname There I found that the folder was Images.xcassets/AppIcons.appiconset. I say all of this knowing that it might always be in that folder but I had to look it up so I thought I would share in case it changes from installation to installation.
Once I knew the path and name I was able to add the following to my Info.plist file inside of branch
XSAppIconAssets
Images.xcassets/AppIcons.appiconset
FYI - I have built and deployed this app to iTunes at least 4 times over the previous 8 months. I am not sure what I did, if anything, to cause the error to pop up.
After trying many things, this is how I fixed the "Missing required icon" error messages:
Go to Solution->ProjectName.iOS->Asset Catalogs->Assets.
See "AppIcons" there? We are going to delete it, BUT FIRST! Find that same folder in your project files and copy it somewhere safe. Now, delete the AppIcons asset in the project. Also delete the "Assets" catalog.
ProjectName.iOS right click select 'Clean'. Go to physical project folder. Delete the "bin" and "obj" folders. Find the empty "Assets.xcassets" folder and delete it as well.
ProjectName.iOS->Asset Catalogs right click select "Add Asset Catalog". It should automatically add an "AppIcons" entry. Go through and set each of the image sizes, pointing to where you copied your images. They will automatically be copied to the Assets.xcassets folder. They will also generate hidden entries in the ProjectName.iOS.csproj file that will include the image in the final binary. The entries look like this:
<ImageAsset Include="Assets.xcassets\AppIcons.appiconset\1024.png">
<Visible>false</Visible>
</ImageAsset>
Edit Info.plist. Set the App Icons Source to "AppIcons".
ProjectName.iOS right click, select "Rebuild". ProjectName.iOS right click, select "Archive". Archive Manager > Distribute > App Store. Verify certificate. Enter Apple login name and App-Specific password to upload. Done!
If you are still facing issue with all the above process steps performed correctly.
Then please check you are logged into appstore connect using your browser and then try to publish it will and work.
If you do not want the app to be available for ipad and getting the same error just uncheck ipad from runner properties below version number

iPhone 5 Optimization Requirement (using Adobe AIR)

I keep receiving the following message from Apple when submitting my app for approval:
"iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. New iPhone apps and app updates submitted targeting iOS 6 and above must support the 4-inch display on iPhone 5 and must include a launch image with the -568h size modifier immediately following the portion of the launch image's filename. Launch images must be PNG files and located at the top-level of your bundle, or provided within each .lproj folder if you localize your launch images."
I'm using AIR SDK 3.9 (and I checked to make sure by tracing NativeApplication.nativeApplication.runtimeVersion).
I have a Default-568h#2x.png image in the src folder, and I checked the Project/Properties/ActionScript Build Settings/Package content (I'm using Flash Builder 4.6). It is definitely checked off to be included in the build. In "Export Release Build", I don't see it in the Package Contents there, but I don't see any of the other Default png's either, so I don't think that's the problem.
Does anyone know what I'm doing wrong?
Be sure that the launch images also located in the folder "bin-release-temp"... I have to put them manually into that folder...
The launch images cannot be referenced anywhere in the project. You cannot embed them. You cannot use them. If you do, they are not packaged as launch images, but as images used at runtime. I was having the same problem when I was referencing the images as a SplashScreenImage source. It's an unfortunate way for it to be handled, basically requiring you to include the same image twice, but it is what it is.
This link might help. It describes what and where to keep default images in air application for iPhone deployment.
http://rohitdhore1612.wordpress.com/2013/05/22/air-invalid-binary-iphone-5-optimization-requirement-your-binary-is-not-optimized-for-iphone-5/

Why PhoneGap always shows default splashscreen image?

I'm testing a sample iOS app now, although I set all new launch images in Xcode (Summary tab of Project Target screen), PhoneGap 3.0 keeps showing its default splashscreen. Why? even when splashscreen is a plugin and not included by default in PhoneGap 3.0 now.
iOS document say about launch images but not splashscreen, and it even strongly recommend us to use a "first screen" similar as launch image, not something like about screen. Are these same?
It's not about cleaning or caching issues at all. The problem is PhoneGap includes all possible launch images in project template by default. These files are under Resources folder and copied to bundle's root folder on build event. Although I properly selected my own launch images in Xcode (Target/Summary screen), default PhoneGap's specific files e.g. Default~iphone.png overridden my files :(
Once issue is identified, you can fix it someway, but I prefer below steps:
Delete all default icons and splashscreen files under /platforms/ios/AppName/icons and /splash folders. You surely don't need these placeholder images.
In Xcode, select Targets/AppName, then tab Build Phases, delete all file names of images in the above step in section Copy Bundle Resources.
Add your own images files for app icon and launch images here.
Edit Info.plist file (file AppName-Info.plist under /platforms/ios/AppName/) to include your images, you will need to use CFBundleIcons and UILaunchImageFile keys. Go to iOS developer site for reference.
Splashscreen and launch image are the same thing.
You probably did everything right but iOS (especially in the simulator) often just doesn't change those things (splashscreen, icon etc.) during development process. Try to delete your app, clean your project (in Xcode: Product -> Clean (shift+cmd+k)) and reinstall your app.

Trouble with icon picture when uploading app to app store

I have trouble uploading my application to app store. When I try to archive my project for validation i get an error:
warning: iPhone/iPod Touch: BMELogo.png: icon dimensions (0 x 0) don't
meet the size requirements. The icon file must be 57x57 pixels, in
.png format (-19014) Unable to validate your application. - (null)
I have checked and re-checked my icon for both size and type. My icon is 57x57 and a PNG.
Do any of you know what to do?
in advance thanks :)
This is a weird error, but it could be similar to what happens when apps on the phone don't match what you see in the simulator. Here's a few things to try:
As Damo mentioned, this is most likely a capitalization issue. Make sure that the filename as specified in the plist matches the case of what's on disk. Devices (and the app store) are case-sensitive, but your Mac is not. If it works in the simulator but not on device, you probably have a capitalization problem.
You might need to Clean (from the Build menu) the project and rebuild. Sometimes XCode just gets confused, especially if you've been moving or renaming images. Quitting & restarting XCode might help, too.
Nuke the site from orbit -- manually delete all of the project's output files. Sometimes XCode keeps old versions of image files around packaged somewhere hidden that cleaning doesn't get rid of.
Start over from scratch. Choose a different name, one where you're sure there's no legacy object file lingering about.
Also, you might want to make sure that you are using the latest version of the Application Loader, you can download the latest by logging into iTunes Connect and clicking on Manage Your Applications, the download is at the bottom of the page.
After you download the installer, close down Xcode, then run the Application Loader installer, then relaunch Xcode, load your project, do a clean on the project, and then archive and try the validation.
I had this error too. You need to reinstall Application Loader which you can get from here https://itunesconnect.apple.com/apploader/ApplicationLoader_2.5.1.dmg

Resources