Choose where to place .app file for xcode build - ios

Is there anyway to choose where to place the XCode build (.app and dSYM files).
I want to place the .app and the dSYM file in a folder together with the XCode project.
Is there any way to do this other than manually moving the files?

May be you can check this link
it may be useful
Also
Xcode 4 - build output directory

In Xcode, try Preferences->Locations->Derived Data
Click on the Derived Data pull down and pick Custom

Related

why I got error Build input file cannot be found when I remove the file from my download folder?

I have GoogleService-info.plist file in my project file of my app. The way I copy that file to my project is like this
I download the GoogleService-info.plist from Firebase site to my download folder on my Mac. and then I copy by dragging that file from download folder to Xcode by using this
and my problem is ....
when I delete the GoogleService-info.plist from the download folder on my mac, it will cause error on my Xcode project, the file is also dissappear from my project like this
Build input file cannot be found:
'/Users/dev.adsapps/Downloads/GoogleService-Info.plist'
what went wrong in here ?
I have tried to search the answer like in this thread Problems after upgrading to Xcode 10: Build input file cannot be found but it seems the problem is little bit different
do I have the wrong way when copying the file to my project ?
I am using Xcode 10.
Look for Added folder options while adding GoogleService-Info.plist. You should select the first radio button Create groups instead of Create folder references and it will not be removed when you remove it from the other location, for now you are just referencing the item while adding it to the workspace.
Hope it helps.

Why do I see a lot of .dSYM files in my archive>dSYM folder?

I was analysing a crash and I noticed I have a lot of .dSYM files in my dSYM folder inside archive package,
below is the image of dSYM folder from my archive showing all the contents inside it.
Also
I noticed there is only 1 file with the name of my project that I think I will be using to symbolicate my crash, I wonder what are other files used for and why are the generated?
Note: I created a default iOS project (named "test") using Xcode 8.3.1 to recreate this observation.

Interface Builder could not open the document ".storyboard" because it does not exist

