diff --git a/README.md b/README.md
index 0b1d051c5..5df3fa725 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,11 @@ Linphone for iPhone depends on liblinphone SDK. This SDK is generated from makef
**The resulting SDK is located in `liblinphone-sdk/` root directory.**
+## Incorporating our SDK in your project
+
+After the SDK has been built, add all the `.framework` files located in `liblinphone-sdk/apple-darwin/Frameworks` to your XCode project Embedded Frameworks.
+Add a Run Script step to your build steps, put it after your step to embed frameworks, set it to use our `deploy.sh` script located in `liblinphone-sdk/apple-darwin/Tools`.
+
## Licensing: GPL third parties versus non GPL third parties
This SDK can be generated in 2 flavors:
diff --git a/Tools/deploy.sh b/Tools/deploy.sh
new file mode 100755
index 000000000..2e04a5946
--- /dev/null
+++ b/Tools/deploy.sh
@@ -0,0 +1,28 @@
+APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
+
+# This script loops through the frameworks embedded in the application and
+# removes unused architectures.
+find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
+do
+ FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
+ FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
+ echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
+
+ EXTRACTED_ARCHS=()
+
+ for ARCH in $ARCHS
+ do
+ echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
+ lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
+ EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
+ done
+
+ echo "Merging extracted architectures: ${ARCHS}"
+ lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
+ rm "${EXTRACTED_ARCHS[@]}"
+
+ echo "Replacing original executable with thinned version"
+ rm "$FRAMEWORK_EXECUTABLE_PATH"
+ mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
+
+done
\ No newline at end of file
diff --git a/linphone-Info.plist b/linphone-Info.plist
index 6d7f9c68c..ea003511e 100644
--- a/linphone-Info.plist
+++ b/linphone-Info.plist
@@ -24,7 +24,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 3.16.4
+ 3.16.5
CFBundleURLTypes
@@ -53,7 +53,7 @@
CFBundleVersion
- 1
+ 2
ITSAppUsesNonExemptEncryption
ITSEncryptionExportComplianceCode
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index 4e81e4aa6..c615a74c2 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -3042,6 +3042,7 @@
1D60588E0D05DD3D006BFB54 /* Sources */,
1D60588F0D05DD3D006BFB54 /* Frameworks */,
8CDC89061EAF89A8006B5652 /* Embed Frameworks */,
+ 8CB438A61EE6A65D0006F944 /* ShellScript */,
);
buildRules = (
);
@@ -3824,6 +3825,19 @@
shellPath = /bin/sh;
shellScript = $SRCROOT/Tools/git_version.sh;
};
+ 8CB438A61EE6A65D0006F944 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = $SRCROOT/Tools/deploy.sh;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -4869,7 +4883,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
- ENABLE_BITCODE = NO;
+ ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
@@ -4924,7 +4938,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
- ENABLE_BITCODE = NO;
+ ENABLE_BITCODE = YES;
ENABLE_NS_ASSERTIONS = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -4973,7 +4987,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
- ENABLE_BITCODE = NO;
+ ENABLE_BITCODE = YES;
ENABLE_NS_ASSERTIONS = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -5022,7 +5036,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
- ENABLE_BITCODE = NO;
+ ENABLE_BITCODE = YES;
ENABLE_NS_ASSERTIONS = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
diff --git a/prepare.py b/prepare.py
index f697c377e..7b8d7393a 100755
--- a/prepare.py
+++ b/prepare.py
@@ -338,6 +338,9 @@ ipa: build
\t&& xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/linphone.app -o $$PWD/linphone-iphone.ipa
zipsdk: sdk
+\trm -rf liblinphone-sdk/apple-darwin/Tools &&\\
+\tmkdir -p liblinphone-sdk/apple-darwin/Tools &&\\
+\tcp -f Tools/deploy.sh liblinphone-sdk/apple-darwin/Tools/.; \\
\techo "Generating SDK zip file for version $(LINPHONE_IPHONE_VERSION)"
\tzip -r liblinphone-iphone-sdk-$(LINPHONE_IPHONE_VERSION).zip \\
\tliblinphone-sdk/apple-darwin \\
diff --git a/submodules/bctoolbox b/submodules/bctoolbox
index e401c0a91..62f10910d 160000
--- a/submodules/bctoolbox
+++ b/submodules/bctoolbox
@@ -1 +1 @@
-Subproject commit e401c0a91f81ff2a22b713151617ba4e7994c855
+Subproject commit 62f10910daba210669af7ec08867942b1bdba973
diff --git a/submodules/cmake-builder b/submodules/cmake-builder
index 5a83566d9..03484fa63 160000
--- a/submodules/cmake-builder
+++ b/submodules/cmake-builder
@@ -1 +1 @@
-Subproject commit 5a83566d9ce58234daa0d7e88f1798e817096f30
+Subproject commit 03484fa6332113033eda07e3a0b000c5f1b7dc02
diff --git a/submodules/linphone b/submodules/linphone
index 8469ebcfc..883606f23 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit 8469ebcfc2aadad6783ba9b8ca17d19e44f1a477
+Subproject commit 883606f238704cc0789c88d048e862aaf76aaf79
diff --git a/submodules/mediastreamer2 b/submodules/mediastreamer2
index b65b55375..880c008c5 160000
--- a/submodules/mediastreamer2
+++ b/submodules/mediastreamer2
@@ -1 +1 @@
-Subproject commit b65b55375b9ff15374d9af5f4936fbc5f1552363
+Subproject commit 880c008c5ee37395e0dd8364beeb7c2656552a9e
diff --git a/submodules/msamr b/submodules/msamr
index aaa046142..d86b907b3 160000
--- a/submodules/msamr
+++ b/submodules/msamr
@@ -1 +1 @@
-Subproject commit aaa046142033c4ec646e0e1b6f3641177490aa10
+Subproject commit d86b907b31eb7ecd6a3fd4409d5c9633d4366164
diff --git a/submodules/mscodec2 b/submodules/mscodec2
index 3fec10bdb..86468a37b 160000
--- a/submodules/mscodec2
+++ b/submodules/mscodec2
@@ -1 +1 @@
-Subproject commit 3fec10bdbc3fa5452874eafe1907969554a2ce46
+Subproject commit 86468a37ba68a497fa45f4bec99c2d27480f9dd7
diff --git a/submodules/msopenh264 b/submodules/msopenh264
index 3a398b400..5544086f4 160000
--- a/submodules/msopenh264
+++ b/submodules/msopenh264
@@ -1 +1 @@
-Subproject commit 3a398b4000f29c67e010057f718c136ca245a9a8
+Subproject commit 5544086f478c13150eda5df683d914ecbf13ea89
diff --git a/submodules/mssilk b/submodules/mssilk
index fef0c397c..3a61f5dec 160000
--- a/submodules/mssilk
+++ b/submodules/mssilk
@@ -1 +1 @@
-Subproject commit fef0c397c1d2dfc3b8b0951e3db0b9b5cb5d34b9
+Subproject commit 3a61f5decf634f5fb311b2c5f2984525fccd81d9
diff --git a/submodules/mswebrtc b/submodules/mswebrtc
index 265c3bf1b..419a98f17 160000
--- a/submodules/mswebrtc
+++ b/submodules/mswebrtc
@@ -1 +1 @@
-Subproject commit 265c3bf1bfae31ed43766afb473782ec7e782898
+Subproject commit 419a98f17430a1ab9b66f436251dd2c1f4103231
diff --git a/submodules/msx264 b/submodules/msx264
index 78bf5cc3b..1898b96a9 160000
--- a/submodules/msx264
+++ b/submodules/msx264
@@ -1 +1 @@
-Subproject commit 78bf5cc3bca0d597b2cbea8178fd68cd67c8edf5
+Subproject commit 1898b96a946c61b866c09c63e60622cf32dd2d2e
diff --git a/submodules/ortp b/submodules/ortp
index 34e829b22..baf804e45 160000
--- a/submodules/ortp
+++ b/submodules/ortp
@@ -1 +1 @@
-Subproject commit 34e829b22a3b0b2e8f0557f31c2ca12be34e2b9b
+Subproject commit baf804e45f0fe9c8f156c76627083cc868fd12db