Three20/Three20.h file not found for Archive
Asked Answered
S

3

0

I'm trying to update an app that already have the Three20 library. Now i'm using xcode 4.5 and everytime i try to make an Archive i recive this error:

Three20/Three20.h file not found

At the beginning i wasn't able to make any kind of build,but after the adding of $(BUILT_PRODUCTS_DIR)/../three20 and $(BUILT_PRODUCTS_DIR)/../../three20 in the Header Search Path of the build and the target settings i can make a Build in my Device. Anyway if i try to made an Archive to publish my app, the same errors returns. What i can do? I have already reinstall the last version of Three20.... I have to try this solution that i found on internet:

Go to Xcode4 Preferences (Cmd + ,) > Locations > Build Location > and select “Place build products in locations specified by targets”

In xcode 4.5 i can't approach this solution...Maybe Build Location menù is changed, i can't find the option “Place build products in locations specified by targets” .... Someone knows where i can found this setting?

At least there's someone how have made successfully an Archive on Xcode4.5 and Three20?

Sudd answered 19/10, 2012 at 15:10 Comment(0)
C
-2

Three20 has't update in long time.And it has many bugs.set up this framework is very hard.

you can try nimbus.It come from three20.

Nimbus' Background

Nimbus has been built with much inspiration from the Three20 framework. That being said, there are a number of fundamental problems with Three20 that Nimbus works very hard to avoid. Among them:

Poor documentation. Spaghetti dependencies. Suffering from a "kitchen sink" complex. A complex build structure. An enormous number of difficult-to-solve bugs. Next-to-zero test coverage. For its weaknesses, Three20 does provide a good deal of value through its feature set. It is used in over 100 apps in the app store by companies such as Facebook, LinkedIn, Posterous, Meetup, and SCVNGR.

Nimbus hopes to one day provide as much value as Three20 does on a feature-by-feature comparison, but with the invaluable benefit of sublime documentation and test coverage.

Cryotherapy answered 22/10, 2012 at 14:15 Comment(3)
Thanks but how i can do with the old user with the older version of my app? If i publish a new version of my app with Nimbus, the users that made the update will have an app with "with some traces of Three20" or the old library will be completely deleted? I'm sorry i don't know how can works an update made over a library so invasive like three20...Sudd
You need't worry about update.As I know,iOS App's updating will replacing fullyCryotherapy
it seems that both Cri1682 and agassi_yzh (the user who asked and the user who posted the above answer, respectively) haven't been on SO for a while.. so this is an open question: has anyone actually migrated their three20 to Nimbus? how did it go? b/c honestly this three20 business just seems way more trouble than it's worthGodfather
W
2

I also support switching away from three20, but sometimes it's not that simple.

To resolve your issues, you can try to use CocoaPods. it's a library dependencies tool that let's you add any library you need. someone added a pod for three20 few weeks ago.

That should let you build your project using the standard xcode archive process.

If you don't feel like using cocoapods, you can also build that app using the "Build for..." -> "Archiving". you can find it in the same "Product" menu. it will generate a .app file that you can submit using the Application Loader app.

you can find the .app file by secondary clicking on the target name under the "Products" folder in your project sidebar.

Wavemeter answered 23/10, 2012 at 15:54 Comment(1)
unfortunately.. the .app file doesn't replace the .ipa file, when I want to submit my app to entities like testflightGodfather
G
1

I did the following to make it work for me:

  1. for the three20 static library, I used cocoapods to include the files within the main project.. it just got rid of all the trouble three20 was giving me (and they are lots..) btw i tried replacing three20 with Nimbus.. but Nimbus was lacking on some of the features that my project was using three20 for.. so Nimbus wasn't helpful.
  2. set skip install to yes under build settings for all other sub projects/static libraries and switched the copy headers from public to project under build phases
  3. most importantly: under the sub libraries.. under build phases i ensured that copy files destination was changed from Absolute path to products directory.

and that was it!

hint: to get an idea of the offending files that's causing your archive to create an archive file rather than an ipa do this:

  1. Select the archive and click the Distribute button.
  2. Select the 'Save Built Products' option.
  3. Hit Next and Save.
  4. Browse the created directory in Finder.
  5. The 'libraries' subdirectory will identify the libraries that you need to set the Skip Install to Yes.
  6. in some cases usr/local/include will identify the culprit header files you need to move from Public to Project or the files that you have to change from absolute path to products directory. but that directory (ie usr/local/include) varies depending on your sublibrary directory structure
Godfather answered 27/2, 2013 at 19:8 Comment(0)
C
-2

Three20 has't update in long time.And it has many bugs.set up this framework is very hard.

you can try nimbus.It come from three20.

Nimbus' Background

Nimbus has been built with much inspiration from the Three20 framework. That being said, there are a number of fundamental problems with Three20 that Nimbus works very hard to avoid. Among them:

Poor documentation. Spaghetti dependencies. Suffering from a "kitchen sink" complex. A complex build structure. An enormous number of difficult-to-solve bugs. Next-to-zero test coverage. For its weaknesses, Three20 does provide a good deal of value through its feature set. It is used in over 100 apps in the app store by companies such as Facebook, LinkedIn, Posterous, Meetup, and SCVNGR.

Nimbus hopes to one day provide as much value as Three20 does on a feature-by-feature comparison, but with the invaluable benefit of sublime documentation and test coverage.

Cryotherapy answered 22/10, 2012 at 14:15 Comment(3)
Thanks but how i can do with the old user with the older version of my app? If i publish a new version of my app with Nimbus, the users that made the update will have an app with "with some traces of Three20" or the old library will be completely deleted? I'm sorry i don't know how can works an update made over a library so invasive like three20...Sudd
You need't worry about update.As I know,iOS App's updating will replacing fullyCryotherapy
it seems that both Cri1682 and agassi_yzh (the user who asked and the user who posted the above answer, respectively) haven't been on SO for a while.. so this is an open question: has anyone actually migrated their three20 to Nimbus? how did it go? b/c honestly this three20 business just seems way more trouble than it's worthGodfather

© 2022 - 2024 — McMap. All rights reserved.