Skip to content
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

Fix manual installation instructions #10

Merged
merged 1 commit into from Nov 11, 2016
Merged

Conversation

warpling
Copy link
Contributor

After many hours and the help of some friends I discovered the missing steps necessary to compile this library. Hopefully adding these can help save future devs some time and clarify how to use the library alongside Cocoapods :)

@msanders
Copy link
Contributor

@warpling Sorry to hear that - thanks for adding clarification to the install instructions. I'll look into adding CocoaPods support if it makes installation easier for everyone familiar with it. Glad to hear you're interested in the library! Let me know if you have any other feedback.

@msanders msanders merged commit 98a2214 into instacart:master Nov 11, 2016
@warpling
Copy link
Contributor Author

warpling commented Nov 11, 2016

Thanks for the quick merge @msanders. While I was able to get it to compile, I wasn't able to get it to run on device until just now due to the depended upon frameworks (Result.framework, etc) so I'm afraid these instructions still are not complete…

It seems the final necessary step might have been to manually include the 5 dependencies of TrueTime (in addition to TrueTime.framework) in the Embed Frameworks step in Build Phases. Sound right?

@msanders
Copy link
Contributor

Ah, good point. It should only be necessary to link with Result.framework (the others are just used for tests), but that step is currently missing from the README. I believe you can also install this as a CocoaPod.

FWIW, I highly recommend trying out Carthage - it's possible to use this alongside Cocoapods, as it doesn't interfere with the project file, etc.

@warpling
Copy link
Contributor Author

My project is in Obj-C and has dozens of dependencies so switching isn't an easy option, but I will definitely re-try it with Carthage if they can work side-by-side. Might be worth adding that to the README too?

@msanders
Copy link
Contributor

👍 totally, thanks for the feedback. You should be able to get it working by following the steps listed here and here. Basically, just need to:

  • Add a Cartfile in your repo containing instacart/TrueTime.swift.
  • Run carthage bootstrap (which should implicitly build both TrueTime and Result).
  • Add a separate build phase to link TrueTime and Result.

@warpling
Copy link
Contributor Author

Could you clarify that last step? I assume you mean adding TrueTime.framework and Result.framework to Link Binary With Libraries?

@msanders
Copy link
Contributor

Yep, just add a Run Scripts phase with the copy-frameworks script shown on step number 4 in the above link (which should be the same as a Link Binary With Libraries step only it adds a workaround for an app store submission bug).

@warpling
Copy link
Contributor Author

Got it working thank you!! Fingers crossed it works for submission too.
(This sort of minutia is admittedly why I use pods; I like to be hands-off my build system as I tend to break it. 😅)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants