| OLD | NEW | 
 | (Empty) | 
|   1 We want to generate a dynamic framework for a CocoaPod. Unfortunately, using gyp
    -xcode generation |  | 
|   2 for a framework currently presents some issues. To get around those issues, we c
    hose to create a |  | 
|   3 project with Xcode for building the framework directly. |  | 
|   4  |  | 
|   5 The Framework directory contains the Xcode project used to build the framework. 
    The PodTest |  | 
|   6 directory contains a project used to confirm that the built framework installs c
    orrectly with |  | 
|   7 CocoaPods. The build_ios_framework.sh script needs to be run first, then `pod in
    stall` should be run |  | 
|   8 in the same directory as the Xcode project. After installing, the PodTest.xcwork
    space should be used |  | 
|   9 instead of PodTest.xcodeproj. |  | 
|  10  |  | 
|  11 USAGE |  | 
|  12 To build the framework, run the build_ios_framework.sh script. This will build s
    tatic libraries for |  | 
|  13 iOS (via the build_ios_libs.sh script), collect header files and adjust import/i
    nclude statements |  | 
|  14 for use inside the framework, build the framework using the Xcode project, merge
     multiple |  | 
|  15 architectures together, and collect the framework files (the .framework itself a
    nd the .dSYM) with |  | 
|  16 the Podspec into a common directory. |  | 
|  17  |  | 
|  18 DETAILS OF THE XCODE PROJECT |  | 
|  19 The Xcode project contains relative references to the built static libraries (fr
    om |  | 
|  20 build_ios_libs.sh), with the exception of librtc_api_objc and librtc_base_objc. 
    The iOS source files |  | 
|  21 from webrtc/api/objc and webrtc/base/objc are also included. NOTE: This will req
    uire updating |  | 
|  22 if/when the built static libraries change. |  | 
|  23  |  | 
|  24 The flattened header files for webrtc/api/objc and webrtc/base/objc were also ad
    ded to the Public |  | 
|  25 Headers of the framework target. NOTE: This will require updating as the Obj-C A
    PI changes. |  | 
|  26  |  | 
|  27 Preprocessor definitions were copied from a gyp-xcode generated project. |  | 
|  28  |  | 
|  29 RTTI was disabled due to compiler errors and based on the setting in build/commo
    n.gypi |  | 
|  30 (https://code.google.com/p/chromium/codesearch#chromium/src/build/common.gypi&q=
    rtti&sq=package:chromium&type=cs&l=5069). |  | 
|  31  |  | 
|  32 Bitcode is disabled for the time being. |  | 
|  33  |  | 
|  34 The minimum number of system frameworks were linked against based on build error
    s (currently |  | 
|  35 AVFoundation, AudioToolbox, CoreMedia, VideoToolbox). |  | 
|  36  |  | 
|  37 The Build Products Path (SYMROOT) was changed to $SRCROOT/build so the build pro
    ducts are in a known |  | 
|  38 location. |  | 
|  39  |  | 
|  40 The created WebRTC scheme was shared so the build_ios_framework.sh script will w
    ork on any machine |  | 
|  41 that runs it. |  | 
|  42  |  | 
|  43 DEPLOYMENT_POSTPROCESSING is set to "Yes" so debug symbols will be stripped (the
     iOS Default for |  | 
|  44 STRIP_INSTALLED_PRODUCT is already set to "Yes"). |  | 
|  45  |  | 
|  46 "-ObjC" is added to OTHER_LDFLAGS to ensure category methods (in particular, tho
    se from |  | 
|  47 RTCAudioSession+Configuration.mm) are included in the framework binary. |  | 
|  48  |  | 
|  49 During the build process, dSYMs will be generated for each architecture alongsid
    e each framework |  | 
|  50 bundle. These are merged together and placed alongside the final framework produ
    ct. |  | 
| OLD | NEW |