I can't build the .ipa file from my application. It's successfully run in the simulator and in my real device. Now when i press 'Product->archive' to build the archive, it's successfully archive the project but it losses the identifier name and version is 'Unspecified'. When i press the share button it's didn't find the provisioning profile and can't build the ipa file…
How can i solve this problem. ?
How can i get this ipa build file ?
Related
I am uploading ios build on testflight till now. But I am getting the following error on uploading any build (I also tried uploading the previous build again which I already uploaded on it).
Invalid IPA: Couldn't find executable specified in Info.plist - check the value of your CFBundleExecutable key.
I need to upload the build. Can someone suggest me a site other than testflight where I may upload the ios build or ipa file?
The other site you can use is http://diawi.com, i use it on my project now, very helpfull.
We had a problem with CFBundleExecutable ${EXECUTABLE_NAME}. Our iOS app was for example called OurAppName.
Ran fine in Simulator but when archived and deployed via organizer said CFBundleExecutable was not an executable file.
We checked the plist and the value for CFBundleExecutable was 'ourappname'. we unzipped the ipa > app folder (see how below) and there was a fie called ourappname but it was smaller than expected and not a exe (USE:ls -l should have x at end of -rwxr-xr-x ).
Bug was caused by a text file called 'ourappname' and when archive was built it took that as the exe and not OurAppName. Answer was to rename and or delete the file with same name as our exe. Do full clean build. and recheck final ipa.
To see contents of OurAppName.ipa :
Rename to OurAppName_ipa.zip (ignore warnings):
DOUBLE CLICK on OurAppName_ipa.zip to open (creates Payload folder containing OurAppName.app):
rename OurAppName.app to OurAppName_app (ignore warnings will change app bundle to folder).
Open OurAppName_app folder look for ...info.plist for app.
Check CFBundleExecutable is pointing to OurAppName.
Find OurAppName in folder do ls -l make sure it executable (USE:ls -l should have x at end of -rwxr-xr-x).
TIP FOR TEST FLIGHT:
If testflight download fails after 80% with UNABLE TO DOWNLOAD then drag the archive you built to a iOS device using Organizer.
Click on Device > applications and + at the bottom (i think dragging the ipa to the device in the organizer installs it as well).
in your info.plist file open as source code form and check CFBundleExecutable key is there or not and make sure it is written as
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
I have a great problem. How i can generate the .ipa of my iPhone application, and i can found it ? in iTunes ? i have all provisionnig profile, just the .ipa is my problem
i have done build for archiving but i am seraching all and i don't found the .ipa to send it via email .
please, Help.
Thanks for yourn answers
Don't use "build for archiving", select "Archive" instead. You need to select a scheme targeted at a device (not the simulator) to do that. Then, in the organizer, click on the archived build and hit "Share" to generate your .ipa file.
Here is the steps for make .ipa file.
build your project.
Go to build folder -> select target build folder -> select builded application file.
Make zip of that selected application file.
Rename that .zip file to .ipa then press enter -> click on Use .ipa option.
Put that .ipa file on /Users/ *userName */Music/iTunes/iTunes Media/Mobile/
Open iTune -> click on App tab and then you can see your app there.
Now Sync it for use in device.
Try this
Build->Products->urProduct.app->drag
into iTunes->select
app->right-Click->showInFinder->ipa
Build your project.
Go to Products in work tree
Select appname.app
Drag into iTunes
Right-click app and "Show in Finder"
Access .iPa
How can I create a ipa file for my iOS application?
I have written the complete code for my iPhone app and now I'd like to make .ipa file.
Within XCode choose Build > Build & Archive.
In your XCode Organizer (Window > Organizer), you'll see your archived apps
Select one, hit 'Share...' and 'Save to Disk'
The one suggested by #heinklein is the easiest way but another option is to do the following.
Add necessary profiles and adjust build settings.
Set device as target to run the application.
Build the product.
Go to Products->yourAppName.app. Right click and show in finder.
Drag & drop to itunes profile and binary file.
Select app in iTunes and right click to show in Finder. And there you can get the .ipa file.
Sometimes it may happen that Xcode Archiver fails to generate ipa file. Then here is the another option.
Build the application.
After successful build go to "Products" folder in your project navigator.
Right click on it and go to "Show in Finder".
Copy the .app file.
Create a new folder at some other location lets say on Desktop with name "Payload".
Paste that .app file in Payload folder.
Zip the Payload folder.
Rename that zipped folder with .ipa
Thats it.
Reverse procedure is used to retrieve the app file from an ipa file.
Hope this answer helps.
Stepwise Procedure to create an IPA file,
1.First of all,choose your device as IOS Device in Scheme near Breakpoint tab in Xcode.
2.In Xcode menu,Product->Clean and build your application.
3.If the provisioning certificate is not valid,it will lead to build failed with an error.If so you have to change it to a valid certificate through your project->build settings.Else if build succeeded just leave this step.
4.Then select Product->archive,it will create an archive file in Organiser->archives and open it up for you after archive finished.
5.choose share tab in Organiser followed by contents->.ipa and Identity->choose your valid distribution certificate and click next.
6.within a minute it will ask name for your IPA file to save.Give a name and save it in Desktop.
7.Open iTunes and drag and drop your IPA file in Library->Apps.
8.Now connect and select your Device in itunes->choose apps tab under it and sync your app ipa to the Device.It will install your IPA file to the device.
9.Thats all.Now you can run your App IPA file in your device.
Using Archive process with Xcode 9.0
Clean your project from Product -> Clean (cmd + shift + k)
Select Product -> Archive
Once archive is successfully completed it will open in Organizer window
Press Export button present on right side
Now select the distribution method as per your need and click on Next button
This will show the App Store distribution options. Now click on Next button
Re-sign your project (preferred is Automatically manage signing) and click on Next button
There will be Review window containing IPA content details. Click on Export.
Now choose the location where folder is to be saved and Click on Export.
This will create an folder containing IPA, packaging.log, DistributionSummary.plist and ExportOptions.plist file
As of Xcode 4.3, there is no option of Share in organizer. You need to select distribute and then select the option for save as enterprise or adhoc application.
First complete your coding check it with your provisioning profile.
Then click to run on device or ipad.
then go to menu -> prodcut -> clean.
After cleaning menu -> product -> Archive .
After completing it click on share and click on next button.
It will take a minute as per your app file size.
then give a name of ipa and save it where you want.
I'm using xCode 7.2 and have just exported an .api .ipa file to upload to Diawi to share the app with my friends. So here is how I did it:
Product -> Archive
After a while, the Organizer would show up -> Export
Choose something with Ad-hoc, xCode would generate a folder with the .api file in your desktop
Hope this would help!
Hope it helps someone: if you are kicked out of organiser this is how to re-open it. From there you can compile ipa file as recommended. AD Hoc is for sharing ipa by email and you need to archive for "Generic iOS device".
I developed one application for iPhone. After I build I got .app file in build folder.
My application name is Myapp, then i got Myapp.app file in the build folder.
My problem is i want to create the .ipa file. how is that.. it is for to install
jailbraked iPhone..
Create a folder named Payload.
Copy Myapp.app (from products of your project) into the Payload directory.
Right click and Compress the Payload directory.
Rename the zip file to Myapp.ipa.
** Update ** This answer is very old. Use Xcode to build .ipa archives now. (Product > Archive)
Run Script
/bin/sh
mkdir $CONFIGURATION_BUILD_DIR/Payload
cp -R $CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app $CONFIGURATION_BUILD_DIR/Payload
cp $CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/iTunesArtwork $CONFIGURATION_BUILD_DIR
cd $CONFIGURATION_BUILD_DIR
/usr/bin/zip -r $PRODUCT_NAME.ipa Payload iTunesArtwork
rm -rf Payload iTunesArtwork
exit 0
With Xcode 4, there is now a way more easy way:
In the menu bar, go to Product > Archive.
The organizer will then open in the Archives tab, and you will be able to save an IPA using the Share… button.
If the Archive menu item is disabled, make sure you have the scheme set to iOS device and not the iPhone Simulator. You don't have to have a device plugged in, though.
I also wrote a script to do this from the command line: xcodearchive. It works similar to xcodebuild, but generates an IPA.
Signing Part:
This part is required for non-jailbroken phone and rest of the steps are same
Open Terminal and enter the following commands
codesign -f -s "Code signing certificate name" appNamewithextension
example
codesign -f -s "iPhone Developer: Durai Amuthan" sample.app
Verify it is signed using the following command
codesign -verify AbsolutePath_with_app_name
ipa creation Part:
Way 1:
1.Create a folder named Payload and copy the .app into it
2.compress it and you'll get Payload.zip
3.Now Change the extension from zip to ipa that's it
mkdir Payload
cp -R MyAppName.app Payload/
zip -r -s 64 Payload.zip Payload/
mv Payload.zip MyAppName.ipa
Way 2:
Drag and drop the .app in iTunes that'll create the iPa for you
Installation part:
If you had Tried the Way 1 in previous step then Drag and drop the .ipa in iTunes
Choose the device in iTunes and click install and apply the sync that's it
Follow the following steps
Upload your app file as a zip on www.diawi.com
Open the diawi url in your web browser.
You will find download application option there. Download the file and it will be downloaded as an IPA.
Also, if you want to include the logo file, add the icon to the directory and name it "iTunesArtwork". compress that along with the Payload directory that has the .app file in it.
I have an iphone simulator running on my Mac.
I have a .ipa file, can you please tell me how can I install it on the simulator?
You can't. If it was downloaded via the iTunes store it was built for a different processor and won't work in the simulator.
I found an .ipa file that I wanted using iTunes and copied it over to my desktop.
After that I changed the extension to .zip and extracted it.
Next I found the Payload folder and moved the application inside to my desktop.
Finally I moved that application to my iPhone simulators applications folder found at:
HD
> Applications
> Xcode.app (right click - Show Package Contents)
> Contents
> Developer
> Platforms
> iPhoneSimulator.platform
> SDKs
> iPhoneSimulator6.0.sdk
> Applications
(Note: Some apps crash more often than others.)
In Xcode 6+ and iOS8+ you can do the simple steps below
Paste .app file on desktop.
Open terminal and paste the commands below:
cd desktop
xcrun simctl install booted xyz.app
Open iPhone simulator and click on app and use
For versions below iOS 8, do the following simple steps.
Note: You'll want to make sure that your app is built for all architectures, the Simulator is x386 in the Build Settings and Build Active Architecture Only set to No.
Path: Library->Application Support->iPhone Simulator->7.1 (or another version if you need it)->Applications
Create a new folder with the name of the app
Go inside the folder and place the .app file here.
Update for Xcode 9.4.1+
Hope my answer is getting seen down here as this took me a while to figure out but I just got it working.
First of all you need to build and run the App on your simulator. Then you open the Activity Monitor. Double click the name of your App to find its content.
In the next screen open the Open Files and Ports tab and find the line with MyAppName.app/MyAppName.
Copy the link but make sure to stop at the MyAppName.app. Do not copy the path following it.
Control click onto the finder icon and select Go to folder.
]
Paste the path and click enter. You will see your MyAppName.app file.
Copy it to the Desktop and zip it. Move it to your desired 2nd computer and unzip the file. Build a random project to have a simulator open.
Lastly: Literally drag and drop the App from your Desktop into your Simulator. You will see the install and the App opens and does not crash.
You cannot run an ipa file in the simulator because the ipa file is compiled for a phone's ARM architecture, not the simulator's x86 architecture.
However, you can extract an app installed in a local simulator, send it to someone else, and have them copy it to the simulator on their machine.
In terminal, type:
open ~/Library/Application\ Support/iPhone\ Simulator/*/Applications
This will open all the applications folders of all the simulators you have installed. Each of the applications will be in a folder with a random hexadecimal name. You can work out which is your application by looking inside each of them. Once you have found out which one you want, right click it and choose "Compress ..." and it will make a zip file that you can easily copy to another computer and unzip to a similar location.
UPDATE: For Xcode 8.0+ you need to follow below Steps:
Download application from iTunes
Select downloaded app, right click show in finder
Copy .ipa file to Desktop, rename it to .zip file
Extract that .zip file and you will get directory with application name
Check that directory you will find app file in Payload folder, copy this app file
Go to ~/Library/Developer/CoreSimulator/Devices
FYI: Library folder is hidden by default in mac, you can see hidden file using below command.
defaults write com.apple.finder AppleShowAllFiles YES;
killall Finder /System/Library/CoreServices/Finder.app
Now here you'll see many directories with long hexadecimal names, these all are simulators.
To find your desired simulator, sort these directories using "Arranged By > Date Modified".
Select that simulator file and go to below location.
<HEXADECIMAL-SIMULATOR-STRING>/data/Containers/Bundle/Application/
Create new folder name with <download-app-name> and paste app file in that folder
Open Terminal and run below command to install this application
xcrun simctl install booted <APP_FILE_PATH>
Example <APP_FILE_PATH> will be looks like below:
~/Library/Developer/CoreSimulator/Devices/<HEXADECIMAL-SIMULATOR-STRING>/data/Containers/Bundle/Application/<APP_NAME>
First of all, IPAs usually only have ARM slices because the App Store does not currently accept Simulator slices in uploads.
Secondly, as of Xcode 8.3 you can drag & drop a .app bundle into the Simulator window and it will be installed. You can find the app in your build products directory ~/Library/Developer/Xcode/DerivedData/projectname-xyzzyabcdefg/Build/Products/Debug-iphonesimulator if you want to save it or distribute it to other people.
To install from the command line use xcrun simctl install <device> <path>.
device can be the device UUID, its name, or booted which means the currently booted device.
For Xcode 10, here's an easy way that worked for me for a debug IPA (development profiles)
Unzip the IPA to get the Payload folder.
Within the Payload folder is the app executable.
Drag and drop the app to an open simulator. (You might see a green add button when you drag it over the simulator)
It should install that app on that simulator.
You can run the application file of project in simulator - not .ipa file.
You can get it from:
Libraries-->Applicationsupport-->iphone simulator-->4.3(its ur simulator version)-->applications-->then u can see many files like 0CD04F.... find out your application file through open it.
You can copy the file to your system(which system simulator u need run ) location Libraries-->Applicationsupport-->iphone simulator-->4.3(its your simulator version)-->applications-->
Then open the simulator 4.3 (its your simulator version where you pasted). You can see the application installed there.
Getting from other people:
Please tell them to find out Libraries-->Applicationsupport-->iphone simulator-->4.3(its ur simulator version)-->applications-->then you can see many files like 0CD04F.... from their system and receive that file from them.
After they have got the file, please copy and paste the file in to your system `Libraries-->Applicationsupport-->iphone simulator-->4.3(its your simulator version)-->applications-->(paste the file here).
Then you can see the app is installed in your system simulator and you can run it after clicking the file.
Copy From Here:
- Run the application in the Xcode.
- Select Finder go to Go and click on select Library Library/Application Support/iPhone Simulator/7.0.3-64/Applications
- Select 32 bit folder Copy your application.
Paste To Here:
- /Applications/Xcode-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhone Simulator. SDK/Applications
- Paste here and run the simulator.
With Xcode 6:
It's very possible to build and install on a simulator.
I did it by copying the debug build configuration (I called it SimRelease for my example below) in the project settings. I changed the architectures to i386 and x86_64 (not sure how necessary this was), but key difference to change between the copied build configuration is build for active architecture set to NO. After that a couple simple command line tools will do the rest!
xcodebuild -scheme YOUR_SCHEME -configuration SimRelease -sdk iphonesimulator8.1
Depending on where you have your DerivedData set you need to go find the outputted .app folder. Once you've found it you can simply install it on any simulator device. To find the device UUID's open Xcode and go to Window->Devices you'll see the list of the device instances and you can grab the UUID's. For a trivial script you could grab all of them from: ~/Library/Developer/CoreSimulator/Devices/ and install on every device.
From there the simple command to install on a device is:
xcrun simctl install DEVICE_ID APP_FOLDER_LOCATION
Here's a simple shell script to take the app and install it on every device:
app_dir=$1
current_dir=$(pwd)
cd ~/Library/Developer/CoreSimulator/Devices/
devices=$(ls -d */)
cd "$current_dir"
for device in $devices
do
device_id=${device%/}
xcrun simctl install "$device_id" "$app_dir"
done
Hope this helps! Took me a while to figure out the best way to do it.
Step to run in different simulator without any code repo :-
First create a .app by building your project(under project folder in Xcode) and paste it in a appropriate location (See pic for more clarity)
Download Xcode
Create a demo project and Start simulator in which you want to run the app.
Copy the .app file in particular location(ex :- Desktop).
cd Desktop and Run the command (xcrun simctl install booted appName.app),
App will be installed in the particular booted simulator.
Tested on iPod touch (7th generation) Simulator 13 (iOS 15.0)
Xcode and Xcode Command Line tools are already installed
Since we have an .ipa file, we can get the .app file from it
Rename .ipa file as .zip and extract the contents
Once the zip file is extracted, we can find the Payload folder which contains App_Name.app file
Open Terminal or iTerm2 app
Navigate to the folder which contains .app file
To list all iOS connected devices & iPhone simulators -> Also shows the UDID of all devices
xcrun xctrace list devices
Boot the simulator
xcrun simctl boot <UDID>
Launch the simulator
open -a simulator
Install the .app file
xcrun simctl install booted <App_Name>.app
Just drag and drop .app file to simulator it will install app automatically.
I have checked in iPhone simulator 13(iOS 15.4)