The identifier "EventApp" in your code signature for EventApp must match your app's Bundle ID - iphone

i'm trying to publish my first iphone app (monotouch) to to the store but i always get the following error after uploading:
The identifier "EventApp" in your code signature for EventApp must match your app's Bundle ID "net.mydomain.myappname".
I have the following settings in monodevelop configured:
Bundle identifier: net.mydomain.myappname
I have also tried changing this identifier to "net.mydomain.myappname.EventApp" (similar to this screenshot: http://monotouch.net/#api/deki/files/29/=dist-app-settings.png) but then i can't build anymore because monodevelop shows the following error: "Build failed. Array index out of range"
I also had a look in the Info.plist file in the build-output folder. (EventApp.app)
This is what's in there after build:
Bundle name: EventApp
Bundle identifier: net.mydomain.myappname
Executable file: EventApp
Another trial was to rename the project to "myappname" but this didn't also work.
Is there another location somewhere in the *.app package where the identifier could be?
Any ideas how to fix this?
thanks

Be sure you use the correct app store provisioning profile created for the specific bundle id. The bundle id that you used to create the profile should match the bundle id provided in the itunes connect while creating your application there. Use the same bundle id in all the 3 places.
1. Creating provisioning profile
2. Info.plist
3. ItunesConnect

Related

ERROR ITMS-90259: "Bad Bundle Executable. You must include a valid CFBundleExecutable key in your bundle's information property list file

I'm working on a multi-platform iOS and Mac app. When I try and Archive and Distribute to the App Store I run into this issue:
ERROR ITMS-90259: "Bad Bundle Executable. You must include a valid CFBundleExecutable key in your bundle's information property list file."
Verified that the Info.plist for the Mac target has a CFBundleExecutable
Tried Xcode 12 & 13
Tried using App Transporter
Used Xcode 13 RC and let that auto-generate the Info.plist
I've tried everything I could find online - there's not much - and I can't get the upload to succeed.
However, I was able to replicate the issue with an entirely empty project. No dependencies, no code, nothing. The project archives successfully, but the upload fails.
Any help would be appreciated. I've spent two days on this already.
An example project that fails: https://drive.google.com/file/d/1qUN5lHEWNyNHQV54fYPXMeRsuO-cpHqW/view?usp=sharing
We had two issues causing this, making it fail when uploading a Mac build to iTunes. The first issue, we had included a package (from Steam), that had its own plist and post build script.
com.rlabrecque.steamworks.net/Editor/RedistCopy.cs - build script
com.rlabrecque.steamworks.net/Plugins/steam_api.bundle.meta - folder with plugin and plist
We renamed the post build script and removed the plugin folder, not 100% sure if the renaming was needed.
Then, we had this in our own post build script that was causing issues, so we removed it too.
rootDict.SetString("CFBundleExecutable", "${EXECUTABLE_NAME}");
Then it worked! Also worth noting that we believe the CFBundleExecutable didnt actually end up matching the file name e.g. the file produced was a.pkg and the plist says:
<key>CFBundleExecutable</key>
<string>b</string>
But seems iTunes was ok with that. We use Unity and it seems in the pList the string was set to the "Product Name" (Edit > Project Settings > Player, at the top, "Product Name").
We also didnt need to use Transporter to upload.

Why does my IPA file look like this when uploading/publishing to App Store?

I'm getting this error: 'This bundle is invalid. The IPA format requires a top-level directory named Payload, containing only a .app bundle and optional plugins in a Plugins directory.'
It should contain a .app bundle, and I'm wondering why it doesn't look like that.
IPA file
Any inputs would be helpful :)
Set mach-o type in build settings to 'executable'. Mine was previously set to static library.

When specifying provisioning profile in fastlane gym for ios do i supply the profile name or the path to the file?

