Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm in need of a open source solution/library to stream RTSP/RTMP to an iOS Application. I need to build an app that connects to a media server, and opens the provided video stream. I believe there has to be libraries out there, but I have yet to find one that is open source, compiles, actually works, and runs on iOS 5+, iPhone 4+. I do not have a preference, RTMP or RTSP will suffice. Preferably the one with the least amount of work. I have RTSP working on the Android side, but nothing for iOS yet.
This is what I already know from research today -
RTSP
Seems possible using Live555/FFMPEG
MooncatVenture Group - Old FFMPEG, not compatible with ARMv7s (No updates/blogs/commits in over a year)
DFURTSPPlayer - This is a working example.
RTMP
Seems possible using Live555/FFMPEG
A few libraries are out there for data messaging, but that is all
MidnightCoders Project - Does not seem video support is build yet, as Audio is not.
I've never messed with anything video related before, so encoding, frame rate, key frame, chunks, etc... is pretty foreign to me. Right now, it seems building a static binary from Live555/FFMPEG is the only solution to my problem. If so, can anyone give me a simple quickstart guide or links to a blog/example someone has out there? I'm not looking for anything crazy, just a simple
Download This - LINK
Compile it like this - LINK
Place it into X Folder in Xcode
Create X Object
Read Stream API here - LINK
If not, anyone want to point me to a working open source library?
Oh yeah, this happens to be my first iPhone app and first time in Objective-C. Awesome first project, yeah?
DFURTSPPlayer is a working example on GitHub. Will have to double check on licensing issues, but with this it is a good place to start for RTSP.
It seems at this time, the only way to do what I want is to create a static binary to use, from complete scratch. Libavcodec, FFMPEG, and Live555 are all under LGPL. Which means, in order to not make my code open source, I would have to allow dynamic linking, so that my app users have the ability to make modifications to the open source libraries I used, whenever they want. The AppStore does not allow dynamic linking, so I am essentially dead in the water unless I want to write it all from scratch. Which, I definitely do not want to do...
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 months ago.
Improve this question
I am planning on building a Lua scripting engine into my iOS game engine to allow AI designers to control the game's AI. The game engine is written in Swift and SpriteKit and targets iOS on iPhone and iPad.
I have been reading lots of conflicting information online about whether Apple allows the execution of Lua scripts inside an iOS app. Does anyone know whether Apple allows this, as of 2022? I have found some answers online, including on StackOverflow, but some sources claim Apple allows this capability, and some say Apple does not.
There seems to be some distinction between downloading and executing scripting code, vs just executing the scripting code. I am Ok with bundling the Lua scripts into the packaged iOS bundle. I'd like to be able to dynamically download the Lua scripts, but it is not a requirement.
Note that I am able to include a copy of the Lua code in my Xcode project, included a bridging header with some Objective-C wrapper files, and can successfully call and execute Lua functions from Swift code, and vice versa. So technically this technique is possible, my question concerns whether Apple allows this.
In addition, in searching for an answer to this question, it appears that very few iOS games support modding. I was only able to find 2 or 3 games in which players claimed it was possible to write a mod for the iOS version of the game, but for even those, it was a little unclear whether the games actually allowed the mod on the mobile version. Mindustry was the only game that I could find in which you could install a mod on iOS. It is unclear to me whether the lack of modding support on iOS was due to Apple not allowing iOS apps to execute scripting code, which would effectively eliminate most games' modding capability, or whether the lack of modding on iOS was just because it's mostly PC gamers who write mods for their games. Mobile gamers just don't get into modding. So if anyone knows of any iOS games that support modding, especially via Lua scripts, could you post the name of the game?
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
After hours of searching, I found like many others that Windows fails to find the driver for my Verizon Ellipsis Tablet. Following the instructions on the support site was no help. Previous forum posts had no solution. My tablet also did not have the drivers on it for ease of install. My solution involves modifying google usb drivers for android to include these devices. I will post the answer as soon as I am allowed to do so.
I am using the Ellipsis Kids but I imagine this will also work for the 7, 8, etc.
Use the official driver if you can find it. Check the support site first.
If you cannot, you may choose to try the following for your own device at your own risk;
Install the google android usb drivers (available through android
sdk manager)
Enable usb debugging on your ellipsis if not done so already; Apps >
Settings > About tablet then tap Build number 7 times
I set usb mode on my device to media via the developer menu (these options vary depending on the device you have)
In device manager find the errored driver device and open its
properties
In the details tab select hardware id's from the drop down and keep
this open
you should see some id values that may very slightly from what i
have below; USB\VID_0408&PID_3883&REV_????&MI_00
USB\VID_0408&PID_3883&MI_00
Now navigate to C:\Program Files
(x86)\Android\android-sdk\extras\google\usb_driver or similar
I suggest you make a duplicate of this folder and work within the
duplicate
Edit android_Winusb.inf with notepad or similar
I added the following lines under [Google.NTamd64] and also under
[Google.NTx86];
;Ellipsis Kids
%SingleAdbInterface% = USB_Install, USB\VID_0408&PID_3883&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_0408&PID_3883&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_0408&PID_3883&REV_9999&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_0408&PID_3883&REV_????&MI_01
You'll note that I made different variations of revision and you
may or may not have to do the same.
You will need to use your own device hardware id's above that you
found earlier (note they can be right click copied)
Save the file
Then navigate to C:\Users\.android and make a
backup of adb_usb.ini
Edit the original adb_usb.ini with notepad or similar
Add the vendor ID 0x408 to the last line in the file
Save the file
Now just go to update the driver through device manager
Point it to the new usb directory you duplicated with the modified
android_Winusb.inf file
Install anyways even though the publisher cannot be verified
Violla I can now download my game to the device
Once actually attempting to send somethign to your device it will
request your approval
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
As someone who has never developed an iOS app but hopes to soon and has never had a Mac (to date) the whole XCode and process for developing apps was a little lost on me.
To start: things like which languages are supported in development was one area I wasn't sure of:
I've seen C, C++ and Objective-C referenced as the languages used to write the apps. But I've also seen JavaScript` + HTML + CSS and .NET as options and a host of other compiled languages, with people arguing if you can or can't use them.
Another thing I wondered about was Xcode, does it support all the mentioned languages? Or is an IDE built for a specific language such as Cocoa ? If it is, then how would someone use JavaScript for example to write the app?
I'm sure this is a fairly simple answer to Apple users, but I had some struggle trying to relate from a non-Apple background.
Updated
Thanks for the great answers and insight, hopefully other this post will be helpful to others who don't have an Apple / iOS background
All three language alternatives that you mentioned are available to iOS application developers *.
Objective-C/C++ offers a way of making native apps for iOS, you produce machine code that runs on the devices. You use Xcode to develop in these languages.
You can build apps in JavaScript + HTML + CSS because iOS comes with a browser. Apple offers a mode that gives your apps a completely native look and feel, so they do look like first-class citizens.
You can build your apps in C# as well by using Mono Touch. This is different from .NET, although the language is the same, because your code is compiled into binary ahead of time. Although using Mono Touch eliminates the learning curve associated with the new language, you need to go through a fair bit of learning to adapt your knowledge of .NET to a different platform.
* Except Cocoa, which is not a language, but a collective name for Apple's frameworks for developing under OS X and iOS.
iOS' native language is Objective-C. While it's true you can use C++ to make apps (Cocos for example, is mostly written in C++) it isn't the 'native language'.
As for the other languages you mention, while it's possible to create apps using them they won't be 'native' normally relying upon another IDE/Library, phone gap or adobe air for example. Most of these also support cross platform development.
Where I work we also use HTML5 to create a 'faux native' interface/experience.
If you're new to iOS it's worth while checking out Apple documentation/sample code at:
https://developer.apple.com
There is a wealth of knowledge there that should set you on the right path. It ins't however, something I'd recommend if you don't have any experience with object orientated programming.
Coming from a C++ background myself, I didn't find it too difficult but have been working on iOS for about 3 years (on and off) and am only just starting to really become truly fluent in it's processes and conventions.
Hope this helps, let me know if you want to know anything specific.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 9 years ago.
Improve this question
Do they use some algorithm such as the ones used in GDIFF program?
Do they ship the intermediate code to the user instead of iOS binary?
Why is it not possible do do a Delta update while updating iOS on Windows?
A delta update is defined as 'an update that only requires the user to download the code that has changed, not the whole program.'
iOS does, in fact, perform delta updates, and contradictory to Ralph's comment, we know exactly how it works.
Applications
For iOS applications, delta updates are used to minimize the download size of new versions, to save internet traffic. Usually, the things that give a program most of its size are the static images and other media. During a simple update such as a bug fix, usually these static images stay the same, and there is no reason to send them over the network again. The only thing that is sent is the actual Mach-O binary containing the code that is buggy, along with whatever files have been changed.
So, delta updates most likely run by checksumming. When you submit an app update, Apple checks the checksum of all files submitted using some algorithm (most likley SHA1 or MD5) to scan for changes. If the executable has changed, but a certain image or other file has not, the image isn't packed with the update, as users have already downloaded it, and don't need to download it again. While this method may not pertain exactly to the definition of a delta update, as it includes executables along with other types of files, it has very similar concepts.
OTA Updates
Apple uses delta updates in over-the-air updates for iOS as well. This is visible on any jailbroken iOS device. Updates are downloaded to /var/MobileSofwareUpdate/softwareupdate.xxxx, where xxxx presumbably is the build/release number. Each software update contains an image of the root filesystem, but not the entire version of iOS is included. Only the files that have changed from the version the user is currently on need to be replaced, and so only those files are included in the update package. The method for finding these changes is likley to be the same as with iOS apps, where checksumming finds changes in the files.
Algorithm
Basically, to answer your question, Apple's algorithm doesn't send the differences between two individual files (similar to what you see in a git commit), but sends the entire updated file. Their 'algorithm' just looks for any change at all between the last version, and doesn't look for the actual change itself. This is proven by the fact that in OTA update packages, the complete files are available, and not just a log of the changes.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Is there a logging framework for iOS that could aid developers in diagnosing app crashes?
You may like:
Lumberjack: stable and traditional
"It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for Objective-C, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the Objective-C runtime."
LibComponentLogging: beautiful and hardcore, used by RestKit
"LibComponentLogging is a small logging library for Objective-C applications on Mac OS X and the iPhone OS which provides conditional logging based on log levels and log components. Additionally, different logging strategies can be used, e.g. writing log messages to a file or sending them to the system log, while using the same logging interface."
NSLogger: fancy with a dedicated visualization OS X App
"NSLogger is a high perfomance logging utility which displays traces emitted by client applications running on Mac OS X or iOS (iPhone OS). It replaces your usual NSLog()-based traces and provides powerful additions like display filtering, image and binary logging, traces buffering, timing information, etc."
I know this post is old but I'm looking for one as well. I found one called Lumberjack, though I haven't tried it yet.
I created a simple logging framework that might help. I'd appreciate any feedback you have. Hope it helps.
Link to Project Page
This previous question seems to overlap. But the bottom line is:
NSLog(#"message");
or:
printf("message");
I have a slightly different need: not only do I want to debug crashes, but I also need to debug other errors (NSError, NSException).
I tried all 3 packages mentioned in IlDan's answer. However, all of them require me to adopt a new way of logging, which may not be compatible with the libraries I depend on. For example, I intended to adopt NSLogger but RestKit, which is an important library in my project, uses LibComponentLogging.
So I ended up with writing a small pod (https://github.com/kennethjiang/Teleport-NSLog) for that. The mechanism is to redirect stderr (where NSLog + all these logging frameworks write messages to) to a backend HTTP server. Now I can debug my app running in user's device just as if it was running in my xcode. :)
For basic logging use NSLog(#"your message here")
If you want more flexible logging look into Lumberjack. It can let you disable logging in production etc etc.