diff --git a/OptimizelySDKUniversal/OptimizelySDKUniversal.xcodeproj/project.pbxproj b/OptimizelySDKUniversal/OptimizelySDKUniversal.xcodeproj/project.pbxproj index 374a0cb8d..cdabc2fbf 100644 --- a/OptimizelySDKUniversal/OptimizelySDKUniversal.xcodeproj/project.pbxproj +++ b/OptimizelySDKUniversal/OptimizelySDKUniversal.xcodeproj/project.pbxproj @@ -1420,7 +1420,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - 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}"; + 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"; }; EAC5F8C11E82EE8E00C087B8 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1892,6 +1892,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BITCODE_GENERATION_MODE = marker; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -1967,6 +1968,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BITCODE_GENERATION_MODE = bitcode; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework.zip b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework.zip index 7c12da34b..d83d8b3e4 100644 Binary files a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework.zip and b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework.zip differ diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Headers/OPTLYUserProfileService.h b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Headers/OPTLYUserProfileService.h index 9172bca0b..d52347c01 100644 --- a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Headers/OPTLYUserProfileService.h +++ b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Headers/OPTLYUserProfileService.h @@ -52,4 +52,12 @@ __attribute((deprecated("Use OPTLYManager initWithBuilder method instead."))); **/ - (void)removeAllUserExperimentRecords; +/** + * Clean up and remove experiments that are not in the valid experiment list passed in. + * This is called when initialized from a remote datafile to ensure that the UserProfileService + * does not grow indefinitely. + * @param validExperimentIds An array of valid experiment ids. If default user profile contains + * experiments not in this list, they are removed from user profile service. + **/ +- (void)removeInvalidExperimentsForAllUsers:(NSArray *)validExperimentIds; @end diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Info.plist b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Info.plist index 71e0df70d..ed39879c4 100644 Binary files a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Info.plist and b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/Info.plist differ diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/OptimizelySDKiOS b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/OptimizelySDKiOS index 066625a93..4f750f7bf 100755 Binary files a/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/OptimizelySDKiOS and b/OptimizelySDKUniversal/generated-frameworks/Release-iOS-universal-SDK/OptimizelySDKiOS.framework/OptimizelySDKiOS differ diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework.zip b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework.zip index 03968eb31..d5a66add9 100644 Binary files a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework.zip and b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework.zip differ diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Headers/OPTLYUserProfileService.h b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Headers/OPTLYUserProfileService.h index 9172bca0b..d52347c01 100644 --- a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Headers/OPTLYUserProfileService.h +++ b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Headers/OPTLYUserProfileService.h @@ -52,4 +52,12 @@ __attribute((deprecated("Use OPTLYManager initWithBuilder method instead."))); **/ - (void)removeAllUserExperimentRecords; +/** + * Clean up and remove experiments that are not in the valid experiment list passed in. + * This is called when initialized from a remote datafile to ensure that the UserProfileService + * does not grow indefinitely. + * @param validExperimentIds An array of valid experiment ids. If default user profile contains + * experiments not in this list, they are removed from user profile service. + **/ +- (void)removeInvalidExperimentsForAllUsers:(NSArray *)validExperimentIds; @end diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Info.plist b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Info.plist index 96dad27b4..cde5ae84e 100644 Binary files a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Info.plist and b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/Info.plist differ diff --git a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/OptimizelySDKTVOS b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/OptimizelySDKTVOS index 9f3db0aa2..89833b90e 100755 Binary files a/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/OptimizelySDKTVOS and b/OptimizelySDKUniversal/generated-frameworks/Release-tvOS-universal-SDK/OptimizelySDKTVOS.framework/OptimizelySDKTVOS differ