How do I set the provisioning profile int he export_options for gym in fastlane? I have my profiles in my Documents folder. Does gym automatically locates it or I need to specify the path to the file? I know using match is the preferred way but right now I'm still asking permission if I can upload provisioning profiles and certs in git. So in the meantime I'm doing it without match. Can someone help me with this. I'm new to fastlane and I'm not a swift dev.
How do I set the provisioning profile int he export_options for gym in fastlane?
A: If you run xcodebuild -help you will see the available keys for the export options and their configuration:
provisioningProfiles: For manual signing only. Specify the provisioning profile to use for each executable in your app. Keys in this dictionary are the bundle identifiers of executables; values are the provisioning profile name or UUID to use.
Does gym automatically locates it or I need to specify the path to the file?
A: Yes it does, in the same way than Xcode does, since gym is kind of a wrapper for "xcodebuild" command (the one that Xcode uses of course). So by providing the name or UUID should be enough. Of course this means that the provisioning profiles should be downloaded on your machine, Xcode -> Preferences -> Accounts -> Download Manual Profiles should do it.
You can see this lane as example:
desc "your description"
lane :release do
gym(
workspace: YourApp.xcworkspace",
scheme: "YourApp",
configuration: "Production",
output_name: "YourApp.ipa",
export_method: "app-store",
export_options: {
signingStyle: "manual",
provisioningProfiles: {
"YourApp.bundle.id" => "The name of the provisioning profile",
"YourApp.bundle.id.OtherExecutable" => "The name of the provisioning profile"
}
}
)
end
I don't want to create another repro to host only the certificates and stuff so I prefer to do it manually too.
Understanding how the signing works fro iOS can be a little tricky, this article helped me a lot to fully understand it. If you want mode details feel free to ask :)
Do a manual build, export with Xcode and copy the generated ExportOptions.plist file

Domain=LaunchServicesError Code=0, Error=MissingBundleIdentifier, did not have a CFBundleIdentifier in its Info.plist

This is the error in the Simulator log
com.apple.dt.Xcode[667] <Error>: Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=MissingBundleIdentifier, ErrorDescription=Bundle at path /Users/Monica/Library/Developer/CoreSimulator/Devices/A20C808A-5E72-4B1D-847C-AD6C18B479E9/data/Library/Caches/com.apple.mobile.installd.staging/temp.a2aXl9/extracted/Potato.app did not have a CFBundleIdentifier in its Info.plist}
This is what my Info.plist looks like:
This is what my project settings look like:
I've already done on the Simulator: Simulator > Reset Content & Settings. In Xcode, I've done Product > Clean. I've also tried setting the Bundle Identifier in the Info.plist to the "Monica-Ong.Potato" and "com.Monica-Ong.Potato". I've tried changing the bundle identifier in my project settings to "Monica-Ong.Monica-Ong.Potato". Nothing has worked.
Any help would be greatly appreciated!
I'm also experiencing this issue, adding CFBundleIdentifier or ProductName or clean / reset ... did not solve my problem.
After digging the problem ( new project from scratch also had the same issue) i found that the assets folder was the blame, i had a referenced folder named Resources and inside i had a folder named Shaders.
I renamed the folder from Resources to assets and it's working now.
I still want to find out what's with the folder naming and why it was giving a totally different error type.
You need to set the Bundle display name which is "CFBundleIdentifier" in your info.plist to the name of your app. Which is different then the "Bundle identifier" This is used for the pop up messages that says "Potato would like to launch Facebook" and since it is null it crashes. You will also encounter errors if it is set to "".

Duplicate target in Xcode get error: Xcode cannot run using the selected device

I duplicate a target, create and link a new Info.plist file, a prefix.pch file, also change bundle ID and bundle name. Build is ok, but got message:
Xcode cannot run using the selected device.
Choose a destination with a supported architecture in order to run on this device.
what ever in simulator or in iPod, it can not run.
What can I do? Is it because the reason of bundle?
After changed Product name in Build setting, it can be run.