Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(760)

Unified Diff: webrtc/build/ios/SDK/README

Issue 1829783003: Build dynamic framework with podspec for Objective-C API. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Import Foundation instead of UIKit Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/build/ios/SDK/PodTest/Podfile ('k') | webrtc/build/ios/SDK/WebRTC.podspec » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/build/ios/SDK/README
diff --git a/webrtc/build/ios/SDK/README b/webrtc/build/ios/SDK/README
new file mode 100644
index 0000000000000000000000000000000000000000..c234617bcad6daac8a8e8f3b5c9664b889762cdb
--- /dev/null
+++ b/webrtc/build/ios/SDK/README
@@ -0,0 +1,50 @@
+We want to generate a dynamic framework for a CocoaPod. Unfortunately, using gyp-xcode generation
+for a framework currently presents some issues. To get around those issues, we chose to create a
+project with Xcode for building the framework directly.
+
+The Framework directory contains the Xcode project used to build the framework. The PodTest
+directory contains a project used to confirm that the built framework installs correctly with
+CocoaPods. The build_ios_framework.sh script needs to be run first, then `pod install` should be run
+in the same directory as the Xcode project. After installing, the PodTest.xcworkspace should be used
+instead of PodTest.xcodeproj.
+
+USAGE
+To build the framework, run the build_ios_framework.sh script. This will build static libraries for
+iOS (via the build_ios_libs.sh script), collect header files and adjust import/include statements
+for use inside the framework, build the framework using the Xcode project, merge multiple
+architectures together, and collect the framework files (the .framework itself and the .dSYM) with
+the Podspec into a common directory.
+
+DETAILS OF THE XCODE PROJECT
+The Xcode project contains relative references to the built static libraries (from
+build_ios_libs.sh), with the exception of librtc_api_objc and librtc_base_objc. The iOS source files
+from webrtc/api/objc and webrtc/base/objc are also included. NOTE: This will require updating
+if/when the built static libraries change.
+
+The flattened header files for webrtc/api/objc and webrtc/base/objc were also added to the Public
+Headers of the framework target. NOTE: This will require updating as the Obj-C API changes.
+
+Preprocessor definitions were copied from a gyp-xcode generated project.
+
+RTTI was disabled due to compiler errors and based on the setting in build/common.gypi
+(https://code.google.com/p/chromium/codesearch#chromium/src/build/common.gypi&q=rtti&sq=package:chromium&type=cs&l=5069).
+
+Bitcode is disabled for the time being.
+
+The minimum number of system frameworks were linked against based on build errors (currently
+AVFoundation, AudioToolbox, CoreMedia, VideoToolbox).
+
+The Build Products Path (SYMROOT) was changed to $SRCROOT/build so the build products are in a known
+location.
+
+The created WebRTC scheme was shared so the build_ios_framework.sh script will work on any machine
+that runs it.
+
+DEPLOYMENT_POSTPROCESSING is set to "Yes" so debug symbols will be stripped (the iOS Default for
+STRIP_INSTALLED_PRODUCT is already set to "Yes").
+
+"-ObjC" is added to OTHER_LDFLAGS to ensure category methods (in particular, those from
+RTCAudioSession+Configuration.mm) are included in the framework binary.
+
+During the build process, dSYMs will be generated for each architecture alongside each framework
+bundle. These are merged together and placed alongside the final framework product.
« no previous file with comments | « webrtc/build/ios/SDK/PodTest/Podfile ('k') | webrtc/build/ios/SDK/WebRTC.podspec » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698