Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 850198ed7d | |||
| aebc1e303d | |||
| 33ddee03ed | |||
| 9b6edaacd7 | |||
| 2c93b1585d | |||
| a3cca1ba5b | |||
| afee84b1bb | |||
| 1e6217fcac | |||
| 01dd05ed25 | |||
| bb3732f32a |
@@ -8,8 +8,8 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
FB2E368C1FAE2A510035B8D6 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = FB2E368B1FAE2A510035B8D6 /* LICENSE */; };
|
||||
FBD3F1E11FB233CE00327054 /* ARVideoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FBD3F1E01FB233CE00327054 /* ARVideoKit.framework */; };
|
||||
FBD3F1E21FB233CE00327054 /* ARVideoKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FBD3F1E01FB233CE00327054 /* ARVideoKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
FBD3F1E61FB260B000327054 /* ARVideoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FBD3F1E51FB260B000327054 /* ARVideoKit.framework */; };
|
||||
FBD3F1E71FB260B000327054 /* ARVideoKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FBD3F1E51FB260B000327054 /* ARVideoKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
FBDCC5E71FABDFC600E3184D /* Scene.sks in Resources */ = {isa = PBXBuildFile; fileRef = FBDCC5E51FABDFC500E3184D /* Scene.sks */; };
|
||||
FBDCC5E81FABDFC600E3184D /* Scene.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBDCC5E61FABDFC500E3184D /* Scene.swift */; };
|
||||
FBDCC60D1FABFE6A00E3184D /* SKViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBDCC60C1FABFE6A00E3184D /* SKViewController.swift */; };
|
||||
@@ -28,7 +28,7 @@
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
FBD3F1E21FB233CE00327054 /* ARVideoKit.framework in Embed Frameworks */,
|
||||
FBD3F1E71FB260B000327054 /* ARVideoKit.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
FB2E368B1FAE2A510035B8D6 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
|
||||
FBD3F1E01FB233CE00327054 /* ARVideoKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARVideoKit.framework; path = Framework/ARVideoKit.framework; sourceTree = "<group>"; };
|
||||
FBD3F1E51FB260B000327054 /* ARVideoKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARVideoKit.framework; path = Framework/ARVideoKit.framework; sourceTree = "<group>"; };
|
||||
FBDCC5E51FABDFC500E3184D /* Scene.sks */ = {isa = PBXFileReference; lastKnownFileType = file.sks; path = Scene.sks; sourceTree = "<group>"; };
|
||||
FBDCC5E61FABDFC500E3184D /* Scene.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Scene.swift; sourceTree = "<group>"; };
|
||||
FBDCC60C1FABFE6A00E3184D /* SKViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SKViewController.swift; sourceTree = "<group>"; };
|
||||
@@ -56,7 +56,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
FBD3F1E11FB233CE00327054 /* ARVideoKit.framework in Frameworks */,
|
||||
FBD3F1E61FB260B000327054 /* ARVideoKit.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -66,7 +66,7 @@
|
||||
FB2E37781FAFD5C20035B8D6 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FBD3F1E01FB233CE00327054 /* ARVideoKit.framework */,
|
||||
FBD3F1E51FB260B000327054 /* ARVideoKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -371,7 +371,7 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DEVELOPMENT_TEAM = TB37P94YA8;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)",
|
||||
@@ -392,7 +392,7 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DEVELOPMENT_TEAM = TB37P94YA8;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="7Ze-pj-Xqd">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
|
||||
@@ -46,7 +46,7 @@ class SKViewController: UIViewController, ARSKViewDelegate, RenderARDelegate, Re
|
||||
recorder?.renderAR = self
|
||||
|
||||
// Configure the renderer to perform additional image & video processing 👁
|
||||
recorder?.onlyRenderWhileRecording = false
|
||||
//recorder?.onlyRenderWhileRecording = false
|
||||
|
||||
// Set the UIViewController orientations
|
||||
recorder?.inputViewOrientations = [.landscapeLeft, .landscapeRight, .portrait]
|
||||
|
||||
@@ -41,12 +41,15 @@ class ViewController: UIViewController, ARSCNViewDelegate, RenderARDelegate, Rec
|
||||
|
||||
// Set the recorder's delegate
|
||||
recorder?.delegate = self
|
||||
|
||||
|
||||
// Set the renderer's delegate
|
||||
recorder?.renderAR = self
|
||||
|
||||
// Configure the renderer to perform additional image & video processing 👁
|
||||
recorder?.onlyRenderWhileRecording = false
|
||||
//recorder?.onlyRenderWhileRecording = false
|
||||
|
||||
// Configure ARKit content mode. Default is .auto
|
||||
//recorder?.contentMode = .aspectFit
|
||||
|
||||
// Set the UIViewController orientations
|
||||
recorder?.inputViewOrientations = [.landscapeLeft, .landscapeRight, .portrait]
|
||||
|
||||
Binary file not shown.
@@ -204,7 +204,7 @@ SWIFT_MODULE_NAMESPACE_PUSH("ARVideoKit")
|
||||
/// <a href="mailto:me@ahmedbekhit.com">Email</a>
|
||||
/// </li>
|
||||
/// </ul>
|
||||
SWIFT_CLASS("_TtC10ARVideoKit15PHLivePhotoPlus")
|
||||
SWIFT_CLASS("_TtC10ARVideoKit15PHLivePhotoPlus") SWIFT_AVAILABILITY(ios,introduced=9.1)
|
||||
@interface PHLivePhotoPlus : PHLivePhoto
|
||||
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
|
||||
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
|
||||
@@ -216,5 +216,7 @@ SWIFT_CLASS("_TtC10ARVideoKit15PHLivePhotoPlus")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SWIFT_MODULE_NAMESPACE_POP
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
# ARVideoKit
|
||||
An iOS Framework that enables developers to capture videos 📹, photos 🌄, Live Photos 🎇, and GIFs 🎆 with ARKit content.
|
||||
|
||||
In other words, you **NO LONGER** have to use *screen recording*/*screenshots* to capture ARKit videos 📹 and photos 🌄!
|
||||
In other words, you **NO LONGER** have to ~screen record~/~screenshot~ to capture videos 📹 and photos 🌄 of your awesome ARKit apps!
|
||||
|
||||
| Table of Contents | Description |
|
||||
| ------------------ |:------------------:|
|
||||
@@ -12,6 +12,7 @@ In other words, you **NO LONGER** have to use *screen recording*/*screenshots* t
|
||||
| [Example Project](#example-project) | Explains how to run the example project provided in this repository |
|
||||
| [Installation](#installation) | Describes the [Manual](#manual) option to install `ARVideoKit` |
|
||||
| [Implementation](#implementation) | Lists the [steps needed](#implementation), [notes](#note), and [reference](#youre-all-set-) for more options |
|
||||
| [Publishing to the App Store](#publishing-to-the-app-store) | Describes the steps **required** before submitting an application using `ARVideoKit` to the App Store. |
|
||||
| [License](#license) | Describes `ARVideoKit` license |
|
||||
|
||||
## Preview
|
||||
@@ -85,14 +86,14 @@ recorder?.prepare(configuration)
|
||||
recorder?.rest()
|
||||
```
|
||||
|
||||
7. Call the [`record()`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-record) method in an appropriate method.
|
||||
7. Call the [`record()`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-record) method in the proper method to start recording.
|
||||
```
|
||||
@IBAction func startRecording(_ sender: UIButton) {
|
||||
recorder?.record()
|
||||
}
|
||||
```
|
||||
|
||||
8. Call the [`stopAndExport()`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-stopandexport_-finished-_-videopath-url-_-permissionstatusphauthorizationstatus-_-exportedbool---swiftvoid--nil) method in an appropriate method.
|
||||
8. Call the [`stopAndExport()`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-stopandexport_-finished-_-videopath-url-_-permissionstatusphauthorizationstatus-_-exportedbool---swiftvoid--nil) method in the proper method to stop recording.
|
||||
```
|
||||
@IBAction func stopRecording(_ sender: UIButton) {
|
||||
recorder?.stopAndExport()
|
||||
@@ -116,6 +117,32 @@ Make sure you add the usage description of the `camera`, `microphone`, and `phot
|
||||
### You're all set. 🤓
|
||||
Check [`RecordAR`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR) documentation for more options!
|
||||
|
||||
## Publishing to the App Store
|
||||
Before publishing to the App Store make sure to add the [ARVideoKit License](#license) to your app licences list.
|
||||
|
||||
Additionally, you MUST **strip out the simulator architectures** from the framework before pushing an application to the App Store.
|
||||
|
||||
To do so, follow those steps:
|
||||
|
||||
1. Install Carthage
|
||||
> Download `Carthage.pkg` [from here](https://github.com/Carthage/Carthage/releases)
|
||||
|
||||
> Or install with Homebrew using this command `brew install carthage`
|
||||
2. Go to your project target's `Build Phase`
|
||||
<img width="684" alt="screen shot 2017-11-14 at 8 21 44 pm" src="https://user-images.githubusercontent.com/4106695/32813978-e70ae5a0-c97a-11e7-9d19-3ef434e4c4f1.png">
|
||||
|
||||
3. Add a new `Run Script Phase`
|
||||
<img width="686" alt="screen shot 2017-11-14 at 8 22 14 pm" src="https://user-images.githubusercontent.com/4106695/32814003-0ab4cffc-c97b-11e7-97d0-cf3143afec6d.png">
|
||||
|
||||
4. Add the following command to the `Run Script Phase`
|
||||
```
|
||||
/usr/local/bin/carthage copy-frameworks
|
||||
```
|
||||
<img width="676" alt="screen shot 2017-11-14 at 8 30 12 pm" src="https://user-images.githubusercontent.com/4106695/32814033-3302bece-c97b-11e7-867c-e8707ac7dd6b.png">
|
||||
|
||||
5. Finally, add `ARVideoKit.framework` file path as an `Input File`. In my case, I have it in a folder named `Frameworks` inside my project folder
|
||||
<img width="672" alt="screen shot 2017-11-14 at 8 41 06 pm" src="https://user-images.githubusercontent.com/4106695/32814258-327bd048-c97c-11e7-8148-8d606d545214.png">
|
||||
|
||||
## [License](LICENSE)
|
||||
Copyright 2017 Ahmed Fathi Bekhit
|
||||
|
||||
|
||||
Reference in New Issue
Block a user