This problem is getting me really crazy. Xcode is looking for a storyboard in my project in a differente location from my project. I tryed removing the file, adding it again, cleaning the project, etc but didn't have luck.
This is the error.
cd /Users/fmartin91/Projects/loovin/loovin-ios
setenv IBSC_MINIMUM_COMPATIBILITY_VERSION 7.0
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
setenv XCODE_DEVELOPER_USR_PATH /Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ibtool --errors --warnings --notices --minimum-deployment-target 7.0 --output-format human-readable-text --compile /Users/fmartin91/Projects/loovin/loovin-ios/Build/Products/Debug-iphonesimulator/loovin.app/Base.lproj/LOOVProductIndex.storyboardc /Users/fmartin91/Projects/Base.lproj/LOOVProductIndex.storyboard
/* com.apple.ibtool.errors */
/Users/fmartin91/Projects/Base.lproj/LOOVProductIndex.storyboard:
error: Interface Builder could not open the document
"LOOVProductIndex.storyboard" because it does not exist.
I could fix this bug by killing ibtoold:
$ sudo killall -9 ibtoold
Why does ibtool need a daemon anyway?
Your storyboard is not in NSBundle mainbundle.
this problem is probably due a "Copy Bundle Resources" in "Build phases" problem.
For corrected it verify if your storyboard file is in "Copy Bundle Resources" for all targets. On project navigator select the project file select Build phases tab and check it is.
When you upload your file to google drive without zip, it appends the extension of .storyboard to .xml automatically and hence when you download it obviously the file won't exist.
To solve this issue, go to the:
[project folder] > [Project folder] > [Base.lproj]
There would be a .storyboard.xml extension type of file which you would have to rename it to the .storyboard extension. And hence your work is done.
Story board error solving visual guide:
I had a very similar problem and it took a few hours to resolve. Clearly xcode locked itself in some strange state that the project explorer could see the xib file while the compile could not. Finally this got resolved when I changed the Location in the File Inspector from Relative to Group to Relative to Project. I got this by comparing the project.pbxproj file in a regular text editor to search for any clues.
I encountered this same issue and here's how I resolved it:
Save a copy of the affected file outside of the project
Delete the file from the project, selecting Move to Trash to completely delete the file and reference from the project
Edit ProjectName.xcodeproj/project.pbxproj to remove all lines referencing the affected file
Re-add the file, making sure to check Copy items into destination group's folder (if needed)
Clean and build
I just ran into this issue running Xcode 9.2. I had copied my files from a school computer onto google drive and then downloaded them at home.
When I opened the files at home it kept telling me main.storyboard and the launch storyboard did not exist. The two storyboard files would display as xml, so they clearly existed, but even right clicking to "open as" produced nothing. After much troubleshooting I found a fix that worked for me.
SOLUTION:
Open your project folder, then the next folder named the same as your project. Open Base.lproj and you will see your two storyboards in xml format. Copy both the files, paste them into the same folder, delete the .xml and confirm the change to .storyboard. Do this for both files and you're set!
This happened to me after a git merge. I changed some storyboard localized files from one project to another and Xcode seems to keep on searching the file in the old project.
My solution was:
Edit the OldProjectName.xcodeproj/project.pbxproj
Search for the Storyboard name
Delete the references to the Storyboard name that appear followed by localization stuff (things like "Base.lproj", "es.lproj", etc)
Delete also the following localization entries (because they refer to the Storyboard file)
Clean and build
Repeat if other files keep throwing compile errors
For me I use xcode 10,
Click on the your project name (blue icon on left) > Build Phases > Under Copy Bundle Resources
Find the file, remove the duplicates if it’s there. Clean project and run again
I encountered same problem when moving the project to another computer. I followed below steps to solve this issue:
Open previous Main.storyboard file as Source Code, copy all
Create a new Main.storyboard file, Open as Source Code, paste
Delete previous Main.storyboard
Clean and build project.
In my case I found that the storyboard was placed in a group that referenced a folder that did not exist in the "Identity and Type" panel.
Removing that group and the storyboard, and adding it back referencing an existing folder solve the problem for me.
For me resetting the container folder of Main.storyboard file worked
I resolved this by doing this:
Open your Xcode project folder in finder, then find the file that you can't open.
Drag that file to your file path in Xcode Project (Inside Xcode App) like this.
Thick "copy item if needed" and choose "create folder references" and then click finish.
Restart Xcode
I could solve my issue, i really don't know how i did it but the things i tried were cleaning and building the project like a billion times, i hope this will be of help to anyone.
I just experienced this, and fixed it by restarting the darn computer. I found out more about it, though. In my case, my ibtool scripts weren't working, giving file-not-found errors just like yours. However I noticed a change in behavior when I ran them as sudo:
2013-09-20 20:49:40.339 Interface Builder Cocoa Touch Tool[58454:303]
CFPreferences: user home directory at
file:///var/root/Library/Application%20Support/iPhone%20Simulator/User/
is unavailable. User domains will be volatile.
Subsequent commands would fail or return without doing anything. So! ibtool/Interface Builder/whatever is somehow using some other launching service to run itself, with some other username or privileges.
Could it be that I installed some tool updates for Xcode 5.0, and it screwed up whatever serving process was running? Yes it could :)
I experienced the same situation with Xcode 7 beta 5. Rebooting my Mac did the trick.
Goto Build Phases > Copy Bundle Resources > Check for the Storyboard for which you are getting error > It should be displaying as blurred > If YES then delete its reference and add it again > Compile again.
In my case, folders in the project navigator and finder were not formed exactly the same. The Main.storyboard was in \Views folder in the project navigator but not in finder. Xcode wouldn't let me quit the app, because Main.storyboard couldn't be saved.
Here's what I did, that solved this problem:
Identify which files are missing or misaligned in your project navigator and finder simultaneously.
Copy Main.storyboard and other files that are not in their right place to a safe location.
Force quit Xcode from Activity Monitor. Reopen Xcode.
Paste previously copied files in finder. Make sure that the folder order is the same as the Xcode project navigator.
In Xcode, from project navigator right-click to where you need to add files and click add new files.
Add files from the finder.
Clean and build.

Xcode archive not creating DSYM file

