Malformed InfoPlist.strings file - ios

My app upload to the App Store failed with reason:
"Malformed InfoPlist.strings file - The file is not in the proper
format."
My InfoPlist.strings file is 121 bytes in size and it contains only two strings. When I dig into the app files inside the Xcode archive file, I see it is converted to a binary file. This binary file differs from the same binary file from a successfully uploaded previous version of my app, though there are no changes made to InfoPlist.strings file between these two versions.
I managed to workaround the problem by manually replacing the invalid binary file with the proper one in the Xcode archive and then submitting that archive to the App Store from Xcode.
I don't want to perform this manual step on each app release though. I could not find the reason for the malformed strings file in my code. I'm using Xcode 8.3.1 and it just started to produce that malformed file. I reverted all the changes to all of my app files till a version that used to generate a valid strings file, yet Xcode produces a malformed one now.
I wonder if anybody managed to fix this problem.

Related

Firebase TestLab on IOS - upload invalid

Following the instructions here: https://firebase.google.com/docs/test-lab/ios/firebase-console#compress-the-test-files-for-upload, I try to test my app with Firebase TestLab
However, I get the issue: "Upload invalid: Uploaded zip files must contain a single .xctestrun file and the contents of the DerivedData/Build/Products directory."
I do .zip with exactly these file (Runner_iphoneos12.1-arm64e.xctestrun) and directory (Debug-iphoneos) since there are no other files or directories in my customized DerivedData/Build/Products
I have made many attempts to find a solution, including Product/Clean, Xcode restart, cleaning of my customized DerivedData/Build/Products - but with no success
Do you have any ideas what it could be?
By the way, I work in Xcode 10.1 and my project is on Flutter, if this make any difference

sticker extension CFBundleVersion mismatch

NOT A DUPLICATE (see more below).
ItunesConnect gives me a warning with :
appex does not match the CFBundleVersion
It seems the error is related purely to the appex which seems to be a compiled version of my sticker extension.
Both targets (app and stickers) obviously have the same CFBundleVersion (both in plist and in target > general > build).
The culprit is the plist inside the .appex file (can see it with show package contents), i don't understand why it is different from the one used by the target.
From what i found it seems when archiving xcode creates a new .app file that will be only in the archive thus creating a new plist file but apparently some things in the appex file are not updated.
What are the possible options to fix this permanently ? I modified the value inside the file but i am not sure it will stick.
So if any of you guys uses a build script to bump your CFBundleVersion make sure to place it before the Copy Bundle Ressources phase.

ipa app could not added to our itunes library, it is not a valid app

I have made an unsigned .IPA app using xcode 6 and swift language.
I have compressed the .app file and change its extention to .ipa.
When I want to install this .ipa file on my jailbreaked iPhone, this error is appeard:
"the app 'youtapp.ipa' could not be added to your iTunes library because it is not a valid app".
Would you please let me know what the problem is.
In my case I was using the "Save for Ad Hoc Deployment" option from Organizer to create an ipa file. It appears however that this is broken in XCode 6. Your answer from Jan 1 got me thinking so I did a little digging.
I renamed the exported ipa file to .zip and opened her up. XCode is now putting the .app file inside a folder named "Applications". So I went ahead and renamed this folder to "Payload", zipped it back up, and renamed the zip back to .ipa. Sure enough when I dragged this new ipa file to iTunes it works fine and can be installed on my phone.
Seems to me a bug in XCode, I think I should report it to Apple.
I had this exact same problem using Xcode 6.3 when building my iOS app. It seems that the packager does not complain when the following setting is enabled even though the target is an iOS device:
Application requires iPhone environment:NO
You need to set the this to YES and it will name the folder correctly to Payload.
I had a similar issue while trying to create an .ipa for adHoc distribution for one of the Old project (built a year ago by ex-developer). After a lot of research in google and following this link - here. By replacing the .plist file with the existing working projects (obviously - the relevant icons/bundle display name/identifier) and renaming with the current .plist name. It worked for me.
I literally spent about 3-4 hours to fix this issue. Hope it helps some one.
environment was native - iOS app.
My problem was that I forgot to put the .app file in the Payload folder. After putting the .app file in to the Payload Folder, I zip the folder and change its extension to .ipa.
It works correctly.

Veracode, Debug Symbols, and XCode

I'm attempting to have an iOS application scanned by Veracode: an application security platform. In order for them to scan an .IPA, the .IPA needs to contain debug symbols.
For the Archive build-configuration and project/target being used, I've specified:
Generate Debug Symbols : YES
Strip Debug Symbols During Copy : NO
Dead Code Stripping : NO
Symbols Hidden By Default : NO
Strip Linked Product : NO
Yet, Veracode still gives me the following error when submitting the .IPA:
Primary Files Compiled without Debug Symbols - 1 File
Is there another step I need to take to create debug symbols, perhaps wrt archiving?
I had the same issue. I was able to resolve it by following the veracode instructions below. It basically tells you to manually create archive package, move the .app and .app.sym folders to a new location and then rename the zip file to an ipa.
From Veracode Help Center:
"Because Xcode does not create .IPA packages that contain DSYM information, you must create the package yourself. Xcode dynamically creates a folder to contain the .app and .app.dsym files. There is no definite path to this folder, but you can search the folder after you build your application. To do this, open Xcode and click Products on the left side of the window. Right-click the .app file, and select Reveal in Finder, which takes you to the folder where the .app and .app.dsym files are located. Once you have located the DSYM information, you can package your compiled iOS application as follows:
Select the .app and .app.dSYM folders for your application.
Copy both folders into a folder called Payload. Note: the folder name
must be capitalized.
Create a zip archive containing the Payload
folder. You can do this on a Mac by selecting the Payload folder and
choosing Compress from the context menu, or by using the
zip-compatible archiving utility of your choice.
Change the extension of the resulting archive to .ipa.
Upload this archive to the Veracode application profile.
"

Building for iOS with Corona SDK: multiple binaries are created, causing "Invalid Bundle Structure" error from Apple

I am building an app called 'ToyBox.
When I build for iOS, I get a ToyBox.app directory which contains a ToyBox executable and the other typical iOS-related files (Info.plist, pkg.info, etc.), in addition to my app icons, assets and source code directories.
However the directory also contains another ToyBox.app sub-directory, which itself contains a ToyBox executable and iOS-related files and my assets directory.
It looks like Corona is recursively compiling my app. This happens whether I build for device or the Xcode iOS simulator. There is no problem running the resulting executable on my device (iPad4) or simulating it in Xcode but when I tried to submit my app to the App Store it was rejected with the following error:
"Invalid Bundle Structure - The binary file
'ToyBox.app/ToyBox.app/ToyBox' is not permitted. Your app may contain
only one executable file."
The error is valid - there are two executables!
(At the risk of confusing the issue, I have another, seemingly related, issue: if I build my app (either for device or Xcode simulator) then later build the app with a different name, in the same directory, the second build will include the first build and the build process will take a very long time to complete. If I was to build the app again with a third name, both previous app builds wold be included and the build would take a very (very) long time).
I can probably work around the issue by deleting the extra files, but this seems like a hack and I'd like to know what's going on.
I am using Corona Version 2013.1087 (2013.4.17).
Make sure you are not saving your Built app to the folder with your source code. You cannot put the output from building an app into the same folder with your source or you will get this error.

Resources