Description:
When trying to test Kitchensink Master, I encountered a build failure. Cleaning the project resolved the failure. I retained the original build folder, and if you place the contents back in the project it will fail again.
The failure is logged as:
[TRACE] Undefined symbols for architecture armv7:
[TRACE] "TI::Profiler::s_sharedEnabledProfilerReference", referenced from:
[TRACE] -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE] "TI::UString::UString(char const*)", referenced from:
[TRACE] -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE] "TI::Profiler::profiler()", referenced from:
[TRACE] -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE] "TI::Profiler::startProfiling(TI::TiExcState*, TI::UString const&)", referenced from:
[TRACE] -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE] "TI::Profiler::stopProfiling(TI::TiExcState*, TI::UString const&)", referenced from:
[TRACE] -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE] "TI::UString::utf8(bool) const", referenced from:
[TRACE] -[HprofData writeTraceWithThread:node:] in libti_ios_profiler.a(HprofData.o)
[TRACE] ld: symbol(s) not found for architecture armv7
[TRACE] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR] ** BUILD FAILED **
[ERROR] The following build commands failed:
[ERROR] Ld build/Debug-iphoneos/KitchenSink.app/KitchenSink normal armv7
[ERROR] (1 failure)
This may occur in cases where a project is being updated to use SDK 3.5.0 but has not been cleaned
Steps to reproduce:
1) Take a older project with an existing pre 3.5.0 SDK build folder (I have one that will work for KS but is too large to attach)
2) Do not clean, set SDK to 3.5.0
3) Attempt to build for device
Result:
Build fails as shown above
Expected Result:
Better information about why the build fails and how to rectify
This was unexpected behaviour? Not sure why, you should always clean between; SDKs, platform builds, target builds, testing, modules. Part of the testing process.
Still, no reason why ti build couldn't detect such changes and auto clean.
If we import a project, we should clean.
[~ingo] The challenge is as well when you have existing projects in the workspace and you upgrade. We should probably trigger a clean when selecting a new SDK.
Resolving ticket as Invalid as there is now a new version of Kitchen Sink available and we no longer support the version which relates to this ticket.