For most of my projects, I setup an "archive" scheme to archive my project, creating an IPA and DSYM that I can upload to TestFlight.
However, I'm working on a more complicated project that has several targets within the project workspace, quite a few static linked libraries. I have gone through each target and set the following for all configurations:
Deployment Postprocessing -> NO
Strip Linked Product... -> No
Strip Debug... -> No
Generate Debug Symbols -> Yes
Debug Information... -> DWARF with DSYM
I am using Xcode 4.5.2. I have done this for multitudes of projects with no issues. This is the first where something seems to be preventing the DSYM file from being created.
No matter what I try, my archive build will not generate a .DSYM file
Identifying the problem
As #belsokar suggested, check the Report Navigator.
In my case, the dSYM file has not been generated, and there hasn't been a corresponding line that goes like "Generate Appname.dSYM ...in {path}"
But there's been Fabric installed, and it logged the fact of the dSYM file's absence:
Just filer the Report Navigator by "dSYM".
Fixing
In my case I've just had to do what I'm asked of:
DEBUG_INFORMATION_FORMAT should be set to dwarf-with-dsym for ALL
configurations.
Also, it may turn out that dSYM file is being generated in an unexpected place. Check environment variables, especially DWARF_DSYM_FOLDER_PATH and DWARF_DSYM_FILE_NAME.
To embed the dSYM within the app bundle, just set DWARF_DSYM_FOLDER_PATH to $(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_FOLDER_PATH) and DWARF_DSYM_FILE_NAME to $(EXECUTABLE_NAME).dSYM
Checking
Now the build should create dSYM for your target
xcode - > product -> Archive
you see Archives window
1 Select any Archives of your app Right click on it Then select show in finder
2 you see aapname.xcarchive file Right click on it and select show package contents
3 you see dSYMs folder open it and get .dSYM file
:)
Try using: Deployment Postprocessing -> YES
check this out: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html
A few tips for researching.
Check the Log Navigator. I went into this view (one I rarely use so I tend to forget it exists), and I realized the .DSym file was in fact being created.
Check build directory configs to see if they are default or custom...in my case, they were custom, so they weren't being put in the typical default location.
As mentioned in the main answer, the value of DWARF_DSYM_FOLDER_PATH determines where the dSYMs will go. The default value is $(CONFIGURATION_BUILD_DIR), so if you have a custom CONFIGURATION_BUILD_DIR setting, it can change DWARF_DSYM_FOLDER_PATH such that the dSYMs do not get copied into the .xcarchive. I have also found that a custom SYMROOT setting can also change the path, and possibly some other setting overrides as well.
Normally during an archive build, the CONFIGURATION_BUILD_DIR and DWARF_DSYM_FOLDER_PATH values will be somewhere under an "ArchiveIntermediates" folder, the contents of which presumably get copied to the eventual .xcarchive.
If you can avoid overriding those settings, that would likely be preferable, otherwise DWARF_DSYM_FOLDER_PATH may also have to be overridden to point to the correct location, or a post-build step would be needed to copy the .dSYM folders from wherever they ended up to the XXX.xcarchive/dSYMS folder.
DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=YES copied the .dsym files to the archive in my project.
Also, I did not change the default DWARF_DSYM_FOLDER_PATH or DWARF_DSYM_FILE_NAME values.
This is work around helped me:
Log into iTunes Connect and go to My
Apps.
Click on the app that you're trying to download the dSYM for
Go to 'Activity' tab.
Click on the version you want to expand it and
show all the uploaded builds.
Click the build you want.
You'll be shown details about that build, and the option to download dSYM in the bottom right corner under 'Includes Symbols' header.

Xcode has started making archives, not apps. How do I change it back?

Im' writing an phone app in Xcode 4.2. At some point in the last few days, I changed something - I don't know what, and there's nothing obvious in the git history - and although I can still run it on my device and in the simulator, when I archive the build it makes an archive instead of an app. I can't share these archives as IPA files; if I try I get told "No packager exists for this type of archive".
What did I do? How do I change it back so I can produce IPAs again?
I did the following to make it work for me:
for the three20 static library, I used cocoapods to include the files within the main project.. it just got rid of all the trouble three20 was giving me (and they are lots..) btw i tried replacing three20 with Nimbus.. but Nimbus was lacking on some of the features that my project was using three20 for.. so Nimbus wasn't helpful.
set skip install to yes under build settings for all other sub projects/static libraries and switched the copy headers from public to project under build phases
most importantly: under the sub libraries.. under build phases i ensured that copy files destination was changed from Absolute path to products directory.
and that was it!
hint: to get an idea of the offending files that's causing your archive to create an archive file rather than an ipa do this:
Select the archive and click the Distribute button.
Select the 'Save Built Products' option.
Hit Next and Save.
Browse the created directory in Finder.
The 'libraries' subdirectory will identify the libraries that you need to set the Skip Install to Yes.
in some cases usr/local/include will identify the culprit header files you need to move from Public to Project or the files that you have to change from absolute path to products directory. but that directory (ie usr/local/include) varies depending on your sublibrary directory structure
Make sure for any intermediate targets you select "Skip Install" for its build settings.
Click ont the build dropdown in the top-right of your Xcode window and select "edit scheme" and see if anything is wrong there.
If you can't see anything, try selecting "manage schemes" then delete your old schemes and press "autocreate schemes now" to make a new one.
You only want one scheme, for your app build (or one for each target if there are multiple targets). If there are other schemes (e.g. for embedded sub projects used to create static libraries used by your project) delete them.
Also, as jrtc27 says, if you have got any sub-projects that produce static libs, you need to mark them as "skip install" in the build settings. There's another question here that relates specifically to that issue and has a more detailed explanation of how to fix it:

Resources