Skip to content

Commit 550de99

Browse files
XCode bitcode issue (#300)
* added BITCODE_GENERATION_MODE in build settings & updated build phase script * added framework & updated build phase script
1 parent 6604759 commit 550de99

File tree

9 files changed

+19
-1
lines changed

9 files changed

+19
-1
lines changed

OptimizelySDKUniversal/OptimizelySDKUniversal.xcodeproj/project.pbxproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1420,7 +1420,7 @@
14201420
);
14211421
runOnlyForDeploymentPostprocessing = 0;
14221422
shellPath = /bin/sh;
1423-
shellScript = "FRAMEWORK_NAME=\"OptimizelySDKiOS\"\nSCHEME_NAME=\"OptimizelySDKUniversal\"\nTARGET_NAME=\"OptimizelySDKiOSUniversal\"\nDEVICE_NAME=\"iphoneos\"\nDEVICE_SIMULATOR_NAME=\"iphonesimulator\"\nPLATFORM=\"iOS\"\nCONFIGURATION=\"Release\"\nBUILD_DIR=\"${PROJECT_DIR}/build/\"\nUNIVERSAL_DIR=\"${PROJECT_DIR}/generated-frameworks/\"\nUNIVERSAL_OUTPUT=\"${UNIVERSAL_DIR}/${CONFIGURATION}-${PLATFORM}-universal-SDK\"\n\nrm -rf \"${BUILD_OUTPUT}\"\nrm -rf \"${UNIVERSAL_OUTPUT}\"\nmkdir -p \"${UNIVERSAL_OUTPUT}\"\n\nxcodebuild -target \"${TARGET_NAME}\" -configuration ${CONFIGURATION} only_active_arch=no defines_module=yes -arch i386 -arch x86_64 -sdk \"${DEVICE_SIMULATOR_NAME}\" OTHER_CFLAGS=\"-fembed-bitcode\" BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\nxcodebuild -target \"${TARGET_NAME}\" -configuration ${CONFIGURATION} only_active_arch=no defines_module=yes -arch armv7 -arch armv7s -arch arm64 -sdk \"${DEVICE_NAME}\" OTHER_CFLAGS=\"-fembed-bitcode\" BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\n# Copy the device framework from the build directory to the universal output directory\ncp -R \"${BUILD_DIR}/${CONFIGURATION}-${DEVICE_NAME}/${FRAMEWORK_NAME}.framework\" \"${UNIVERSAL_OUTPUT}/\"\n\nlipo \"${BUILD_DIR}/${CONFIGURATION}-${DEVICE_NAME}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}\" \"${BUILD_DIR}/${CONFIGURATION}-${DEVICE_SIMULATOR_NAME}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}\" -create -output \"${UNIVERSAL_OUTPUT}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}\"\n\ncd \"${UNIVERSAL_OUTPUT}\"\nzip -r \"${FRAMEWORK_NAME}.framework.zip\" \"${FRAMEWORK_NAME}.framework\"\n\nrm -rf \"${BUILD_OUTPUT}\"\n\n\nopen ${UNIVERSAL_OUTPUT}";
1423+
shellScript = "FRAMEWORK_NAME=\"OptimizelySDKiOS\"\nSCHEME_NAME=\"OptimizelySDKUniversal\"\nTARGET_NAME=\"OptimizelySDKiOSUniversal\"\nDEVICE_NAME=\"iphoneos\"\nDEVICE_SIMULATOR_NAME=\"iphonesimulator\"\nPLATFORM=\"iOS\"\nCONFIGURATION=\"Release\"\nBUILD_DIR=\"${PROJECT_DIR}/build/\"\nUNIVERSAL_DIR=\"${PROJECT_DIR}/generated-frameworks/\"\nUNIVERSAL_OUTPUT=\"${UNIVERSAL_DIR}/${CONFIGURATION}-${PLATFORM}-universal-SDK\"\n\nrm -rf \"${BUILD_OUTPUT}\"\nrm -rf \"${UNIVERSAL_OUTPUT}\"\nmkdir -p \"${UNIVERSAL_OUTPUT}\"\n\nxcodebuild -target \"${TARGET_NAME}\" -configuration ${CONFIGURATION} only_active_arch=no defines_module=yes -arch armv7 -arch armv7s -arch arm64 -sdk \"${DEVICE_NAME}\" OTHER_CFLAGS=\"-fembed-bitcode\" BITCODE_GENERATION_MODE=bitcode BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\n# Copy the device framework from the build directory to the universal output directory\ncp -R \"${BUILD_DIR}/${CONFIGURATION}-${DEVICE_NAME}/${FRAMEWORK_NAME}.framework\" \"${UNIVERSAL_OUTPUT}/\"\n\nxcodebuild -target \"${TARGET_NAME}\" -configuration ${CONFIGURATION} only_active_arch=no defines_module=yes -arch i386 -arch x86_64 -sdk \"${DEVICE_SIMULATOR_NAME}\" OTHER_CFLAGS=\"-fembed-bitcode\" BITCODE_GENERATION_MODE=bitcode BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\nlipo \"${UNIVERSAL_OUTPUT}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}\" \"${BUILD_DIR}/${CONFIGURATION}-${DEVICE_SIMULATOR_NAME}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}\" -create -output \"${UNIVERSAL_OUTPUT}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}\"\n\ncd \"${UNIVERSAL_OUTPUT}\"\nzip -r \"${FRAMEWORK_NAME}.framework.zip\" \"${FRAMEWORK_NAME}.framework\"\n\nrm -rf \"${BUILD_OUTPUT}\"\n\n\nopen ${UNIVERSAL_OUTPUT}\n";
14241424
};
14251425
EAC5F8C11E82EE8E00C087B8 /* ShellScript */ = {
14261426
isa = PBXShellScriptBuildPhase;
@@ -1892,6 +1892,7 @@
18921892
isa = XCBuildConfiguration;
18931893
buildSettings = {
18941894
ALWAYS_SEARCH_USER_PATHS = NO;
1895+
BITCODE_GENERATION_MODE = marker;
18951896
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
18961897
CLANG_ANALYZER_NONNULL = YES;
18971898
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -1967,6 +1968,7 @@
19671968
isa = XCBuildConfiguration;
19681969
buildSettings = {
19691970
ALWAYS_SEARCH_USER_PATHS = NO;
1971+
BITCODE_GENERATION_MODE = bitcode;
19701972
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
19711973
CLANG_ANALYZER_NONNULL = YES;
19721974
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";

OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Headers/OPTLYUserProfileService.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,12 @@ __attribute((deprecated("Use OPTLYManager initWithBuilder method instead.")));
5252
**/
5353
- (void)removeAllUserExperimentRecords;
5454

55+
/**
56+
* Clean up and remove experiments that are not in the valid experiment list passed in.
57+
* This is called when initialized from a remote datafile to ensure that the UserProfileService
58+
* does not grow indefinitely.
59+
* @param validExperimentIds An array of valid experiment ids. If default user profile contains
60+
* experiments not in this list, they are removed from user profile service.
61+
**/
62+
- (void)removeInvalidExperimentsForAllUsers:(NSArray<NSString *> *)validExperimentIds;
5563
@end

OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Headers/OPTLYUserProfileService.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,12 @@ __attribute((deprecated("Use OPTLYManager initWithBuilder method instead.")));
5252
**/
5353
- (void)removeAllUserExperimentRecords;
5454

55+
/**
56+
* Clean up and remove experiments that are not in the valid experiment list passed in.
57+
* This is called when initialized from a remote datafile to ensure that the UserProfileService
58+
* does not grow indefinitely.
59+
* @param validExperimentIds An array of valid experiment ids. If default user profile contains
60+
* experiments not in this list, they are removed from user profile service.
61+
**/
62+
- (void)removeInvalidExperimentsForAllUsers:(NSArray<NSString *> *)validExperimentIds;
5563
@end

0 commit comments

Comments
 (0)