Giter VIP home page Giter VIP logo

Comments (6)

moredip avatar moredip commented on June 9, 2024

Hey,

Yes, this is an annoying issue. It was discussed on this thread, including a moderately rant post from me about the state of package management in the iOS dev community.

I would happily accept a patch which pulls out cocoahttpserver and cocoaasyncsocket as distinct static libraries. That way someone who is already using cocoaasyncsocket could just not link in that library in their Frank target.

from frank.

monfresh avatar monfresh commented on June 9, 2024

Thanks, Pete. For my purposes, I'm assuming that deleting the "cocoahttpserver" folder under "3rd Party" in "Frank.xcodeproj" will solve my problem. However, I'm not well versed in gem packaging. How would I create a new gem that I can install locally? Any help or links to tutorials will be greatly appreciated!

from frank.

moredip avatar moredip commented on June 9, 2024

You should be able to just build the Frank project in xcode, and then copy the libFrank.a that is produced over the one you're currently linking into your project.

from frank.

monfresh avatar monfresh commented on June 9, 2024

Hi Pete. Thanks for your help. Unfortunately, I'm still not able to build my project with Frank. Now, I'm getting this error:

ignoring file Frank/libFrank.a, file was built for archive which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
"OBJC_CLASS$_SelectorEngineRegistry", referenced from:
objc-class-ref in libShelley.a(SYFrankSelectorEngine.o)
ld: symbol(s) not found for architecture i386

Here is what I did:

  1. Clone the Frank repo on my Mac
  2. Open the Frank Xcode project
  3. Delete all files in the cocoahttpserver folder except for HTTPConnection.h, HTTPResponse.h, HTTPServer.h
  4. Build. This generates libFrank.a in ~/Library/Developer/Xcode/DerivedData/Frank-[blahblah]/Build/Products/Debug-iphoneos/
  5. Run frank-skeleton in my project's root
  6. Replace libFrank.a in the Frank folder that was generated by frank-skeleton with the one from step 4
  7. Continue the Frank installation per the instructions on testingwithfrank.com
  8. Build: I get an i386 error
  9. Go back to the Frank Xcode project and add 2 entries under Debug and Release under Architectures in Build Settings: Any SDK set to Standard (armv7), and Any iOS Simulator SDK set to i386 (which is what I have in my project's build settings)
  10. Build again and repeat steps 6-8. I still get the i386 error. What am I doing wrong? How can I fix this?

Thanks!

from frank.

monfresh avatar monfresh commented on June 9, 2024

I finally figured it out! I had to build the Frank Xcode project for the Simulator target, not iOS Device! Now, I am able to successfully build my project with Frank, and launch the app in the Simulator. However, http://localhost:37265/ is not working. I tried Chrome (oops, this link appears to be broken), Firefox (blank page, 404 in console), and Safari (blank page).

from frank.

moredip avatar moredip commented on June 9, 2024

Do you see debug output along the lines of

Injecting Frank loader
Creating the server: <HTTPServer: 0xbca7270>
Started HTTP server on port 37265

in your Frankified app's console log during startup? If not then that means the frank server is probably not being linked into your app correctly. Do you have the --all_load and -ObjC linker flags set?

from frank.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.