instructure / CKRefreshControl

A pull-to-refresh view for iOS 5, 100% API-compatible with UIRefreshControl in iOS 6
MIT License
292 stars 57 forks source link

building for iOS device #5

Closed johnhaitas closed 11 years ago

johnhaitas commented 11 years ago

CKRefreshControl is a dependency of a static library

error is as follows:

Undefined symbols for architecture armv7s: "_OBJCCLASS$_CKRefreshControl", referenced from: objc-class-ref in libTGOSDK.a(TGOViewController.o) ld: symbol(s) not found for architecture armv7s clang: error: linker command failed with exit code 1 (use -v to see invocation)

was previously working with changes i made on bad pull request earlier ...

can be fixed by removing ONLY_ACTIVE_ARCH = YES; from Debug configuration

bjhomer commented 11 years ago

Are you removing "ONLY_ACTIVE_ARCH" from your app's build settings, or from CKRefreshControl?

johnhaitas commented 11 years ago

was already removed from app's build settings ... doing so in CKRefreshControl resolved the above error - i don't know why this is a new problem - i suspect it is something i'm doing

bjhomer commented 11 years ago

If you've removed it from your app, then even in the Debug configuration, you'll be building all architectures (armv7, armv7s, and possibly armv6). That means it takes 2-3 times as long to build, which is why it is usually turned off in Debug builds.

If you've changed it in your app, you'll have to change it in CKRefreshControl as well; otherwise when your app tries to build the non-active architecture (armv7s in the case above), CKRefreshControl won't have built it. Unfortunately, I don't know of any way to apply build settings to the entire workspace, so if you want to change it in one project, you'll also have to change it in any other libraries you're building with it.

Does that make sense?

johnhaitas commented 11 years ago

Yeah, thanks for your help - that sorted it out. I had just been working too long yesterday.

Thanks