Octavia Togami
Octavia Togami

Reputation: 4296

Xcode can't open Info.plist -- error says "there is no such file"

I switched to Xcode 4 and loaded my project, which worked perfectly in Xcode 3. When I run it, I get an error that says:

The file “Info.plist” couldn’t be opened because there is no such file.

I have looked at the file in Xcode and it is there. So why can't it be opened?

Upvotes: 69

Views: 95890

Answers (13)

Ankit
Ankit

Reputation: 471

for react native, go to ios/{project name}/Info.plist open it in vs code or any other and check that all the key and strings must be inside the in most cases! You must have changed it for installing the lib and done some mistakes in it.

Upvotes: 0

user8005634
user8005634

Reputation: 1

This problem happened the same to me,this happened when I merge the project from other project,some project setting was difference in above two, open the info.plist file in Text Edite,solve the conflcted then save it,everything goes well!

Upvotes: 0

joliejuly
joliejuly

Reputation: 2257

I know it's been a while, but I faced the same issue, and the answers I've found weren't very clear for me, so I decided to make an instruction with a bunch of screenshots.

1) First, open the right-hand panel in xcode and click on your .plist file:

enter image description here

2) Second, choose Relative to project location on the right-hand panel and copy the link just below it:

enter image description here

3) Third, go to the main project settings, choose your target and click on the Build settings tab:

enter image description here

4) And finally, type Info.plist in the search field, double-click on the existing path and paste the link you have copied earlier:

enter image description here

In the end, clean the project Shift + Cmd + K and re-run.

Upvotes: 16

Naishta
Naishta

Reputation: 12363

In my case one of the key was missed out while adding ATS compliance flag

<key>NSAppTransportSecurity</key>

Instead of the correct one as below

<true/>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>some-service1.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
        <key>some-service2.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
    </dict>
</dict>

I was having this

<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>some-service1.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
        <key>some-service2.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
    </dict>
</dict>

Although some of the online XML Validators did say the XMLs are correct, (which was not), I used

plutil filename.plist

going to the directory where plist file is present (from terminal) and got to know the exact line number that had issues Reference :(https://stackoverflow.com/a/32494850/5438240)

Upvotes: 0

quemeful
quemeful

Reputation: 9848

Xcode 8

Select the project file in the left pane. Then open the general tab and they have added a nice button that lets you select the file. (You may have to add it into your project structure as well)

enter image description here

Upvotes: 11

Adrian
Adrian

Reputation: 20068

For me the issue was that the error was referring to the Info.plist from a library I was using, not the actual .plist file from the project.

Maybe this will help someone in the future.

Upvotes: 0

AceN
AceN

Reputation: 791

For me this happened as a result of enabling localization of the plist file (to give language specific identifier of the app on springboard).

In targets>build settings>packaging>info.plist file key i changed the path from AppName/AppName-info.plist to AppName/Base.lproj/AppName-info.plist and everything worked as expected.

Remember, its lproj as in a small L and not a capital I.

Hope this helps.

Upvotes: 9

jorisw
jorisw

Reputation: 908

In my case, the file was there, but malformed. If you recently edited your Info.plist in a text editor, undo that change, and retry without breaking the markup validity.

Upvotes: 0

Genki
Genki

Reputation: 3195

For me the problem was that some of the .storyboard files had different deployment targets after a merge. Fixed it by setting all the storyboard files to use "Project Deployment Target". enter image description here

Upvotes: 10

amit gupta
amit gupta

Reputation: 1167

go to targets. right click on the test target. yourProjectTests and delete it

Upvotes: 13

PWiggin
PWiggin

Reputation: 966

Under Targets>Packaging>Info.plist file, make sure that the file path is correct.

Upvotes: 1

Dirk Ackermann
Dirk Ackermann

Reputation: 19

under Xcode 4.6 if the appname-Info.plist is not visible under project -> target/info, go to summary tab and it will ask for the appname-Info.plist file. Select the correct file from the suggestion(s).

Upvotes: 1

Joshua Nozzi
Joshua Nozzi

Reputation: 61228

That the file exists in your Xcode project folder isn't enough. Have you verified the file is properly referenced in your application target's build settings so it's properly copied into the app bundle? It's not quite the same as a standard resource (ie, it's not made a member of the target in the set of target membership check boxes) but rather a build setting because of its importance in a properly-formatted bundle.

Navigate to the project (select it in the Project navigator), select the application target in the list of targets, then click the Build Settings tab. Under the Packaging section, make sure the "Info.plist File" is properly set to the location/file name.

Upvotes: 154

Related Questions