Share Code Between Device Projects - xcode

I am using ItelliJ and XCode 4.5 to develop a PhoneGap application. I would like to share a lot of the resources used between both projects, but haven't found a good solution yet. I tried symbolic links but that doesn't end up working well. Is there a way for me to do this without having to make sure I have code in sync between devices?

I divide project on several parts:
"www" project, which contains html/js/css
android project
ios project
Android and ios projects repos have "www" project repo as submodule(I use git).
I also create separate folders ios and android in "www" project.
In index.html I analyze user agent string and include appropriate phonegap.js file.
Example.

Related

Regenerate XCFramework if there is a code change

I have a Demo project and Framework which can be integrated with multiple ways(Cocoapods, SPM - using generated XCFramework, directly integrate with XCFramework)
For distributing Demo app to external users we integrate the Framework with SPM.
Problem with this approch is during development its makes really hard to regenerate XCFramework after each change, so I have decided to drag and drop the Framework's project to Demo app, but cant understand how to recompile XCFramework if there is a change.
Could you please help me with understading how to handle this scenario.
Create an .xcworkspace that contains the framework project and the demo app project side by side, then inside the demo app target General settings (see screenshot), add the .framework file from the framework project within the workspace instead of depending on the .xcframework binary file directly.
After that, add a "Copy File" build phase that embeds the framework file.

Xcode: how to work with library/framework conveniently while keeping code private towards others?

I have been following this tutorial: https://medium.com/better-programming/create-swift-5-static-library-f1c7a1be3e45
However, it is inconvenient to copy the new .a file every time I make a change to the library. What is the common setup during development of the static library? Do a "copy to iOS project folder" in the build script or linking the frameworks "Products" folder in the iOS project etc.?
During development, Subprojects seem to be a really useful way (https://www.raywenderlich.com/2658-creating-a-static-library-in-ios-tutorial). However, copying the project to another computer renders it useless as it seems to rely on the Subproject and not e.g. cache the data from the last build.
The background is that I want to work with a client that I don't want to give access to my private API.
I am looking for a solution that lets me
work on the project as well as the library conveniently (either by submodules or by having opened 2 Xcode windows at the time)
commit changes to the Git repo (via the Xcode Source Control) and automatically have the compiled framework being pushed, too
have my be able client to use my Project and work on the Project but only has access to the compiled library so he can't see what's inside it

Custom Config for Publishing to File System

I am having a MDHA Project and I am deploying to Devices and to the Web.
Is it possible (like in usual VS Projects) to have an custom Config, which calls a batch script on anything like this to publish the files on a file System?
Actually when i create a custom Config, it will also try to deploy it as an APP.
Thanks Markus
If I understand your question correctly, you want to use the same set of web assets (HTML, CSS, Javascript. etc.) to build both a hybrid app and a web site. I have a similar situation where my assets are part of an existing ASP.NET project.
I created a companion MDHA project and reused the assets by adding a target & task to the MDHA project file that copies the assets from the ASP.NET project to the MDHA project directory. Even though the assets are not part of the MDHA project definition (i.e., they are not present as items in the project file), this approach works because MDHA looks for files under the project directory on disk.
Of course, all of this depends on having web assets that are available at build-time.

CordovaLib missing with Phonegap2.0.0

I am learning phonegap thru online tutorials.
I was creating facebook integration dummy app in xcode using phonegap by following step by step tutorial given at https://github.com/davejohnson/phonegap-plugin-facebook-connect
I was able to setup everything but one step where I was asked to add CordovaLib class path to XCODE was not working for me, I tried searching CordovaLib with downloaded and extracted phonegap(2.0.0) but couldn't find same.
At last, after spending good amount of time on google I could get CordovaLib from GITHUB and able to compile my project and make it work.
My question is, if CordovaLib is must for phonegap integration with Xcode, why is it not shipped with phonegap download ?
What is the best way to get CordovaLib in future for newer phonegap versions ?
There is no need anymore.
Note: Starting with Cordova 2.2, the project will have a copy of CordovaLib within it instead of having a dependency on the copy of CordovaLib from your Cordova installation.
guide_getting-started_ios

Xcode: How to use separate Projects with cross-project references to embed a framework in your application?

I am using Xcode 4.3.
I have an existing Xcode Project (originally created in Xcode 3) for a embeddable Mac OS X Framework. This Project has a few Targets, but the primary Target in this project is for my Framework. This Framework is designed to be embedded in Mac Apps and has the appropriate Installation Directory properties set. (#executable_path/../Frameworks)
I have a new Xcode Project (created just now in Xcode 4) for a Mac OS X Application. There is only a single Mac App Target in this Project.
I would like to combine my old Framework Project and/or Target into the new App Project so that I can build both the App and Framework from source in a single, combined build process. (I have done this in Xcode 3 many times, but cannot figure it out in Xcode 4).
I do not (unless it's the only way) want to build my Framework separately and then just link to it from my App Project. I want to combine the Framework Target into my Mac App Project.
Here's Apple's outdated documentation describing how to do what I want in Xcode 3:
Embedding a Private Framework in Your Application Bundle > Using Separate Xcode Projects For Each Target
How do you do this in Xcode 4?
Note: I just need to know how to add my Framework Target to the new Project. From there, I know how to add the dependencies and do all the Build Phases of linking and copying the built Framework into the app bundle.
After working through a tricky issue in Xcode 4.3.1, I discovered how to do this. I've given a full/detailed example in my answer to another question about how to embed ParseKit in a Mac App.
I also found excellent information on the topic in Chapter 16 of Mastering Xcode 4 by Joshua Nozzi.
You actually have 2 separate Xcode project files here: Application and Framework. The answer is the section below the one you find: Using Separate Xcode Projects For Each Target
Edit:
OK. Now I remember. You need to create a workspace and add both projects to it. Then you can add target in one project to the other for dependency: Adding an Existing Project to a Workspace
I don't have all the details since I don't have a Mac now. But I think you can figure it out once you created the workspace.

Resources