[TIMOB-19563] Unable to find Info.plist in root of specified app path
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2015-09-24T17:35:38.000+0000 |
Affected Version/s | n/a |
Fix Version/s | Release 5.0.1 |
Components | CLI, iOS |
Labels | 5.0.0.GA, Info.plist, Unable, find, ios, ios9, to |
Reporter | Ioannis Kokkinidis |
Assignee | Chris Barber |
Created | 2015-09-20T12:01:18.000+0000 |
Updated | 2016-06-03T16:15:17.000+0000 |
Description
After updating to Xcode 7 and titanium sdk 5.0.0GA whenever I try to run an app (that was previously running before the update), I get this:
[INFO] : Launching iOS Simulator
[ERROR] : Unable to find Info.plist in root of specified app path: /Users/Home/MyAppcProjectDir/build/iphone/build/Products/Debug-iphonesimulator/TestApp.app/Info.plist
TRACE | titanium exited with exit code 0
I can no longer run any app in iOS
[~dynopia] what is the command you use to launch the application?
ti build -p ios -C 7E03C187-0838-4581-B1D1-A8F09119515E
. That id is iPhone 6 ios 9.0, but the same happens using ANY iOS 9 simulator id.Does it work for a non-iOS 9 simulator?
Not with sdk 5.0.0GA Setting my tiapp.xml to 4.1.1GA allows me to run my app on iOS simulator 8.4 (NOT on 9.0).
I'm the same, currently being forced to work on 8.4 simulator using Ti SDK 4.1.0.
Hi everyone, can you attach the command you called and the corresponding entire trace? ti build -p ios -C 7E03C187-0838-4581-B1D1-A8F09119515E -l trace
Had to use appc run instead of ti build as that command wasn't recognised.
There's nothing unusual in the build log output. It claims the Info.plist exists in the build/iphone directory. Xcode copies the Info.plist into the built app directory. This might be related to differential builds, but I don't see in the logs that file being removed. [~dynopia] Have you tried cleaning the project? Does it work? Does it work for the first build? Second build?
Cleaned it using App Studio, deleted the build folder, created a new project, it never builds for me using Ti SDK 5.0.0.
[~paulflood] Same issue? Are you using Xcode 7 + iOS 9? Do you have a custom Info.plist or an
Same issue, not change, its worth nothing that I was getting this issue before https://community.appcelerator.com/topic/3350/unable-to-parse-titanium-config-file/10 and made the change to run.js so it would build. Yes using Xcode 7 + iOS 9, it did build onto the iOS 9 simulator this morning with Ti SDK 4.1.0 but after deleting the app and trying to reinstall it gave errors again, not the info.plist error. I've never been able to build with Ti SDK 5.0.0. I do have some custom properties in my tiapp.xml, the is no custom info.plist. Below is what I added.
The app fails to build using Xcode and gives the following error 'The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 4.)', the output can be found here [link title](http://spudatron.ie/output.txt) How do I do a --log-level trace output from doing a build?
[~paulflood] If you build your app from the command line using
ti build
orappc run
, you can specify\-\-log\-level trace
. From Studio, there's an icon on the far right of the console's toolbar that drops down a menu of log levels. I'm interested in the log output from a build after cleaning the project.Output here [Log Level Output](http://spudatron.ie/log-output.txt)
I confirm that I cleaned the project many times with no luck.
[~paulflood] Thanks for the log output! OK, I see the problem. The Xcode builds the app in the
build/iphone/build/Products/Debug-iphonesimulator/\[app-name\].app
directory, however one of the Xcode build steps called "ProcessInfoPlistFile" puts the compiled Info.plist into thebuild/iphone/build/Debug-iphonesimulator\[app-name\].app
directory. I'm going to try to reproduce it and see if I can fix it. Stay tuned!No worries and great you've spotted the issue.
+1
Still trying to figure this out. [~paulflood] for some reason when you build an app, Xcode is using the correct derived data path. On my machine, it creates folders in the
build/iphone/build
directory such asIntermediates
,Products
,Release-iphoneos
(empty), and\[app-name\].build/Release-iphoneos
(also empty). So I have two hunches. First is your app name. Can you say what your app name is? Does it have special characters or unicode characters? Second would be do you have custom Derived Data locations in your Xcode preferences? Launch Xcode, go to Preferences, then the Locations tab. On my machine, I'm using the "Default" location which is set to/Users/chris/Library/Developer/Xcode/DerivedData
. Next, click advanced. Which option is selected? By default "Unique" is selected. In the past, I changed mine to "Custom" and "Relative to Workspace" with a products dir of "build/Products" and intermediates dir of "build/Intermediates" so that I could build directly from Xcode, however changing this back to unique still doesn't help me reproduce the result from your build.I don't know if it can help, but in my case, I got two directories with the same name, but with the first letter on upper case, see: app/build/iphone/build app/build/iphone/Build Also there is two Info.plist at app/build/iphone.
[~delmotte] OK, that's strange. I've seen bugs in the past where case sensitivity caused issues, but these cases were specifically because of typos. How can there be two Info.plist files in app/build/iphone?
Hi Chris, The app name is BigRedButton as its seen here, no spaces. The app ID is com.bigredbutton.BigRedButton. So my build location is /Users/paul/Library/Developer/Xcode/DerivedData and after selecting Advanced the build location is set to legacy. I changed it to unique just their and it built successfully on iOS 9 with Ti SDK 5.0.
I really don't know. I am trying to send you two print screens. One with SDK 4.1.1 and other one with SDK 5.0.0.GA. On 5.0.0.GA there is two Info.plist files and two build folders. Just to you know, I've formatted my mac two times today and installed everything again to see if it works, but it seems it's sdks 5.0.0.GA fault. SDK 4.1.1 attachment: !sdk4.1.1.png|thumbnail! SDK 5.0.0.GA attachment: !sdk5.0.0.GA.png|thumbnail!
[~paulflood] So, just to be clear, changing the advanced derived data locations from "legacy" back to "unique" solved it?
In my case, it is set to unique.
[~delmotte] When you installed OS X, did you format the drive as Mac OS Extended case-sensitive?
Yes, this has solved it for me, its building it without any issues. I tried to build the app on my device but I got the below error, I think I need to update the provision profile etc. for the app to get this working.
[~Chris Barber], no, my primary SSD is as Mac OS Extended (Journaled), but my app was at secondary SSD that is as OS Extended case-sensitive. I've changed to Journaled, and it's running. Thank you!
Thanks for the hard work Chris, much appreciated.
[~delmotte] I tested building an app on an OS X Extended case-sensitive thumb drive and it worked. So, not sure what's up with that, but I'm glad it's working! [~paulflood] No prob, that's what we're here for. Good luck with your app. I can't wait to see what the button does. :) OK, so I'm going to try find a better way of overriding the Xcode configured derived data location. The xcodebuild -derivedDataPath option doesn't appear to do the trick. If I can't override it, maybe I can detect it early in the build and show a reasonable error message. Thanks again everybody for your help!
The problem is with case sensitive file systems. Appcelerator 5.0.0.GA puts the build of the app in 'build/iphone/Build', but the xcodeproject is created in 'build/iphone/build' (see the capital letter in the second build). The first time this is noticed is when xcode is finding the Info.plist file. One solution is to put the xcodeproject also in 'build/iphone/Build'. This can be done by changing line 2075 in the file: 5.0.0.GA/iphone/cli/commands/_build.js
this.iosBuildDir = path.join(this.buildDir, 'build', 'Products', this.xcodeTarget + '-' + (this.target === 'simulator' ? 'iphonesimulator' : 'iphoneos'));
tothis.iosBuildDir = path.join(this.buildDir, 'Build', 'Products', this.xcodeTarget + '-' + (this.target === 'simulator' ? 'iphonesimulator' : 'iphoneos'));
Then your project can run on IOS9 simulator.[~dapperedodo] I'm going to guess you have a custom Derived Data path. To check, launch Xcode, go to Preferences, then the "Locations" tab. Click the "Advanced" button under the Derived Data field and in the popup you should see 4 radio button choices. I'm guessing you have a "Custom" derived data folder that's "Relative to Workspace" and has a "Products" location of "Build/Products" and an "Intermediates" location of "Build/Intermediates". Either way, I'm trying to figure out a way to override these derived data locations. As stated in my comment above, the
xcodebuild -derivedDataPath
only allows me to change the parent directory where the derived data lives, not the locations of the Products and Intermediates directories. If you have any clues, please let me know! :)OK, I figured it out. I need to set the
OBJROOT
,SHARED_PRECOMPS_DIR
, andSYMROOT
when calling xcodebuild. I'll get a PR up soon. Note: this fixes the case-sensitivity issue. I force the Intermediates and Products to be in the "build" directory.Master PR: https://github.com/appcelerator/titanium_mobile/pull/7228 5_0_X PR: https://github.com/appcelerator/titanium_mobile/pull/7229 To test, set the Derived Data folders to "Legacy" in the Xcode preferences locations advanced popup, then build. You can try custom products and intermediate directories where the "Build" directory has a capital B, then build on a case-sensitive filesystem (I used an old USB thumb drive).
Verified using test instructions from Chris Barber. Tested with Derived Data folder set to Legacy and also with Derived Data folder set to Shared Folder and Custom with "Build" directory set on case sensitive filesystem Verified on: MacOS 10.10.5 Studio 4.3.0.201509151348 Ti SDK 5.0.1.v20150924103934 Appc NPM 4.2.0 Appc CLI 5.0.2-19 Xcode 7.0 Node v0.10.37 iPhone 6 (v9.0), iPhone 6S sim (v9.0)
Still having this issue with SDK 5.0.4, I tried to set derived data in Xcode to Unique, to Legay, to Custom with "build" / "Build" : doesn't work at all
[~yoannwyffels] Please output your log file using the debug settings. The easiest way is to build from the command line following this format: https://wiki.appcelerator.org/display/guides2/Appcelerator+CLI+Troubleshooting
Name = Mac OS X Version = 10.11.1 Architecture = 64bit # CPUs = 4 Memory = 4294967296 Node.js Node.js Version = 0.10.37 npm Version = 1.4.28 Titanium CLI CLI Version = 5.0.5 Titanium SDK SDK Version = 5.0.2.GA SDK Path = /Users/mac/Library/Application Support/Titanium/mobilesdk/osx/5.0.2.GA Target Platform = iphone
Here you'll find the trace log, it includes 2 launches: - The first one after removing the "build.iphone" in the projet directory - The second one without removing it http://perso.iloadev.fr/trace.txt Very strange, but, just before the info.Plist error, you'll see a lot of "removing" tags, including removing Info.Plist ?!
here is strange lines: [DEBUG] Removing /Users/mac/Documents/Appcelerator_Studio_Workspace/LabasBOX/build/iphone/Build/Products/Debug-iphonesimulator/Boite à Slides.app/videoIntro.js *[DEBUG] Removing /Users/mac/Documents/Appcelerator_Studio_Workspace/LabasBOX/build/iphone/Build/Products/Debug-iphonesimulator/Boite à Slides.app.dSYM/Contents/Info.plist* [DEBUG] Removing /Users/mac/Documents/Appcelerator_Studio_Workspace/LabasBOX/build/iphone/Build/Products/Debug-iphonesimulator/Boite à Slides.app.dSYM/Contents/Resources/DWARF/Boite à Slides [DEBUG] Removing empty directories [INFO] Skipping xcodebuild [INFO] Finished building the application in 3s 53ms [INFO] Launching iOS Simulator *[ERROR] Unable to find Info.plist in root of specified app path: /Users/mac/Documents/Appcelerator_Studio_Workspace/LabasBOX/build/iphone/build/Products/Debug-iphonesimulator/Boite à Slides.app/Info.plist*
[~yoannwyffels] The problem is because you have a unicode character in the app name. I'll see what we can do to fix this in future releases. In the meantime, you'll have to change the app name.
Mmmmmh no, having same behavior with a regular Application name.
[~yoannwyffels] According to the trace log output, you're project's app name contains the unicode character U+00E0 à (c3 a0) LATIN SMALL LETTER A WITH GRAVE. I added this character to my app's name and was able to successfully build the app. I'm not sure why it would be causing issues for you. Can you try re-entering the entire app name? Perhaps there is something goofy. There may also be an issue with Node.js 0.10.37. That version is 7.5 months old and there have been many releases since. I recommend upgrading to Node.js 0.12.7 (https://nodejs.org/dist/v0.12.7/node-v0.12.7.pkg).
Sorry, you're worry it's working by removing the unicode character and spaces !
[~yoannwyffels] Can you please remove all unicode characters from the app name, clean your project, then perform to builds and supply us the trace log? I'm trying to find clues to reproduce.
Chris Barber, it's easy to reproduce, you just have to put any unicode character in
[~yoannwyffels] I have been able to successfully reproduce the issue. Let me see if it can be fixed. Stay tuned!
Ok thanks a lot Chris !
Receiving this issue when using Cocoapods 1.0.1 and its Hyperloop integration:
Any idea [~cbarber], maybe an encoding/spacing issue again?
[~hansknoechel] I doubt this is an encoding-related issue. Try doing a clean build.
As if I didn't do that before :-)