couchbaselabs / ToDoLite-iOS

To-Do list sample app for Couchbase Lite, native iOS version
85 stars 41 forks source link

Warnings building on Xcode 6.0.1 #18

Closed msmollin closed 9 years ago

msmollin commented 9 years ago

I followed the instructions in the readme for building this, but on Xcode 6.0.1 I'm seeing lots of linker warnings which I'm assuming is ultimately why I'm failing to build.

Example Warning:

(null): warning: (i386) /Users/jenkins/jenkins/workspace/build_cblite_ios_102-enterprise/couchbase-lite-ios/build/CouchbaseLite.build/Release-iphonesimulator/CBL iOS library.build/Objects-normal/i386/CBLChangeTracker_Tests.o unable to open object file

Screenshot:

screen shot 2014-10-02 at 8 43 49 pm

msmollin commented 9 years ago

Of note, I downloaded the Enterprise version of the framework, not the community version, off the main couchbase website. Should I be using the one linked in the readme?

msmollin commented 9 years ago

This is apparently actually an issue with the main couchbase framework in 1.0.2 including enterprise

https://github.com/couchbase/couchbase-lite-ios/issues/460

snej commented 9 years ago

The warnings won't cause build failures; they just reflect an issue with locating the debug symbols. If your build is failing then it's for some other cause. I'd have to see the actual error that caused the build to fail. (And please attach textual logs, not screenshots!)

There is no difference between the Community and Enterprise builds of Couchbase Lite.

msmollin commented 9 years ago

Yeah I wound up heading over to the Google Group and found that changing the project build settings to not build a dSYM removed the warnings. However, my build failure is linker failure related (which is what made me think they were related).

It appears that my failure is related to Xcode looking for the target name (ToDoLite7.app) whereas the target is producing ToDoLite.app

Ld /Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Products/Debug-iphonesimulator/ToDoLiteTests.xctest/ToDoLiteTests normal i386
    cd /Users/msmollin/coding/git_projects/ToDoLite-iOS
    export IPHONEOS_DEPLOYMENT_TARGET=7.0
    export 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"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk -L/Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Products/Debug-iphonesimulator -F/Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Products/Debug-iphonesimulator -F/Users/msmollin/coding/git_projects/ToDoLite-iOS/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/Developer/Library/Frameworks -filelist /Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Intermediates/ToDoLite.build/Debug-iphonesimulator/ToDoLiteTests.build/Objects-normal/i386/ToDoLiteTests.LinkFileList -bundle_loader /Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Products/Debug-iphonesimulator/TodoLite7.app/TodoLite7 -Xlinker -objc_abi_version -Xlinker 2 -framework XCTest -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.0 -framework XCTest -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker /Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Intermediates/ToDoLite.build/Debug-iphonesimulator/ToDoLiteTests.build/Objects-normal/i386/ToDoLiteTests_dependency_info.dat -o /Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Products/Debug-iphonesimulator/ToDoLiteTests.xctest/ToDoLiteTests

ld: file not found: /Users/msmollin/Library/Developer/Xcode/DerivedData/ToDoLite-amtggzxedwjyizfeoyddzmjunxcz/Build/Products/Debug-iphonesimulator/TodoLite7.app/TodoLite7

I see specific overrides for this in the target portion of the project file for TodoLite7, specific in the testing target. I'm unsure if that would cause issues just trying to run the iPhone Simulator, but XCTest is kinda deeply embedded in Xcode these days, so maybe?

msmollin commented 9 years ago

Just tested changing those settings to not include the 7, and that fixed the build issue.

If I change the Bundle Loader settings in the Testing Target, the build will compile.

If you want a PR I can build one for you?

snej commented 9 years ago

Sure, please send a PR!

I suspect Xcode 6 has changed the way it auto-creates schemes, in that it now forces the test target to build along with the app. Since we don't have any unit tests in ToDoLite we never used to build the test target so we didn't notice it had build errors. And any of us who already had the project checked out before Xcode 6 won't see the change because we already have schemes that don't build the tests...

msmollin commented 9 years ago

Done! https://github.com/couchbaselabs/ToDoLite-iOS/pull/19

snej commented 9 years ago

Thanks again for reporting and fixing this.