New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TIMOB-12933] When debugging from Studio, we only force a rebuild for no... #3926
Conversation
… non-simulator builds since we don't need to force Xcode to sign the app again for simulator builds.
…de for no reason. [TIMOB-12419] Added --force-copy and --force-copy-all flags to copy files instead of symlink for simulator builds. [TIMOB-12103] Added blacklist and graylist of reserved words that are not allowed for directory names. [TIMOB-12420] Changed all rebuild reason log messages from debug to info. [TIMOB-12348] Fixed bug with i18n and JSS files not being generated when building directly from Xcode.
It is not clear to me how this affects situations that require manual additions to the xcodeproj, e.g. the case where you must add external framework references to the project..? Right now (prior to this pull request) this bug bit me because whenever I open the project in Xcode, add the missing references, close Xcode, launch the build from TiStudio...the project is cleaned and, framework references lost, so the build will never work. Am I making sense? 🙇 |
("if the debugger.plist file changed, force a rebuild" or perhaps there is an underlying bug - debugger port changing each and every launch? Haven't had time to look at that logic yet) |
@cbrunnkvist Unfortunately Titanium does not currently support modifications to the Xcode project (such as adding frameworks) between calls to "titanium build". "titanium build" checks like 27 things (now 26 for simulator builds) and determines if the Xcode project needs to be recreated. Any changes to the generated Xcode project are lost. There are a couple hacks you could do to work around this. The easiest (yet not great) hack would be to go to the Titanium SDK folder (~/Library/Application Support/Titanium/mobilesdk/osx) and duplicate the "3.0.2.GA" folder to "3.0.2.GA-myproject". Activate the SDK by running "titanium sdk select 3.0.2.GA-myproject", then set the in your tiapp.xml to "3.0.2.GA-myproject". Next go into the "3.0.2.GA-myproject/iphone/iphone" directory and add whatever frameworks you use to the Titanium.xcodeproj. If a full rebuild is triggered, then it'll copy this Titanium.xcodeproj to your project's build dir. I know it's a dirty hack, but it should work. The changing of the ports is not a bug. That's by design. |
I might not be testing correctly but I still get a rebuild ever time. |
@euforic To test, debug an iOS app in the simulator. Close the simulator to end the debug session. Change something in your app.js, then re-debug the app in the iOS Simulator. It should not do a full rebuild. If it does a full rebuild, what is the reason? Enable trace log output to see the details. |
@cb1kenobi the problem was there where two sdk versions with the same name so studio was using the wrong one. |
Reviewed and tested. ACCEPTED |
[TIMOB-12933] When debugging from Studio, we only force a rebuild for no...
Just FTR, a custom copy of the 3.0.2 SDK folder and editing the template project through Xcode doesn't work... Something goes wrong later when you try to build - something related to some string substitution... I don't have the build logs in front of me right now, so I can't say exactly what it was. I solved my problem by giving up, letting the project stay on 3.0.0 for now. |
...n-simulator builds since we don't need to force Xcode to sign the app again for simulator builds.