Creating an IPA, "contains multiple products" - iphone

I am working on an email client based on ReMail. Basically, I reused the ReMail project so that the MailCore etc dependencies would be all set up out of the box so I could build a new app on top of them. I'm trying to give the app to some beta testers via ad hoc, but when I try to create an IPA, I receive this error:
xxxx does not contain a single–bundle application or contains multiple products. Please select another archive, or adjust your scheme to create a single–bundle application.
I have set Skip Install to YES for all dependencies, and moved all files under Copy Header to the "project" section, but I am still unable to build a single APP file.
I don't know if this is significant, but when I open up the xcarchive file, within the products directory, I find a the APP file under Applications, and then a file structure mirroring the absolute path to the header files for MailCore.
Any ideas as to what might be going on? I'm very near the tearing-out-chunks-of-hair-in-frustration stage, and I don't think the unnaturally bald crazy person look would suit me.
Thanks!

Try removing the “Copy Headers” phase entirely. It's only supposed to be used for frameworks, not static libraries. The Xcode static library template that includes a “Copy Headers” phase is wrong.
Check out the “Working with Schemes and Projects in Xcode” video from WWDC 2012, starting at 45m10s.

Related

Unity Asset Bundles - Which Files Do I Deploy?

I have created some asset bundles from my Unity assets using the directions given in the Unity documentation section on AssetBundle Workflow. After running the "Build AssetBundles" command, each asset bundle results in four files: myasset, myasset.meta, myasset.manifest, myasset.manifest.meta.
Now I am ready to deploy these bundles to a web server and implement downloading/caching in my Unity project. I have found numerous examples such as this that show the download URL to be a single file with a .unity3d extension. This is leading me to conclude that I am missing a step - I assume that all four of my files will be required by the app and that I have to do something to combine them into a .unity3d file first.
What file(s) do I need to deploy? Are there any additional steps that I need to take before my file(s) are ready to upload? Thanks in advance for any advice!
Just myasset will suffice.
Sometimes people optionally add .unity3d as a filename extension to their Asset Bundles. It is just a community convention, and is completely optional. Source (copied below)
Vincent-Zhang
Unity Technologies
Just a reminder, we don't have an official file extension ".unity3d" for asset bundle, it's not mandatory. You can use whatever file extension as you want, or without file extension.
But usually people use ".unity3d" as the file extension just because we used it in the official sample code at first time...
Unity creates the .meta files for all assets- you don't have to worry about those. In short, your myasset file is enough. I do not add file extensions to mine. Do note that if you use the strategy shown in the example that you shared that the client will re-download the bundle from the server every time. You need to additionally provide a version number if you want to take advantage of caching. You can see this in some of the method overloads here, the ones that have a Hash128 or uint "version" parameter. Caching is great because you can use the bundle that is already saved on the device next time instead of downloading from the server when no changes have occurred. The version/hash number you provide essentially gets mapped to the file name. Whenever a matching version is found, the file on disk is used. Update the version number to something else when the content changes to force the client to download anew.
You may want to reference the .manifest file for the CRC value listed there. You may have noticed a crc parameter in the link I shared as well. This can be used to ensure data integrity during transmission of the bundle data. You can make sure the downloaded content's CRC matches that of the bundle when you created it.

Creating a Lite version of an App using Targets

I would like to create a Lite version of an app, I'm not entirely sure on the process of doing so however. I duplicate the target. Then what? For instance, I changed the name of the duplicated target from AppName Copy, to AppName Lite, and also changed the name of the newly generated plist, however, in products the .app file is still incorrectly named and I can't change it. Is there some sort of official procedure that I could follow?
You need to change product name for target from Build Settings. Follow this blog

Validate causes error during Uploading iphone application

I am trying to upload an iphone application.In the last step I created an archive file and it also available in the organizer window.But when l clicks validate button it shows error.
"My Application does not contain a single–bundle application or contains multiple products. Please select another archive, or adjust your scheme to create a single–bundle application."
In my application have no static libraries .
Please give me a solution...
Thanks in advance
First of all go to the Build Settings, set the "Skip Install" to "Yes" and then
Under the Build Phases, examine the Copy Headers section. If there are any header files listed as Private or Public, drag them down to the Project section.

Do Objective-C unit test resources add to overall file size

I'm quite new to unit testing and I was wondering whether resources specific to the unit test add the the overall size of the app once it is built for the app store?
For example, I'm using set images for testing image manipulation. Will these add to the size of the built app?
They will not if you do not add them to the to the applications main target but the test target.
I assume you are using two targets.
Explanation:
When an application is build, all sources are compiled to objects and linked to each other to form an executable. Parameters are passed to make the application work on the correct platform.
Resources are not part of that. They are added to a folder in the application.
(A .app file is actually a directory, you can see this by right clicking it and select 'Show Package Content')
Files which are not added to your applications target will not be placed in this folder.
So your safe.
Hope this helps you.
I was wondering whether resources specific to the unit test add the
the overall size of the app
They won't if you don't include them in the app target. You'll generally have a separate target for your unit tests, and any resources needed for the tests but not for the app itself, such as test data, should be part of the test target and not part of the app target. You can use the Target Membership pane in Xcode's file inspector (in the Utilities) to set which targets a given file belongs to.

How to build a iPhone/Ipad application builder

What is the approach/methodology to build a iPhone app builder so that end users can develop apps without using code like they are doing in Mobile Roadie. How will the xcodeproj/ipa file will be generated from the website when we create our own app in websites like Mobile Roadie? Thanks in advance.
Well.. Its a Big Question -
First what you need is to crate a fully featured project that mobile roadie gives you when you select all the modules. You need to build this project keeping a settings.xml file in your resource this file should control the modules in your poject like if you want to disable a module in the app then you can disable that from this xml. You can also configure your other parts of the app using this xml like color theme and other settings like mobile roadie provide in there web interface.
Now you need to build a web interface to generate this settings.xml file. User choose modules, color theme, Images etc. and they get entered in the xml file. and finally a settings.xml file gets generated.
Third - now you have to manually download this xml file and drag in your project file and build the app.
Fourth - upload the app on appstore manually. (There is no automatic process for step 3 and 4 you have to do it manually)
Well the above approach is not very precise we your question if very very broad.