I have created a framework in swift and there is a localizable.strings file which it uses. Is there any way that a user who is using my framework in their app can override this localizable.strings with their own localizable.strings file? What I am looking for is something similar to Strings.xml in android which is overridden by the Strings.xml file in the app which uses the particular SDK.
Related
I am trying to make an ios app with a dylib as framework instead of the standard .framework or .xcframework structure.
Does the app store review work with such a shared library structure.
I see from here that it might not be supported.
https://developer.apple.com/library/archive/technotes/tn2435/_index.html#//apple_ref/doc/uid/DTS40017543-CH1-TROUBLESHOOTING-BUNDLE_ERRORS
https://developer.apple.com/forums/thread/125796
Has anyone tried an app with a dylib inside ? Or it has to be packaged as framework instead ?
From your first link:
Dynamic libraries outside of a framework bundle, which typically have
the file extension .dylib, are not supported on iOS, watchOS, or tvOS,
except for the system Swift libraries provided by Xcode.
That seems unambiguous in saying that you can't include a dynamic library outside a framework.
In an iOS application that depends on ffmpeg, I'm faced with the issue that the App Store does not accept dylibs that are embedded directly in the app bundle. This technical note says
Dynamic libraries outside of a framework bundle, which typically have the file extension .dylib, are not supported on iOS, watchOS, or tvOS, except for the system Swift libraries provided by Xcode
But it's not obvious to me, does this mean that in the case of ffmpeg, I would need one framework per dylib, or am I allowed to package all ffmpeg dylibs into a single framework and use that in my app bundle?
I have very simple requirement for my iOS SDK
-Support iOS 7 and above.
-Include some swift code to my SDK
Problems:
-With iOS 8, Xcode allowed us to develop cocoa touch frameworks, but they can only be run on iOS 8 and above.
-If I create a static library, I cannot include swift code.
-I was using using Real Framework, but Real Framework does not get installed with Xcode 7.
So, What does a poor developer do ?
You can always have an alternative distribution method for your SDK for users that are targeting iOS 7.
You can offer an SDK in a single concatenated file, that is simply merging all your project source files, which user can drop into project tree and compile together with all the other source files. This applies only when you have either Swift-only or Objective-C only SDK
If SDK user uses workspaces, he may embed your SDKs .xcodeproj directly in his project
Anyway both methods require source code distribution as the user needs to compile the code from within his project. Dependency maintenance is also more difficult.
For a reference you can check how it is done in:
https://github.com/SwiftyJSON/SwiftyJSON
It is a Swift library, but integration with iOS 7 based projects is the same.
I could not find any solution for this. I compromised:
I am NOT using swift code.
I am distributing static library (.a file and a .h header file) instead of a framework. (this is to support iOS 7)
I have two projects: One made for the iPad and one for the iPhone. The iPad version is using CoreData and .xib files.
Both project use CocoaPods.
I want to convert each project to a library, make a new universal app, link the two libraries into it and then set the AppDelegate class according to the device.
How can I convert my project to a library ?
I have an iPad app, XCode 4.6.2, Storyboards, iOS 6.0 and ARC. The app runs fine, now I'm trying to localize it, starting with the Storyboards using Base Localization. This is what I see when I go to Proj Info:
When I click on Use Base Internationalization, this is what I get:
Notice that there is NO resource file or reference language to select! Why? and how do I fix this? I have searched SO, Google and found nothing.
UPDATE I don't want to delete this, but the answer is: Base Localization is NOT supported under iOS... bummer!