mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-09 22:35:56 +05:45
Add basics for a working tuist workspace (#5248)
This commit is contained in:
1 parent
7edc6d0ccb
commit
03fbe30807
63 files changed
+2447
-641
No files matched your search
+15
@@ -73,3 +73,18 @@ Local.xcconfig
|
||||
/buildServer.json
|
||||
|
||||
*.orig
|
||||
|
||||
# tuist
|
||||
**/Derived/
|
||||
|
||||
# Tuist workspaces
|
||||
RevenueCat-Workspace.xcworkspace/
|
||||
Projects/**/*.xcodeproj
|
||||
Examples/**/*.xcodeproj
|
||||
|
||||
Projects/**/xcshareddata/
|
||||
Projects/**/*.xcworkspacedata
|
||||
|
||||
Examples/**/.xcworkspacedata
|
||||
Examples/**/*.xcscheme
|
||||
Examples/**/xcshareddata/**
|
||||
@@ -4,6 +4,7 @@ excluded:
|
||||
- Tests/InstallationTests
|
||||
- Tests/TestingApps
|
||||
- Tests/APITesters
|
||||
- Tuist
|
||||
- vendor
|
||||
- scan_derived_data
|
||||
- .git
|
||||
|
||||
@@ -3,171 +3,204 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 54;
|
||||
objectVersion = 55;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
4E9E1B2E2CAD38EC00B51150 /* RevenueCat in Frameworks */ = {isa = PBXBuildFile; productRef = 4E9E1B2D2CAD38EC00B51150 /* RevenueCat */; };
|
||||
4E9E1B302CAD38EC00B51150 /* RevenueCatUI in Frameworks */ = {isa = PBXBuildFile; productRef = 4E9E1B2F2CAD38EC00B51150 /* RevenueCatUI */; };
|
||||
5539DF1D258806A10073FB19 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5539DF1C258806A10073FB19 /* Errors.swift */; };
|
||||
5539DF2025880AB80073FB19 /* WeatherViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5539DF1F25880AB80073FB19 /* WeatherViewController.swift */; };
|
||||
5539DF24258A9AA70073FB19 /* SampleData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5539DF23258A9AA70073FB19 /* SampleData.swift */; };
|
||||
5539DF2D2592A07A0073FB19 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5539DF2C2592A0790073FB19 /* SplashScreen.storyboard */; };
|
||||
5539DF302592A0C30073FB19 /* SplashScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5539DF2F2592A0C30073FB19 /* SplashScreenViewController.swift */; };
|
||||
5575FD49258801DE001B2F0D /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5575FD48258801DE001B2F0D /* UserViewController.swift */; };
|
||||
5576344325A3C08400C0486A /* PackageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5576344225A3C08400C0486A /* PackageCell.swift */; };
|
||||
5582ECD72587EF8500ACB34B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5582ECD62587EF8500ACB34B /* AppDelegate.swift */; };
|
||||
5582ECD92587EF8500ACB34B /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5582ECD82587EF8500ACB34B /* SceneDelegate.swift */; };
|
||||
5582ECDE2587EF8500ACB34B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5582ECDC2587EF8500ACB34B /* Main.storyboard */; };
|
||||
5582ECE02587EF8800ACB34B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5582ECDF2587EF8800ACB34B /* Assets.xcassets */; };
|
||||
5582ECE32587EF8800ACB34B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5582ECE12587EF8800ACB34B /* LaunchScreen.storyboard */; };
|
||||
5582ECFA2587F29600ACB34B /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5582ECF92587F29600ACB34B /* Constants.swift */; };
|
||||
1065CCB4BB3E94D66A063E21 /* PackageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90A08146AE8C005B05144A5 /* PackageCell.swift */; };
|
||||
2F704AC77AEC2A10D7C04E02 /* RevenueCat.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 00B11FF935E6C87A5BE6E8A8 /* RevenueCat.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
332A944A5C236E8A82994333 /* TuistAssets+MagicWeather.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C3B1CAFF9927CE41F9CD70 /* TuistAssets+MagicWeather.swift */; };
|
||||
3BDE45EEBBAC64E164985840 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B7D83641A3BEA2A80D59F60A /* Assets.xcassets */; };
|
||||
51DF56C7C248B3A0B686D3F4 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992DA96B41D15177E3631D3D /* Errors.swift */; };
|
||||
5B4E25CAAA4308DE19AAE7B7 /* SplashScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F3D4E82CB455B1FD93D38AA /* SplashScreenViewController.swift */; };
|
||||
698C26102B365A2FD84131DA /* RevenueCatUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 67FC64E0DA7B5D33517AF018 /* RevenueCatUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
73679D6C3DB163AD856BE20A /* RevenueCat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B11FF935E6C87A5BE6E8A8 /* RevenueCat.framework */; };
|
||||
8DCF484195A00B76F1857EB2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E83BD63E6C2A1D892E52B04 /* AppDelegate.swift */; };
|
||||
924992EF3ACDCBA9B579CBA3 /* WeatherViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A459CB95735D6FC471FD001 /* WeatherViewController.swift */; };
|
||||
A09967C4A53DA1E90827AD11 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36B758C57A6EE6FE6212141C /* SceneDelegate.swift */; };
|
||||
A9AD191CE4BA312FA9E100C3 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F1BA8A04F72922EBAD819DA /* Constants.swift */; };
|
||||
ABEC5D02D4D9C42BC19BBDBD /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0967EDE23CD011015F4D0613 /* UserViewController.swift */; };
|
||||
D77941F01F2E367E6CF11536 /* SampleData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D519AE4B2AB9A5325985CF36 /* SampleData.swift */; };
|
||||
E2A3591BA48FDC19ED0C22C9 /* RevenueCatUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67FC64E0DA7B5D33517AF018 /* RevenueCatUI.framework */; };
|
||||
EF8E3C9CE86F24B1D7DA9E35 /* TuistBundle+MagicWeather.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753C50E09FE1248725367386 /* TuistBundle+MagicWeather.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
1A1F97EAA1D19CF6DA81AE1E /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
2F704AC77AEC2A10D7C04E02 /* RevenueCat.framework in Embed Frameworks */,
|
||||
698C26102B365A2FD84131DA /* RevenueCatUI.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
5539DF1C258806A10073FB19 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; };
|
||||
5539DF1F25880AB80073FB19 /* WeatherViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherViewController.swift; sourceTree = "<group>"; };
|
||||
5539DF23258A9AA70073FB19 /* SampleData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleData.swift; sourceTree = "<group>"; };
|
||||
5539DF2C2592A0790073FB19 /* SplashScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SplashScreen.storyboard; sourceTree = "<group>"; };
|
||||
5539DF2F2592A0C30073FB19 /* SplashScreenViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashScreenViewController.swift; sourceTree = "<group>"; };
|
||||
5539DF392593E6D90073FB19 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||
5575FD48258801DE001B2F0D /* UserViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; };
|
||||
5576344225A3C08400C0486A /* PackageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PackageCell.swift; sourceTree = "<group>"; };
|
||||
5582ECD32587EF8500ACB34B /* MagicWeather.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MagicWeather.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
5582ECD62587EF8500ACB34B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
5582ECD82587EF8500ACB34B /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
|
||||
5582ECDD2587EF8500ACB34B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
5582ECDF2587EF8800ACB34B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
5582ECE22587EF8800ACB34B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
5582ECE42587EF8800ACB34B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
5582ECF92587F29600ACB34B /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
|
||||
00B11FF935E6C87A5BE6E8A8 /* RevenueCat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RevenueCat.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
0967EDE23CD011015F4D0613 /* UserViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = "<group>"; };
|
||||
0E83BD63E6C2A1D892E52B04 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
33C3B1CAFF9927CE41F9CD70 /* TuistAssets+MagicWeather.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+MagicWeather.swift"; sourceTree = "<group>"; };
|
||||
36B758C57A6EE6FE6212141C /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
|
||||
67FC64E0DA7B5D33517AF018 /* RevenueCatUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RevenueCatUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
6A459CB95735D6FC471FD001 /* WeatherViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherViewController.swift; sourceTree = "<group>"; };
|
||||
6F1BA8A04F72922EBAD819DA /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
|
||||
6F3D4E82CB455B1FD93D38AA /* SplashScreenViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashScreenViewController.swift; sourceTree = "<group>"; };
|
||||
753C50E09FE1248725367386 /* TuistBundle+MagicWeather.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+MagicWeather.swift"; sourceTree = "<group>"; };
|
||||
992DA96B41D15177E3631D3D /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; };
|
||||
A90A08146AE8C005B05144A5 /* PackageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PackageCell.swift; sourceTree = "<group>"; };
|
||||
B7D83641A3BEA2A80D59F60A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
BBF3C1C7DC749E6602010842 /* MagicWeather-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "MagicWeather-Info.plist"; sourceTree = "<group>"; };
|
||||
D519AE4B2AB9A5325985CF36 /* SampleData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleData.swift; sourceTree = "<group>"; };
|
||||
F19D7D4D26AA12B64F5C344F /* MagicWeather.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MagicWeather.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
5582ECD02587EF8500ACB34B /* Frameworks */ = {
|
||||
27C1CDA5786808E35C926307 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4E9E1B302CAD38EC00B51150 /* RevenueCatUI in Frameworks */,
|
||||
4E9E1B2E2CAD38EC00B51150 /* RevenueCat in Frameworks */,
|
||||
73679D6C3DB163AD856BE20A /* RevenueCat.framework in Frameworks */,
|
||||
E2A3591BA48FDC19ED0C22C9 /* RevenueCatUI.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
5576344125A3C06E00C0486A /* Views */ = {
|
||||
1ADC5528742C8FC02CE97362 /* MagicWeather */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5576344225A3C08400C0486A /* PackageCell.swift */,
|
||||
);
|
||||
path = Views;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECCA2587EF8500ACB34B = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5539DF392593E6D90073FB19 /* README.md */,
|
||||
5582ECD52587EF8500ACB34B /* MagicWeather */,
|
||||
5582ECD42587EF8500ACB34B /* Products */,
|
||||
8380C26426FE001500922AB1 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECD42587EF8500ACB34B /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5582ECD32587EF8500ACB34B /* MagicWeather.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECD52587EF8500ACB34B /* MagicWeather */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5582ECF92587F29600ACB34B /* Constants.swift */,
|
||||
5582ECEF2587EFD100ACB34B /* Sources */,
|
||||
5582ECF42587F01E00ACB34B /* Resources */,
|
||||
C4DD375A7F60D2C73E3110C2 /* Resources */,
|
||||
98BCB06BF3D4F9B80450B731 /* Sources */,
|
||||
6F1BA8A04F72922EBAD819DA /* Constants.swift */,
|
||||
);
|
||||
path = MagicWeather;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECEF2587EFD100ACB34B /* Sources */ = {
|
||||
27BCC4FE59AAAA420C21265B /* Views */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5582ECF22587F01100ACB34B /* Lifecycle */,
|
||||
5582ECF12587EFFE00ACB34B /* Controllers */,
|
||||
5576344125A3C06E00C0486A /* Views */,
|
||||
5582ECF82587F28500ACB34B /* Helpers */,
|
||||
A90A08146AE8C005B05144A5 /* PackageCell.swift */,
|
||||
);
|
||||
path = Views;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47A2962F7A060F89C47C162C /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
33C3B1CAFF9927CE41F9CD70 /* TuistAssets+MagicWeather.swift */,
|
||||
753C50E09FE1248725367386 /* TuistBundle+MagicWeather.swift */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECF12587EFFE00ACB34B /* Controllers */ = {
|
||||
68B0497CA188975AE9EECB71 /* Helpers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5539DF2F2592A0C30073FB19 /* SplashScreenViewController.swift */,
|
||||
5575FD48258801DE001B2F0D /* UserViewController.swift */,
|
||||
5539DF1F25880AB80073FB19 /* WeatherViewController.swift */,
|
||||
);
|
||||
path = Controllers;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECF22587F01100ACB34B /* Lifecycle */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5582ECD62587EF8500ACB34B /* AppDelegate.swift */,
|
||||
5582ECD82587EF8500ACB34B /* SceneDelegate.swift */,
|
||||
);
|
||||
path = Lifecycle;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECF42587F01E00ACB34B /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5582ECF52587F02400ACB34B /* UI */,
|
||||
5582ECDF2587EF8800ACB34B /* Assets.xcassets */,
|
||||
5582ECE12587EF8800ACB34B /* LaunchScreen.storyboard */,
|
||||
5582ECE42587EF8800ACB34B /* Info.plist */,
|
||||
);
|
||||
path = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECF52587F02400ACB34B /* UI */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5582ECDC2587EF8500ACB34B /* Main.storyboard */,
|
||||
5539DF2C2592A0790073FB19 /* SplashScreen.storyboard */,
|
||||
);
|
||||
path = UI;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECF82587F28500ACB34B /* Helpers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5539DF1C258806A10073FB19 /* Errors.swift */,
|
||||
5539DF23258A9AA70073FB19 /* SampleData.swift */,
|
||||
992DA96B41D15177E3631D3D /* Errors.swift */,
|
||||
D519AE4B2AB9A5325985CF36 /* SampleData.swift */,
|
||||
);
|
||||
path = Helpers;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8380C26426FE001500922AB1 /* Frameworks */ = {
|
||||
6A571EB63F5968A07C8B2900 /* Controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6F3D4E82CB455B1FD93D38AA /* SplashScreenViewController.swift */,
|
||||
0967EDE23CD011015F4D0613 /* UserViewController.swift */,
|
||||
6A459CB95735D6FC471FD001 /* WeatherViewController.swift */,
|
||||
);
|
||||
name = Frameworks;
|
||||
path = Controllers;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
927575168FFC0306B47AEE2F /* Derived */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C7DDEE374E324341D0012216 /* InfoPlists */,
|
||||
47A2962F7A060F89C47C162C /* Sources */,
|
||||
);
|
||||
path = Derived;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
98BCB06BF3D4F9B80450B731 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A571EB63F5968A07C8B2900 /* Controllers */,
|
||||
68B0497CA188975AE9EECB71 /* Helpers */,
|
||||
A5FA5D2585CCC0DB760FD70F /* Lifecycle */,
|
||||
27BCC4FE59AAAA420C21265B /* Views */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A5FA5D2585CCC0DB760FD70F /* Lifecycle */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0E83BD63E6C2A1D892E52B04 /* AppDelegate.swift */,
|
||||
36B758C57A6EE6FE6212141C /* SceneDelegate.swift */,
|
||||
);
|
||||
path = Lifecycle;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
AD7BBA323B2BE5671D526E23 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0B41D56B75357AA98087904 /* Project */,
|
||||
E9A8966EEC7AEB12321CA495 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C4DD375A7F60D2C73E3110C2 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B7D83641A3BEA2A80D59F60A /* Assets.xcassets */,
|
||||
);
|
||||
path = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C7DDEE374E324341D0012216 /* InfoPlists */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
BBF3C1C7DC749E6602010842 /* MagicWeather-Info.plist */,
|
||||
);
|
||||
path = InfoPlists;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E9A8966EEC7AEB12321CA495 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F19D7D4D26AA12B64F5C344F /* MagicWeather.app */,
|
||||
00B11FF935E6C87A5BE6E8A8 /* RevenueCat.framework */,
|
||||
67FC64E0DA7B5D33517AF018 /* RevenueCatUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0B41D56B75357AA98087904 /* Project */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
927575168FFC0306B47AEE2F /* Derived */,
|
||||
1ADC5528742C8FC02CE97362 /* MagicWeather */,
|
||||
);
|
||||
name = Project;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
5582ECD22587EF8500ACB34B /* MagicWeather */ = {
|
||||
8CA00CCCA2D8A3F7370C14CB /* MagicWeather */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 5582ECE72587EF8800ACB34B /* Build configuration list for PBXNativeTarget "MagicWeather" */;
|
||||
buildConfigurationList = 4A22AF8B35CDF2F1BB74343B /* Build configuration list for PBXNativeTarget "MagicWeather" */;
|
||||
buildPhases = (
|
||||
5582ECCF2587EF8500ACB34B /* Sources */,
|
||||
5582ECD02587EF8500ACB34B /* Frameworks */,
|
||||
5582ECD12587EF8500ACB34B /* Resources */,
|
||||
0F6EA5C9012E5EFF4FEFE7CA /* Sources */,
|
||||
DC138E2BE3D049A6372E9A77 /* Resources */,
|
||||
27C1CDA5786808E35C926307 /* Frameworks */,
|
||||
1A1F97EAA1D19CF6DA81AE1E /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -175,105 +208,76 @@
|
||||
);
|
||||
name = MagicWeather;
|
||||
packageProductDependencies = (
|
||||
4E9E1B2D2CAD38EC00B51150 /* RevenueCat */,
|
||||
4E9E1B2F2CAD38EC00B51150 /* RevenueCatUI */,
|
||||
);
|
||||
productName = "Magic Weather";
|
||||
productReference = 5582ECD32587EF8500ACB34B /* MagicWeather.app */;
|
||||
productName = MagicWeather;
|
||||
productReference = F19D7D4D26AA12B64F5C344F /* MagicWeather.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
5582ECCB2587EF8500ACB34B /* Project object */ = {
|
||||
6F6DC1CDA4E7E5EE45D2566A /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 1220;
|
||||
LastUpgradeCheck = 1220;
|
||||
TargetAttributes = {
|
||||
5582ECD22587EF8500ACB34B = {
|
||||
CreatedOnToolsVersion = 12.2;
|
||||
};
|
||||
};
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
ORGANIZATIONNAME = "RevenueCat, Inc.";
|
||||
};
|
||||
buildConfigurationList = 5582ECCE2587EF8500ACB34B /* Build configuration list for PBXProject "MagicWeather" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
buildConfigurationList = 05BAB7B35F477C6D1EE6374B /* Build configuration list for PBXProject "MagicWeather" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
en,
|
||||
);
|
||||
mainGroup = 5582ECCA2587EF8500ACB34B;
|
||||
packageReferences = (
|
||||
4E9E1B2C2CAD38EC00B51150 /* XCRemoteSwiftPackageReference "purchases-ios-spm" */,
|
||||
);
|
||||
productRefGroup = 5582ECD42587EF8500ACB34B /* Products */;
|
||||
mainGroup = AD7BBA323B2BE5671D526E23;
|
||||
productRefGroup = E9A8966EEC7AEB12321CA495 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
5582ECD22587EF8500ACB34B /* MagicWeather */,
|
||||
8CA00CCCA2D8A3F7370C14CB /* MagicWeather */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
5582ECD12587EF8500ACB34B /* Resources */ = {
|
||||
DC138E2BE3D049A6372E9A77 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5582ECE32587EF8800ACB34B /* LaunchScreen.storyboard in Resources */,
|
||||
5539DF2D2592A07A0073FB19 /* SplashScreen.storyboard in Resources */,
|
||||
5582ECE02587EF8800ACB34B /* Assets.xcassets in Resources */,
|
||||
5582ECDE2587EF8500ACB34B /* Main.storyboard in Resources */,
|
||||
3BDE45EEBBAC64E164985840 /* Assets.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
5582ECCF2587EF8500ACB34B /* Sources */ = {
|
||||
0F6EA5C9012E5EFF4FEFE7CA /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5576344325A3C08400C0486A /* PackageCell.swift in Sources */,
|
||||
5575FD49258801DE001B2F0D /* UserViewController.swift in Sources */,
|
||||
5539DF24258A9AA70073FB19 /* SampleData.swift in Sources */,
|
||||
5582ECD72587EF8500ACB34B /* AppDelegate.swift in Sources */,
|
||||
5582ECD92587EF8500ACB34B /* SceneDelegate.swift in Sources */,
|
||||
5539DF2025880AB80073FB19 /* WeatherViewController.swift in Sources */,
|
||||
5539DF1D258806A10073FB19 /* Errors.swift in Sources */,
|
||||
5539DF302592A0C30073FB19 /* SplashScreenViewController.swift in Sources */,
|
||||
5582ECFA2587F29600ACB34B /* Constants.swift in Sources */,
|
||||
332A944A5C236E8A82994333 /* TuistAssets+MagicWeather.swift in Sources */,
|
||||
EF8E3C9CE86F24B1D7DA9E35 /* TuistBundle+MagicWeather.swift in Sources */,
|
||||
A9AD191CE4BA312FA9E100C3 /* Constants.swift in Sources */,
|
||||
5B4E25CAAA4308DE19AAE7B7 /* SplashScreenViewController.swift in Sources */,
|
||||
ABEC5D02D4D9C42BC19BBDBD /* UserViewController.swift in Sources */,
|
||||
924992EF3ACDCBA9B579CBA3 /* WeatherViewController.swift in Sources */,
|
||||
51DF56C7C248B3A0B686D3F4 /* Errors.swift in Sources */,
|
||||
D77941F01F2E367E6CF11536 /* SampleData.swift in Sources */,
|
||||
8DCF484195A00B76F1857EB2 /* AppDelegate.swift in Sources */,
|
||||
A09967C4A53DA1E90827AD11 /* SceneDelegate.swift in Sources */,
|
||||
1065CCB4BB3E94D66A063E21 /* PackageCell.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
5582ECDC2587EF8500ACB34B /* Main.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
5582ECDD2587EF8500ACB34B /* Base */,
|
||||
);
|
||||
name = Main.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5582ECE12587EF8800ACB34B /* LaunchScreen.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
5582ECE22587EF8800ACB34B /* Base */,
|
||||
);
|
||||
name = LaunchScreen.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
5582ECE52587EF8800ACB34B /* Debug */ = {
|
||||
657983500F013B37ABFD9576 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
@@ -304,6 +308,7 @@
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
@@ -321,20 +326,44 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
5582ECE62587EF8800ACB34B /* Release */ = {
|
||||
9659AE5917ED4016C858310D /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = 8SXR2327BM;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
INFOPLIST_FILE = "Derived/InfoPlists/MagicWeather-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = MagicWeather;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
96E0A57DF5232981213D6340 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
@@ -365,6 +394,7 @@
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
@@ -376,102 +406,65 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
5582ECE82587EF8800ACB34B /* Debug */ = {
|
||||
AA39FA72F2986C451DAD16C5 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
INFOPLIST_FILE = MagicWeather/Resources/Info.plist;
|
||||
DEVELOPMENT_TEAM = 8SXR2327BM;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
INFOPLIST_FILE = "Derived/InfoPlists/MagicWeather-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PRODUCT_NAME = MagicWeather;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = (
|
||||
"$(inherited)",
|
||||
DEBUG,
|
||||
);
|
||||
SWIFT_COMPILATION_MODE = singlefile;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
5582ECE92587EF8800ACB34B /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
INFOPLIST_FILE = MagicWeather/Resources/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
5582ECCE2587EF8500ACB34B /* Build configuration list for PBXProject "MagicWeather" */ = {
|
||||
05BAB7B35F477C6D1EE6374B /* Build configuration list for PBXProject "MagicWeather" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5582ECE52587EF8800ACB34B /* Debug */,
|
||||
5582ECE62587EF8800ACB34B /* Release */,
|
||||
657983500F013B37ABFD9576 /* Debug */,
|
||||
96E0A57DF5232981213D6340 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
5582ECE72587EF8800ACB34B /* Build configuration list for PBXNativeTarget "MagicWeather" */ = {
|
||||
4A22AF8B35CDF2F1BB74343B /* Build configuration list for PBXNativeTarget "MagicWeather" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5582ECE82587EF8800ACB34B /* Debug */,
|
||||
5582ECE92587EF8800ACB34B /* Release */,
|
||||
AA39FA72F2986C451DAD16C5 /* Debug */,
|
||||
9659AE5917ED4016C858310D /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
|
||||
/* Begin XCRemoteSwiftPackageReference section */
|
||||
4E9E1B2C2CAD38EC00B51150 /* XCRemoteSwiftPackageReference "purchases-ios-spm" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/RevenueCat/purchases-ios-spm";
|
||||
requirement = {
|
||||
kind = upToNextMajorVersion;
|
||||
minimumVersion = 5.5.0;
|
||||
};
|
||||
};
|
||||
/* End XCRemoteSwiftPackageReference section */
|
||||
|
||||
/* Begin XCSwiftPackageProductDependency section */
|
||||
4E9E1B2D2CAD38EC00B51150 /* RevenueCat */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 4E9E1B2C2CAD38EC00B51150 /* XCRemoteSwiftPackageReference "purchases-ios-spm" */;
|
||||
productName = RevenueCat;
|
||||
};
|
||||
4E9E1B2F2CAD38EC00B51150 /* RevenueCatUI */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 4E9E1B2C2CAD38EC00B51150 /* XCRemoteSwiftPackageReference "purchases-ios-spm" */;
|
||||
productName = RevenueCatUI;
|
||||
};
|
||||
/* End XCSwiftPackageProductDependency section */
|
||||
};
|
||||
rootObject = 5582ECCB2587EF8500ACB34B /* Project object */;
|
||||
rootObject = 6F6DC1CDA4E7E5EE45D2566A /* Project object */;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
let project = Project(
|
||||
name: "MagicWeather",
|
||||
organizationName: .revenueCatOrgName,
|
||||
targets: [
|
||||
.target(
|
||||
name: "MagicWeather",
|
||||
destinations: .iOS,
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.sampleapp",
|
||||
deploymentTargets: .iOS("15.0"),
|
||||
infoPlist: .extendingDefault(
|
||||
with: [
|
||||
"UILaunchScreen": [
|
||||
"UIColorName": "",
|
||||
"UIImageName": "",
|
||||
]
|
||||
]
|
||||
),
|
||||
sources: [
|
||||
"MagicWeather/Sources/**/*.swift",
|
||||
"MagicWeather/Constants.swift"
|
||||
],
|
||||
resources: [
|
||||
"MagicWeather/Resources/**/*.xcassets",
|
||||
],
|
||||
dependencies: [
|
||||
.revenueCat,
|
||||
.revenueCatUI,
|
||||
],
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID))
|
||||
)
|
||||
]
|
||||
)
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIApplicationSceneManifest</key>
|
||||
<dict>
|
||||
<key>UIApplicationSupportsMultipleScenes</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UILaunchScreen</key>
|
||||
<dict/>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict/>
|
||||
</plist>
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,36 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
let project = Project(
|
||||
name: "MagicWeatherSwiftUI",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID)),
|
||||
targets: [
|
||||
.target(
|
||||
name: "MagicWeatherSwiftUI",
|
||||
destinations: .iOS,
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.sampleapp",
|
||||
deploymentTargets: .iOS("15.0"),
|
||||
infoPlist: .extendingDefault(
|
||||
with: [
|
||||
"UILaunchScreen": [
|
||||
"UIColorName": "",
|
||||
"UIImageName": "",
|
||||
]
|
||||
]
|
||||
),
|
||||
sources: [
|
||||
"MagicWeatherSwiftUI/Sources/**/*.swift",
|
||||
"MagicWeatherSwiftUI/Constants.swift"
|
||||
],
|
||||
resources: [
|
||||
"MagicWeatherSwiftUI/Resources/**/*.xcassets",
|
||||
],
|
||||
dependencies: [
|
||||
.revenueCat,
|
||||
.revenueCatUI,
|
||||
]
|
||||
)
|
||||
],
|
||||
)
|
||||
@@ -0,0 +1,117 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
let destinations: Destinations = [
|
||||
.iPhone,
|
||||
.iPad,
|
||||
.mac,
|
||||
.macCatalyst,
|
||||
.appleTv,
|
||||
.appleVision
|
||||
]
|
||||
|
||||
let deploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "15.2",
|
||||
macOS: "13.0",
|
||||
tvOS: "15.2",
|
||||
visionOS: "1.3"
|
||||
)
|
||||
|
||||
let allDeploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "15.2",
|
||||
macOS: "13.0",
|
||||
watchOS: "8.0",
|
||||
tvOS: "15.2",
|
||||
visionOS: "1.3"
|
||||
)
|
||||
|
||||
let allDestinations = destinations + [.appleWatch]
|
||||
|
||||
let project = Project(
|
||||
name: "PurchaseTester",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID)),
|
||||
targets: [
|
||||
.target(
|
||||
name: "PurchaseTester",
|
||||
destinations: destinations,
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.sampleapp",
|
||||
deploymentTargets: deploymentTargets,
|
||||
infoPlist: "../../Tests/TestingApps/PurchaseTesterSwiftUI/PurchaseTester-Info.plist",
|
||||
sources: [
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/Shared/**/*.swift",
|
||||
],
|
||||
resources: [
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/AppIcon.xcassets",
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/Shared/Assets.xcassets",
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/Resources/**/LaunchScreen.storyboard",
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "Core")
|
||||
],
|
||||
additionalFiles: [
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/PurchaseTester.entitlements",
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/PurchaseTesterStoreKitConfiguration.storekit"
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "PurchaseTesterWatchOS",
|
||||
destinations: [.appleWatch],
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.sampleapp.watchkitapp",
|
||||
deploymentTargets: .watchOS("8.0"),
|
||||
infoPlist: "../../Tests/TestingApps/PurchaseTesterSwiftUI/PurchaseTesterWatchOS/Info.plist",
|
||||
sources: [
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/PurchaseTesterWatchOS/**/*.swift"
|
||||
],
|
||||
resources: [
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/AppIcon.xcassets",
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/Shared/Assets.xcassets",
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "Core")
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "Core",
|
||||
destinations: Set(allDestinations),
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.Core",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
sources: [
|
||||
"../../Tests/TestingApps/PurchaseTesterSwiftUI/Core/**/*.swift",
|
||||
],
|
||||
dependencies: [
|
||||
.revenueCat,
|
||||
.revenueCatUI,
|
||||
.receiptparser,
|
||||
]
|
||||
),
|
||||
],
|
||||
schemes: [
|
||||
.scheme(
|
||||
name: "PurchaseTester",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["PurchaseTester"], findImplicitDependencies: true),
|
||||
runAction: .runAction(
|
||||
configuration: "Debug",
|
||||
executable: "PurchaseTester",
|
||||
options: .options(
|
||||
storeKitConfigurationPath: "../../Tests/TestingApps/PurchaseTesterSwiftUI/PurchaseTesterStoreKitConfiguration.storekit"
|
||||
)
|
||||
)
|
||||
),
|
||||
.scheme(
|
||||
name: "PurchaseTesterWatchOS",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["PurchaseTesterWatchOS"], findImplicitDependencies: true),
|
||||
runAction: .runAction(
|
||||
configuration: "Debug",
|
||||
executable: "PurchaseTesterWatchOS"
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
@@ -1,73 +0,0 @@
|
||||
### macOS ###
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
### Xcode ###
|
||||
# Xcode
|
||||
#
|
||||
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
|
||||
|
||||
## User settings
|
||||
xcuserdata/
|
||||
|
||||
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
|
||||
*.xcscmblueprint
|
||||
*.xccheckout
|
||||
|
||||
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
|
||||
build/
|
||||
DerivedData/
|
||||
*.moved-aside
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
|
||||
### Xcode Patch ###
|
||||
*.xcodeproj/*
|
||||
!*.xcodeproj/project.pbxproj
|
||||
!*.xcodeproj/xcshareddata/
|
||||
!*.xcworkspace/contents.xcworkspacedata
|
||||
/*.gcno
|
||||
|
||||
### Projects ###
|
||||
*.xcodeproj
|
||||
*.xcworkspace
|
||||
|
||||
### Tuist derived files ###
|
||||
graph.dot
|
||||
Derived/
|
||||
|
||||
### Tuist managed dependencies ###
|
||||
Tuist/.build
|
||||
|
||||
### xcconfig
|
||||
**/Local.xcconfig
|
||||
Whitespace-only changes.
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:Maestro.xcodeproj">
|
||||
</FileRef>
|
||||
<Group
|
||||
location = "container:"
|
||||
name = "Dependencies">
|
||||
<FileRef
|
||||
location = "group:Tuist/.build/tuist-derived/RevenueCat/RevenueCat.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
</Workspace>
|
||||
@@ -1,12 +1,21 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
import Foundation
|
||||
|
||||
var additionalFiles: [FileElement] = [
|
||||
.glob(pattern: "rc-maestro/Resources/**/Local.xcconfig.sample")
|
||||
]
|
||||
var shouldAddLocalConfig: Bool = false
|
||||
if FileManager.default.fileExists(atPath: "rc-maestro/Resources/**/Local.xcconfig") {
|
||||
shouldAddLocalConfig = true
|
||||
additionalFiles.append(.glob(pattern: "rc-maestro/Resources/**/Local.xcconfig"))
|
||||
}
|
||||
|
||||
let project = Project(
|
||||
name: "Maestro",
|
||||
organizationName: "RevenueCat",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(
|
||||
configurations: [
|
||||
.debug(name: "Debug", xcconfig: .relativeToManifest("rc-maestro/Resources/Local.xcconfig"))
|
||||
],
|
||||
base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID),
|
||||
defaultSettings: .essential
|
||||
),
|
||||
targets: [
|
||||
@@ -30,9 +39,9 @@ let project = Project(
|
||||
"rc-maestro/Resources/**/*.xcassets",
|
||||
],
|
||||
dependencies: [
|
||||
.external(name: "RevenueCat"),
|
||||
.external(name: "RevenueCatUI"),
|
||||
.sdk(name: "StoreKit", type: .framework, status: .required)
|
||||
.revenueCat,
|
||||
.revenueCatUI,
|
||||
.storeKit
|
||||
]
|
||||
)
|
||||
],
|
||||
@@ -51,8 +60,5 @@ let project = Project(
|
||||
)
|
||||
)
|
||||
],
|
||||
additionalFiles: [
|
||||
"rc-maestro/Resources/**/Local.xcconfig.sample",
|
||||
"rc-maestro/Resources/**/Local.xcconfig"
|
||||
]
|
||||
additionalFiles: additionalFiles
|
||||
)
|
||||
@@ -1,3 +0,0 @@
|
||||
import ProjectDescription
|
||||
|
||||
let tuist = Tuist(project: .tuist())
|
||||
@@ -1,24 +0,0 @@
|
||||
// swift-tools-version: 6.0
|
||||
@preconcurrency import PackageDescription
|
||||
|
||||
#if TUIST
|
||||
import ProjectDescription
|
||||
|
||||
let packageSettings = PackageSettings(
|
||||
productTypes: [
|
||||
"RevenueCat": .framework,
|
||||
"RevenueCatUI": .framework // default is .staticFramework
|
||||
]
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
let package = Package(
|
||||
name: "Dependencies",
|
||||
dependencies: [
|
||||
.package(
|
||||
url: "https://github.com/RevenueCat/purchases-ios",
|
||||
branch: "main"
|
||||
),
|
||||
]
|
||||
)
|
||||
@@ -0,0 +1,43 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
let allDestinations: Destinations = [
|
||||
.iPhone,
|
||||
.iPad,
|
||||
.macWithiPadDesign,
|
||||
.appleVisionWithiPadDesign
|
||||
]
|
||||
|
||||
let project = Project(
|
||||
name: "testCustomEntitlementsComputation",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID)),
|
||||
targets: [
|
||||
.target(
|
||||
name: "testCustomEntitlementsComputation",
|
||||
destinations: allDestinations,
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.sampleapp",
|
||||
deploymentTargets: .iOS("15.0"),
|
||||
infoPlist: .extendingDefault(
|
||||
with: [
|
||||
"UILaunchScreen": [
|
||||
"UIColorName": "",
|
||||
"UIImageName": "",
|
||||
]
|
||||
]
|
||||
),
|
||||
sources: [
|
||||
"testCustomEntitlementsComputation/Sources/**/*.swift",
|
||||
"testCustomEntitlementsComputation/Constants.swift"
|
||||
],
|
||||
resources: [
|
||||
"testCustomEntitlementsComputation/Resources/**/*.xcassets",
|
||||
],
|
||||
dependencies: [
|
||||
.revenueCat,
|
||||
.revenueCatUI,
|
||||
]
|
||||
)
|
||||
],
|
||||
)
|
||||
+268
-214
@@ -3,95 +3,165 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 56;
|
||||
objectVersion = 55;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
2D276F5629F1C85700F51382 /* testCustomEntitlementsComputationApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D276F5529F1C85700F51382 /* testCustomEntitlementsComputationApp.swift */; };
|
||||
2D276F5829F1C85700F51382 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D276F5729F1C85700F51382 /* ContentView.swift */; };
|
||||
2D276F5A29F1C85800F51382 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D276F5929F1C85800F51382 /* Assets.xcassets */; };
|
||||
2D276F5D29F1C85800F51382 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D276F5C29F1C85800F51382 /* Preview Assets.xcassets */; };
|
||||
2DB0898929F30ABD00A4DAE7 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB0898829F30ABD00A4DAE7 /* Constants.swift */; };
|
||||
5714383029F86B4400CC2D44 /* RevenueCat_CustomEntitlementComputation in Frameworks */ = {isa = PBXBuildFile; productRef = 5714382F29F86B4400CC2D44 /* RevenueCat_CustomEntitlementComputation */; };
|
||||
08925B4E584FC5D20CA59FBE /* TuistBundle+TestCustomEntitlementsComputation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B279D5A7966CB41CCBF05D66 /* TuistBundle+TestCustomEntitlementsComputation.swift */; };
|
||||
165EA4DBD39926FC9A7FF580 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AE116B293A2B413F35DFEAD /* Constants.swift */; };
|
||||
2185E8F026F4ED75FACD2635 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2B97AF29CED8B6B137A91DBC /* Assets.xcassets */; };
|
||||
2451FCD2806B9E943175C4C6 /* RevenueCat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBA5CC143913C7C0176E9BC0 /* RevenueCat.framework */; };
|
||||
372A6651DC7ABDE7AA4C0DB8 /* TuistAssets+TestCustomEntitlementsComputation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7B3A4A14B2E020B9CE706B /* TuistAssets+TestCustomEntitlementsComputation.swift */; };
|
||||
4BE4152BEE86A9A5B28D9F9C /* RevenueCat.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DBA5CC143913C7C0176E9BC0 /* RevenueCat.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
682A311FBF1D51A8F99BB80B /* RevenueCatUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7B56A335C3599AE98135A29B /* RevenueCatUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
934F4A57DA874AB9FEC7DEAE /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4299FA8156FAC6F41B1D3E2E /* ContentView.swift */; };
|
||||
988FDB03EA1FAA46FD5D4060 /* testCustomEntitlementsComputationApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AE9B635F241F5E679A0AA70 /* testCustomEntitlementsComputationApp.swift */; };
|
||||
C5E7710847748C154EF4D353 /* RevenueCatUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B56A335C3599AE98135A29B /* RevenueCatUI.framework */; };
|
||||
F060823B8F8D63C71CEED067 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5D3D43B0F1902135F3556572 /* Preview Assets.xcassets */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
DEDB9AEAB198712CBD836B3D /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
4BE4152BEE86A9A5B28D9F9C /* RevenueCat.framework in Embed Frameworks */,
|
||||
682A311FBF1D51A8F99BB80B /* RevenueCatUI.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
2D276F5229F1C85700F51382 /* testCustomEntitlementsComputation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testCustomEntitlementsComputation.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D276F5529F1C85700F51382 /* testCustomEntitlementsComputationApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = testCustomEntitlementsComputationApp.swift; sourceTree = "<group>"; };
|
||||
2D276F5729F1C85700F51382 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
|
||||
2D276F5929F1C85800F51382 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
2D276F5C29F1C85800F51382 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
|
||||
2DB0898829F30ABD00A4DAE7 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
|
||||
2DB0899029F32C9400A4DAE7 /* purchases-ios */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "purchases-ios"; path = ../../..; sourceTree = "<group>"; };
|
||||
1AE9B635F241F5E679A0AA70 /* testCustomEntitlementsComputationApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = testCustomEntitlementsComputationApp.swift; sourceTree = "<group>"; };
|
||||
2AE116B293A2B413F35DFEAD /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
|
||||
2B97AF29CED8B6B137A91DBC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
2F7B3A4A14B2E020B9CE706B /* TuistAssets+TestCustomEntitlementsComputation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistAssets+TestCustomEntitlementsComputation.swift"; sourceTree = "<group>"; };
|
||||
4299FA8156FAC6F41B1D3E2E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
|
||||
57BE31076EE78CAC5D802898 /* testCustomEntitlementsComputation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "testCustomEntitlementsComputation-Info.plist"; sourceTree = "<group>"; };
|
||||
5D3D43B0F1902135F3556572 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
|
||||
7B56A335C3599AE98135A29B /* RevenueCatUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RevenueCatUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
ABECB7BAA86F9315475B0DC4 /* testCustomEntitlementsComputation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testCustomEntitlementsComputation.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B279D5A7966CB41CCBF05D66 /* TuistBundle+TestCustomEntitlementsComputation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TuistBundle+TestCustomEntitlementsComputation.swift"; sourceTree = "<group>"; };
|
||||
DBA5CC143913C7C0176E9BC0 /* RevenueCat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RevenueCat.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
2D276F4F29F1C85700F51382 /* Frameworks */ = {
|
||||
7E2DEFF12B0AA3C1D3DA9A28 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5714383029F86B4400CC2D44 /* RevenueCat_CustomEntitlementComputation in Frameworks */,
|
||||
2451FCD2806B9E943175C4C6 /* RevenueCat.framework in Frameworks */,
|
||||
C5E7710847748C154EF4D353 /* RevenueCatUI.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
2D276F4929F1C85700F51382 = {
|
||||
0707E46784F11FB53488F02E /* Preview Content */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2D276F5429F1C85700F51382 /* testCustomEntitlementsComputation */,
|
||||
2D276F5329F1C85700F51382 /* Products */,
|
||||
2DB0899129F32C9F00A4DAE7 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2D276F5329F1C85700F51382 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2D276F5229F1C85700F51382 /* testCustomEntitlementsComputation.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2D276F5429F1C85700F51382 /* testCustomEntitlementsComputation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2D276F5529F1C85700F51382 /* testCustomEntitlementsComputationApp.swift */,
|
||||
2D276F5729F1C85700F51382 /* ContentView.swift */,
|
||||
2D276F5929F1C85800F51382 /* Assets.xcassets */,
|
||||
2D276F5B29F1C85800F51382 /* Preview Content */,
|
||||
2DB0898829F30ABD00A4DAE7 /* Constants.swift */,
|
||||
2DB0899029F32C9400A4DAE7 /* purchases-ios */,
|
||||
);
|
||||
path = testCustomEntitlementsComputation;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2D276F5B29F1C85800F51382 /* Preview Content */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2D276F5C29F1C85800F51382 /* Preview Assets.xcassets */,
|
||||
5D3D43B0F1902135F3556572 /* Preview Assets.xcassets */,
|
||||
);
|
||||
path = "Preview Content";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2DB0899129F32C9F00A4DAE7 /* Frameworks */ = {
|
||||
07E088A7C1D042A64FC53D06 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
677B10069913F47E2FAFBBB6 /* Project */,
|
||||
40E598C55A2D32212EB03801 /* Products */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1742866A69D0D9E0B638A3D6 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2F7B3A4A14B2E020B9CE706B /* TuistAssets+TestCustomEntitlementsComputation.swift */,
|
||||
B279D5A7966CB41CCBF05D66 /* TuistBundle+TestCustomEntitlementsComputation.swift */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1CFCD15AB796063A4BF9406D /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4299FA8156FAC6F41B1D3E2E /* ContentView.swift */,
|
||||
1AE9B635F241F5E679A0AA70 /* testCustomEntitlementsComputationApp.swift */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
40E598C55A2D32212EB03801 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DBA5CC143913C7C0176E9BC0 /* RevenueCat.framework */,
|
||||
7B56A335C3599AE98135A29B /* RevenueCatUI.framework */,
|
||||
ABECB7BAA86F9315475B0DC4 /* testCustomEntitlementsComputation.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
677B10069913F47E2FAFBBB6 /* Project */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A40080F28EB3880802B7FB10 /* Derived */,
|
||||
E7D1F5B3665A2D7448CCB79D /* testCustomEntitlementsComputation */,
|
||||
);
|
||||
name = Project;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
845B9BF54C2CE410488320FA /* InfoPlists */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
57BE31076EE78CAC5D802898 /* testCustomEntitlementsComputation-Info.plist */,
|
||||
);
|
||||
path = InfoPlists;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A40080F28EB3880802B7FB10 /* Derived */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
845B9BF54C2CE410488320FA /* InfoPlists */,
|
||||
1742866A69D0D9E0B638A3D6 /* Sources */,
|
||||
);
|
||||
path = Derived;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D2532C3692EA740F87F11286 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0707E46784F11FB53488F02E /* Preview Content */,
|
||||
2B97AF29CED8B6B137A91DBC /* Assets.xcassets */,
|
||||
);
|
||||
path = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E7D1F5B3665A2D7448CCB79D /* testCustomEntitlementsComputation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D2532C3692EA740F87F11286 /* Resources */,
|
||||
1CFCD15AB796063A4BF9406D /* Sources */,
|
||||
2AE116B293A2B413F35DFEAD /* Constants.swift */,
|
||||
);
|
||||
path = testCustomEntitlementsComputation;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
2D276F5129F1C85700F51382 /* testCustomEntitlementsComputation */ = {
|
||||
A87D977F7D7103389A52F6AC /* testCustomEntitlementsComputation */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 2D276F6029F1C85800F51382 /* Build configuration list for PBXNativeTarget "testCustomEntitlementsComputation" */;
|
||||
buildConfigurationList = 91129418DFF6B3F3158762A5 /* Build configuration list for PBXNativeTarget "testCustomEntitlementsComputation" */;
|
||||
buildPhases = (
|
||||
2D276F4E29F1C85700F51382 /* Sources */,
|
||||
2D276F4F29F1C85700F51382 /* Frameworks */,
|
||||
2D276F5029F1C85700F51382 /* Resources */,
|
||||
480572A80E3D0E21EB91AB69 /* Sources */,
|
||||
0C4E874BC2D10DA93EE1A6E5 /* Resources */,
|
||||
7E2DEFF12B0AA3C1D3DA9A28 /* Frameworks */,
|
||||
DEDB9AEAB198712CBD836B3D /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -99,80 +169,129 @@
|
||||
);
|
||||
name = testCustomEntitlementsComputation;
|
||||
packageProductDependencies = (
|
||||
5714382F29F86B4400CC2D44 /* RevenueCat_CustomEntitlementComputation */,
|
||||
);
|
||||
productName = testCustomEntitlementsComputation;
|
||||
productReference = 2D276F5229F1C85700F51382 /* testCustomEntitlementsComputation.app */;
|
||||
productReference = ABECB7BAA86F9315475B0DC4 /* testCustomEntitlementsComputation.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
2D276F4A29F1C85700F51382 /* Project object */ = {
|
||||
0F199CE67194A4C3A8E8CB74 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = 1;
|
||||
LastSwiftUpdateCheck = 1430;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
2D276F5129F1C85700F51382 = {
|
||||
CreatedOnToolsVersion = 14.3;
|
||||
};
|
||||
};
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
ORGANIZATIONNAME = "RevenueCat, Inc.";
|
||||
};
|
||||
buildConfigurationList = 2D276F4D29F1C85700F51382 /* Build configuration list for PBXProject "testCustomEntitlementsComputation" */;
|
||||
buildConfigurationList = 928B6F5BF967A7DC15FFC616 /* Build configuration list for PBXProject "testCustomEntitlementsComputation" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
en,
|
||||
);
|
||||
mainGroup = 2D276F4929F1C85700F51382;
|
||||
packageReferences = (
|
||||
);
|
||||
productRefGroup = 2D276F5329F1C85700F51382 /* Products */;
|
||||
mainGroup = 07E088A7C1D042A64FC53D06;
|
||||
productRefGroup = 40E598C55A2D32212EB03801 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
2D276F5129F1C85700F51382 /* testCustomEntitlementsComputation */,
|
||||
A87D977F7D7103389A52F6AC /* testCustomEntitlementsComputation */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
2D276F5029F1C85700F51382 /* Resources */ = {
|
||||
0C4E874BC2D10DA93EE1A6E5 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2D276F5D29F1C85800F51382 /* Preview Assets.xcassets in Resources */,
|
||||
2D276F5A29F1C85800F51382 /* Assets.xcassets in Resources */,
|
||||
2185E8F026F4ED75FACD2635 /* Assets.xcassets in Resources */,
|
||||
F060823B8F8D63C71CEED067 /* Preview Assets.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
2D276F4E29F1C85700F51382 /* Sources */ = {
|
||||
480572A80E3D0E21EB91AB69 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2D276F5829F1C85700F51382 /* ContentView.swift in Sources */,
|
||||
2D276F5629F1C85700F51382 /* testCustomEntitlementsComputationApp.swift in Sources */,
|
||||
2DB0898929F30ABD00A4DAE7 /* Constants.swift in Sources */,
|
||||
372A6651DC7ABDE7AA4C0DB8 /* TuistAssets+TestCustomEntitlementsComputation.swift in Sources */,
|
||||
08925B4E584FC5D20CA59FBE /* TuistBundle+TestCustomEntitlementsComputation.swift in Sources */,
|
||||
165EA4DBD39926FC9A7FF580 /* Constants.swift in Sources */,
|
||||
934F4A57DA874AB9FEC7DEAE /* ContentView.swift in Sources */,
|
||||
988FDB03EA1FAA46FD5D4060 /* testCustomEntitlementsComputationApp.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
2D276F5E29F1C85800F51382 /* Debug */ = {
|
||||
307B9D6AEF6EED4E56F5F658 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_PREVIEWS = YES;
|
||||
INFOPLIST_FILE = "Derived/InfoPlists/testCustomEntitlementsComputation-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = testCustomEntitlementsComputation;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = (
|
||||
"$(inherited)",
|
||||
DEBUG,
|
||||
);
|
||||
SWIFT_COMPILATION_MODE = singlefile;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3634D661A8E0A97836805213 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_PREVIEWS = YES;
|
||||
INFOPLIST_FILE = "Derived/InfoPlists/testCustomEntitlementsComputation-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = testCustomEntitlementsComputation;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
7156FB3704DF8A365714742C /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
@@ -198,8 +317,66 @@
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = 8SXR2327BM;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
741F762893818BD5864928D4 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = 8SXR2327BM;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
@@ -216,157 +393,34 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
2D276F5F29F1C85800F51382 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
2D276F6129F1C85800F51382 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_ASSET_PATHS = "\"testCustomEntitlementsComputation/Preview Content\"";
|
||||
DEVELOPMENT_TEAM = 8SXR2327BM;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
2D276F6229F1C85800F51382 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_ASSET_PATHS = "\"testCustomEntitlementsComputation/Preview Content\"";
|
||||
DEVELOPMENT_TEAM = 8SXR2327BM;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.revenuecat.sampleapp;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
2D276F4D29F1C85700F51382 /* Build configuration list for PBXProject "testCustomEntitlementsComputation" */ = {
|
||||
91129418DFF6B3F3158762A5 /* Build configuration list for PBXNativeTarget "testCustomEntitlementsComputation" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
2D276F5E29F1C85800F51382 /* Debug */,
|
||||
2D276F5F29F1C85800F51382 /* Release */,
|
||||
307B9D6AEF6EED4E56F5F658 /* Debug */,
|
||||
3634D661A8E0A97836805213 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
2D276F6029F1C85800F51382 /* Build configuration list for PBXNativeTarget "testCustomEntitlementsComputation" */ = {
|
||||
928B6F5BF967A7DC15FFC616 /* Build configuration list for PBXProject "testCustomEntitlementsComputation" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
2D276F6129F1C85800F51382 /* Debug */,
|
||||
2D276F6229F1C85800F51382 /* Release */,
|
||||
741F762893818BD5864928D4 /* Debug */,
|
||||
7156FB3704DF8A365714742C /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
|
||||
/* Begin XCSwiftPackageProductDependency section */
|
||||
5714382F29F86B4400CC2D44 /* RevenueCat_CustomEntitlementComputation */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = RevenueCat_CustomEntitlementComputation;
|
||||
};
|
||||
/* End XCSwiftPackageProductDependency section */
|
||||
};
|
||||
rootObject = 2D276F4A29F1C85700F51382 /* Project object */;
|
||||
rootObject = 0F199CE67194A4C3A8E8CB74 /* Project object */;
|
||||
}
|
||||
+9
-7
@@ -1,20 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1430"
|
||||
version = "1.7">
|
||||
LastUpgradeVersion = "1010"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "NO"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "2D276F5129F1C85700F51382"
|
||||
BlueprintIdentifier = "A87D977F7D7103389A52F6AC"
|
||||
BuildableName = "testCustomEntitlementsComputation.app"
|
||||
BlueprintName = "testCustomEntitlementsComputation"
|
||||
ReferencedContainer = "container:testCustomEntitlementsComputation.xcodeproj">
|
||||
@@ -27,7 +27,9 @@
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
disableMainThreadChecker = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
@@ -43,7 +45,7 @@
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "2D276F5129F1C85700F51382"
|
||||
BlueprintIdentifier = "A87D977F7D7103389A52F6AC"
|
||||
BuildableName = "testCustomEntitlementsComputation.app"
|
||||
BlueprintName = "testCustomEntitlementsComputation"
|
||||
ReferencedContainer = "container:testCustomEntitlementsComputation.xcodeproj">
|
||||
@@ -60,7 +62,7 @@
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "2D276F5129F1C85700F51382"
|
||||
BlueprintIdentifier = "A87D977F7D7103389A52F6AC"
|
||||
BuildableName = "testCustomEntitlementsComputation.app"
|
||||
BlueprintName = "testCustomEntitlementsComputation"
|
||||
ReferencedContainer = "container:testCustomEntitlementsComputation.xcodeproj">
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
-50
@@ -89,19 +89,6 @@ struct ContentView: View {
|
||||
.cornerRadius(20)
|
||||
.padding()
|
||||
|
||||
Button("Fetch product's intro/trial eligibility") {
|
||||
Task<Void, Never> {
|
||||
await checkProductTrialIntroEligibility()
|
||||
}
|
||||
}
|
||||
.font(.system(size: 20))
|
||||
.foregroundColor(.white)
|
||||
.frame(maxWidth: .infinity)
|
||||
.padding()
|
||||
.background(Color.blue)
|
||||
.cornerRadius(20)
|
||||
.padding()
|
||||
|
||||
.task {
|
||||
Purchases.configureInCustomEntitlementsComputationMode(apiKey: Constants.apiKey,
|
||||
appUserID: appUserID)
|
||||
@@ -244,43 +231,6 @@ struct ContentView: View {
|
||||
|
||||
}
|
||||
|
||||
func checkProductTrialIntroEligibility() async {
|
||||
guard let offerings = self.offerings,
|
||||
let offering = offerings.current,
|
||||
let package = offering.availablePackages.first else {
|
||||
print("no offerings, can't check product's eligibility")
|
||||
return
|
||||
}
|
||||
|
||||
print("Checking intro offers with the async functions.")
|
||||
print("Checking product trial intro eligibility with async checkTrialOrIntroDiscountEligibility(product:)...")
|
||||
let introStatus = await Purchases.shared.checkTrialOrIntroDiscountEligibility(product: package.storeProduct)
|
||||
print("Intro status: \(introStatus)")
|
||||
|
||||
print("Checking product trial intro eligibility with async checkTrialOrIntroDiscountEligibility(packages:)...")
|
||||
let introStatusDict = await Purchases.shared.checkTrialOrIntroDiscountEligibility(packages: [package])
|
||||
print("Intro status dictionary: \(introStatusDict)")
|
||||
|
||||
print("Checking product trial intro eligibility with async checkTrialOrIntroDiscountEligibility(productIdentifiers:)")
|
||||
let introStatusDict2 = await Purchases.shared.checkTrialOrIntroDiscountEligibility(
|
||||
productIdentifiers: [package.storeProduct.productIdentifier]
|
||||
)
|
||||
print("Intro status dictionary: \(introStatusDict2)")
|
||||
|
||||
print("Checking intro offers with the completion handler functions.")
|
||||
print("Checking product trial intro eligibility with checkTrialOrIntroDiscountEligibility(product:completion:)")
|
||||
Purchases.shared.checkTrialOrIntroDiscountEligibility(product: package.storeProduct) { introEligibilityStatus in
|
||||
print("Intro status: \(introEligibilityStatus)")
|
||||
|
||||
print("Checking checkTrialOrIntroDiscountEligibility(productIdentifiers:completion:")
|
||||
Purchases.shared.checkTrialOrIntroDiscountEligibility(
|
||||
productIdentifiers: [package.storeProduct.productIdentifier]
|
||||
) { introStatusDict3 in
|
||||
print("Intro status dict: \(introStatusDict3)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private let dateFormatter: DateFormatter = {
|
||||
let formatter = DateFormatter()
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// testCustomEntitlementsComputationApp.swift
|
||||
// testCustomEntitlementsComputation
|
||||
//
|
||||
// Created by Andrés Boedo on 4/20/23.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
struct testCustomEntitlementsComputationApp: App {
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
ContentView()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
// swiftlint:disable line_length
|
||||
|
||||
let allDestinations: Destinations = [
|
||||
.iPhone,
|
||||
.iPad,
|
||||
.mac,
|
||||
.macWithiPadDesign,
|
||||
.macCatalyst,
|
||||
.appleWatch,
|
||||
.appleTv,
|
||||
.appleVision,
|
||||
.appleVisionWithiPadDesign
|
||||
]
|
||||
|
||||
let allDeploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "13.0",
|
||||
macOS: "10.15",
|
||||
watchOS: "1.0",
|
||||
tvOS: "13.0"
|
||||
)
|
||||
|
||||
let project = Project(
|
||||
name: "APITesters",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID)),
|
||||
targets: [
|
||||
.target(
|
||||
name: "ObjcAPITester",
|
||||
destinations: allDestinations,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.ObjcAPITester",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
sources: [
|
||||
"../../Tests/APITesters/AllAPITests/ObjcAPITester/**/*.m"
|
||||
],
|
||||
headers: .headers(
|
||||
public: [
|
||||
"../../Tests/APITesters/AllAPITests/ObjcAPITester/RCSubscriptionInfoAPI.h"
|
||||
],
|
||||
project: [
|
||||
"../../Tests/APITesters/AllAPITests/ObjcAPITester/ObjcAPITester.h"
|
||||
]
|
||||
),
|
||||
dependencies: [
|
||||
.revenueCat
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "SwiftAPITester",
|
||||
destinations: allDestinations,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.SwiftAPITester",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
sources: [
|
||||
"../../Tests/APITesters/AllAPITests/SwiftAPITester/**/*.swift"
|
||||
],
|
||||
headers: .headers(
|
||||
public: [
|
||||
"../../Tests/APITesters/AllAPITests/SwiftAPITester/SwiftAPITester.h"
|
||||
]
|
||||
),
|
||||
dependencies: [
|
||||
.revenueCat
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "ReceiptParserAPITester",
|
||||
destinations: allDestinations,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.ReceiptParserAPITester",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
sources: [
|
||||
"../../Tests/APITesters/AllAPITests/ReceiptParserAPITester/**/*.swift"
|
||||
],
|
||||
headers: .headers(
|
||||
public: [
|
||||
"../../Tests/APITesters/AllAPITests/ReceiptParserAPITester/ReceiptParserAPITester.h"
|
||||
]
|
||||
),
|
||||
dependencies: [
|
||||
.receiptparser
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "RevenueCatUISwiftAPITester",
|
||||
destinations: allDestinations,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.RevenueCatUISwiftAPITester",
|
||||
deploymentTargets: .multiplatform(
|
||||
iOS: "15.0",
|
||||
macOS: "10.15",
|
||||
watchOS: "1.0",
|
||||
tvOS: "13.0"
|
||||
),
|
||||
sources: [
|
||||
"../../Tests/APITesters/AllAPITests/RevenueCatUISwiftAPITester/**/*.swift"
|
||||
],
|
||||
headers: .headers(
|
||||
public: [
|
||||
"../../Tests/APITesters/AllAPITests/RevenueCatUISwiftAPITester/RevenueCatUISwiftAPITester.h"
|
||||
]
|
||||
),
|
||||
dependencies: [
|
||||
.revenueCatUI
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "CustomEntitlementComputationSwiftAPITester",
|
||||
destinations: allDestinations,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.CustomEntitlementComputationSwiftAPITester",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
sources: [
|
||||
"../../Tests/APITesters/AllAPITests/CustomEntitlementComputationSwiftAPITester/**/*.swift"
|
||||
],
|
||||
headers: .headers(
|
||||
public: [
|
||||
"../../Tests/APITesters/AllAPITests/CustomEntitlementComputationSwiftAPITester/CustomEntitlementComputationSwiftAPITester.h"
|
||||
]
|
||||
),
|
||||
dependencies: [
|
||||
.revenueCatCustomEntitlementComputation
|
||||
]
|
||||
)
|
||||
],
|
||||
schemes: [],
|
||||
additionalFiles: [
|
||||
"../../Tests/APITesters/AllAPITests/ObjcAPITester/**/*.h",
|
||||
"../../Tests/APITesters/AllAPITests/SwiftAPITester/SwiftAPITester.h",
|
||||
"../../Tests/APITesters/AllAPITests/CustomEntitlementComputationSwiftAPITester/CustomEntitlementComputationSwiftAPITester.h",
|
||||
"../../Tests/APITesters/AllAPITests/RevenueCatUISwiftAPITester/RevenueCatUISwiftAPITester.h",
|
||||
"../../Tests/APITesters/AllAPITests/ReceiptParserAPITester/ReceiptParserAPITester.h"
|
||||
]
|
||||
)
|
||||
@@ -0,0 +1,83 @@
|
||||
import Foundation
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
let allDestinations: Destinations = [
|
||||
.iPhone,
|
||||
.iPad,
|
||||
.mac,
|
||||
.macWithiPadDesign,
|
||||
.macCatalyst,
|
||||
.appleWatch,
|
||||
.appleTv,
|
||||
.appleVision,
|
||||
.appleVisionWithiPadDesign
|
||||
]
|
||||
|
||||
let allDeploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "15.0",
|
||||
watchOS: "10.0",
|
||||
visionOS: "1.3"
|
||||
)
|
||||
|
||||
var additionalFiles: [FileElement] = [
|
||||
.glob(pattern: "../../Global.xcconfig")
|
||||
]
|
||||
if FileManager.default.fileExists(atPath: "../../Local.xcconfig") {
|
||||
additionalFiles.append(.glob(pattern: "../../Local.xcconfig"))
|
||||
}
|
||||
|
||||
let project = Project(
|
||||
name: "PaywallTester",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(
|
||||
base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID),
|
||||
configurations: [
|
||||
.debug(name: "Debug-SK", xcconfig: .relativeToRoot("Global.xcconfig")),
|
||||
.debug(name: "Debug")
|
||||
],
|
||||
defaultSettings: .essential
|
||||
),
|
||||
targets: [
|
||||
.target(
|
||||
name: "PaywallTester",
|
||||
destinations: allDestinations,
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.PaywallTester",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: "../../Tests/TestingApps/PaywallsTester/PaywallsTester/Info.plist",
|
||||
sources: [
|
||||
"../../Tests/TestingApps/PaywallsTester/PaywallsTester/**/*.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.revenueCat,
|
||||
.revenueCatUI,
|
||||
.storeKit
|
||||
]
|
||||
)
|
||||
],
|
||||
schemes: [
|
||||
.scheme(
|
||||
name: "PaywallTester - SK Config",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["PaywallTester"]),
|
||||
runAction: .runAction(
|
||||
configuration: "Debug-SK",
|
||||
executable: "PaywallTester",
|
||||
options: .options(
|
||||
storeKitConfigurationPath: "../../Tests/TestingApps/PaywallsTester/PaywallsTester/Products.storekit"
|
||||
)
|
||||
)
|
||||
),
|
||||
.scheme(
|
||||
name: "PaywallTester - Live Config",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["PaywallTester"]),
|
||||
runAction: .runAction(
|
||||
configuration: "Debug",
|
||||
executable: "PaywallTester"
|
||||
)
|
||||
)
|
||||
],
|
||||
additionalFiles: additionalFiles
|
||||
)
|
||||
@@ -0,0 +1,349 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
// MARK: - Shared Constants
|
||||
|
||||
func allDestinations(macWithiPadDesign: Bool) -> Destinations {
|
||||
let destinations: [Destination?] = [
|
||||
.iPhone,
|
||||
.iPad,
|
||||
.mac,
|
||||
macWithiPadDesign ? .macWithiPadDesign : nil,
|
||||
.macCatalyst,
|
||||
.appleWatch,
|
||||
.appleTv,
|
||||
.appleVision,
|
||||
.appleVisionWithiPadDesign
|
||||
]
|
||||
return Set(destinations.compactMap { $0 })
|
||||
}
|
||||
|
||||
let allDeploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "13.0",
|
||||
macOS: "11.0",
|
||||
watchOS: "7.0",
|
||||
tvOS: "14.0"
|
||||
)
|
||||
|
||||
// MARK: - Project Definition
|
||||
|
||||
let project = Project(
|
||||
name: "RevenueCat",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID)),
|
||||
targets: [
|
||||
// MARK: – Main Library
|
||||
.target(
|
||||
name: "RevenueCat",
|
||||
destinations: .allRevenueCat,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.Purchases",
|
||||
deploymentTargets: .allRevenueCat,
|
||||
infoPlist: "../../Sources/Info.plist",
|
||||
sources: [
|
||||
.glob(
|
||||
"../../Sources/**/*.swift",
|
||||
excluding: [
|
||||
"../../Sources/LocalReceiptParsing/ReceiptParser-only-files/**/*.swift"
|
||||
]
|
||||
)
|
||||
],
|
||||
headers: .headers(
|
||||
public: ["../../Sources/RevenueCat.h"]
|
||||
),
|
||||
settings: .settings(
|
||||
base: [
|
||||
"APPLICATION_EXTENSION_API_ONLY": "YES"
|
||||
]
|
||||
)
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "UnitTests",
|
||||
destinations: .allRevenueCat,
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.PurchasesTests",
|
||||
deploymentTargets: .allRevenueCat,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Tests/UnitTests/**/*.swift",
|
||||
"../../Tests/ReceiptParserTests/Helpers/MockBundle.swift",
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/AvailabilityChecks.swift",
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/StoreKitTestHelpers.swift",
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/ImageSnapshot.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "RevenueCat"),
|
||||
.nimble,
|
||||
.snapshotTesting,
|
||||
.ohHTTPStubsSwift
|
||||
],
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "RevenueCat_CustomEntitlementComputation",
|
||||
destinations: allDestinations(macWithiPadDesign: true),
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.RevenueCatCustomEntitlementComputation",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: "../../Sources/Info.plist",
|
||||
sources: [
|
||||
.glob(
|
||||
"../../Sources/**/*.swift",
|
||||
excluding: [
|
||||
"../../Sources/LocalReceiptParsing/ReceiptParser-only-files/**/*.swift"
|
||||
]
|
||||
)
|
||||
],
|
||||
headers: .headers(
|
||||
project: ["../../Sources/RevenueCat.h"]
|
||||
),
|
||||
settings: .settings(
|
||||
base: [
|
||||
"APPLICATION_EXTENSION_API_ONLY": "YES"
|
||||
]
|
||||
.swiftActiveCompilationConditions([.enableCustomEntitlementComputation])
|
||||
)
|
||||
),
|
||||
|
||||
// MARK: – Receipt Parser
|
||||
.target(
|
||||
name: "ReceiptParser",
|
||||
destinations: allDestinations(macWithiPadDesign: false),
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.ReceiptParser",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Sources/LocalReceiptParsing/**/*.swift"
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "ReceiptParserTests",
|
||||
destinations: allDestinations(macWithiPadDesign: false),
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.ReceiptParserTests",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Tests/ReceiptParserTests/**/*.swift"
|
||||
],
|
||||
resources: [
|
||||
"../../Tests/UnitTests/Resources/receipts/**/*.txt"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "ReceiptParser"),
|
||||
.nimble
|
||||
]
|
||||
),
|
||||
|
||||
// MARK: – Unit Tests Host App
|
||||
.target(
|
||||
name: "UnitTestsHostApp",
|
||||
destinations: allDestinations(macWithiPadDesign: true),
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.StoreKitUnitTestsHostApp",
|
||||
deploymentTargets: .multiplatform(
|
||||
iOS: "13.0",
|
||||
macOS: "10.15",
|
||||
watchOS: "6.2",
|
||||
tvOS: "13.0",
|
||||
visionOS: "1.0"
|
||||
),
|
||||
infoPlist: .file(path: "../../Tests/UnitTestsHostApp/Info.plist"),
|
||||
sources: [
|
||||
"../../Tests/UnitTestsHostApp/**/*.swift"
|
||||
],
|
||||
dependencies: [],
|
||||
),
|
||||
|
||||
// MARK: – StoreKit Unit Tests
|
||||
.target(
|
||||
name: "StoreKitUnitTests",
|
||||
destinations: allDestinations(macWithiPadDesign: true),
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.StoreKitUnitTests",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Tests/StoreKitUnitTests/**/*.swift",
|
||||
"../../Tests/UnitTests/TestHelpers/**/*.swift",
|
||||
"../../Tests/UnitTests/Misc/**/TestCase.swift",
|
||||
"../../Tests/UnitTests/Misc/**/CustomerInfo+TestExtensions.swift",
|
||||
"../../Tests/UnitTests/Misc/**/XCTestCase+Extensions.swift",
|
||||
"../../Tests/UnitTests/Mocks/**/*.swift"
|
||||
],
|
||||
resources: [
|
||||
"../../Tests/StoreKitUnitTests/UnitTestsConfiguration.storekit"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "RevenueCat"),
|
||||
.target(name: "UnitTestsHostApp"),
|
||||
.nimble,
|
||||
.ohHTTPStubsSwift,
|
||||
.snapshotTesting
|
||||
],
|
||||
additionalFiles: [
|
||||
"../../Tests/StoreKitUnitTests/UnitTestsConfiguration.storekit"
|
||||
]
|
||||
),
|
||||
|
||||
// MARK: – BackendIntegrationTests Host App
|
||||
.target(
|
||||
name: "BackendIntegrationTestsHostApp",
|
||||
destinations: allDestinations(macWithiPadDesign: true),
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.StoreKitTestApp",
|
||||
deploymentTargets: .multiplatform(
|
||||
iOS: "14.1",
|
||||
macOS: "10.15",
|
||||
tvOS: "14.1"
|
||||
),
|
||||
infoPlist: .file(path: "../../Tests/UnitTestsHostApp/Info.plist"),
|
||||
sources: [
|
||||
"../../Tests/BackendIntegrationTestApp/**/*.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.storeKit
|
||||
],
|
||||
settings: .settings(
|
||||
base: [
|
||||
"APPLICATION_EXTENSION_API_ONLY": "YES"
|
||||
]
|
||||
.swiftActiveCompilationConditions([.enableCustomEntitlementComputation])
|
||||
)
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "BackendCustomEntitlementsIntegrationTests",
|
||||
destinations: allDestinations(macWithiPadDesign: true),
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.BackendIntBackendCustomEntitlementsIntegrationTestsegrationTests",
|
||||
deploymentTargets: .iOS("16.0"),
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Tests/BackendIntegrationTests/CustomEntitlementsComputationIntegrationTests.swift",
|
||||
"../../Tests/BackendIntegrationTests/BaseBackendIntegrationTests.swift",
|
||||
"../../Tests/BackendIntegrationTests/BaseStoreKitIntegrationTests.swift",
|
||||
"../../Tests/BackendIntegrationTests/MainThreadMonitor.swift",
|
||||
"../../Tests/BackendIntegrationTests/Constants.swift",
|
||||
"../../Tests/BackendIntegrationTests/Helpers/**/*.swift",
|
||||
"../../Tests/UnitTests/Misc/**/TestCase.swift",
|
||||
"../../Tests/UnitTests/Mocks/MockSandboxEnvironmentDetector.swift",
|
||||
"../../Tests/UnitTests/TestHelpers/**/TestLogHandler.swift",
|
||||
"../../Tests/UnitTests/TestHelpers/**/CurrentTestCaseTracker.swift",
|
||||
"../../Tests/UnitTests/TestHelpers/**/AsyncTestHelpers.swift",
|
||||
"../../Tests/UnitTests/TestHelpers/**/OSVersionEquivalent.swift",
|
||||
"../../Tests/UnitTests/Misc/XCTestCase+Extensions.swift",
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/StoreKitTestHelpers.swift",
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/AvailabilityChecks.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "RevenueCat_CustomEntitlementComputation"),
|
||||
.target(name: "BackendIntegrationTestsHostApp"),
|
||||
.nimble,
|
||||
.snapshotTesting,
|
||||
.storeKitTests
|
||||
],
|
||||
settings: .settings(
|
||||
base: [:].swiftActiveCompilationConditions([.enableCustomEntitlementComputation])
|
||||
)
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "BackendIntegrationTests",
|
||||
destinations: allDestinations(macWithiPadDesign: true),
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.BackendIntegrationTests",
|
||||
deploymentTargets: .iOS("16.0"),
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
.glob(
|
||||
"../../Tests/BackendIntegrationTests/**/*.swift",
|
||||
excluding: [
|
||||
"../../Tests/BackendIntegrationTests/CustomEntitlementsComputationIntegrationTests.swift"
|
||||
]
|
||||
),
|
||||
"../../Tests/UnitTests/Mocks/MockSandboxEnvironmentDetector.swift",
|
||||
"../../Tests/UnitTests/Misc/**/TestCase.swift",
|
||||
"../../Tests/UnitTests/Misc/**/XCTestCase+Extensions.swift",
|
||||
"../../Tests/UnitTests/TestHelpers/**/*.swift",
|
||||
.glob(
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/**/*.swift",
|
||||
excluding: [
|
||||
"../../Tests/StoreKitUnitTests/TestHelpers/StoreKitConfigTestCase+Extensions.swift"
|
||||
]
|
||||
)
|
||||
],
|
||||
resources: [
|
||||
"../../Tests/BackendIntegrationTests/RevenueCat_IntegrationPurchaseTesterConfiguration.storekit"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "RevenueCat"),
|
||||
.nimble,
|
||||
.ohHTTPStubsSwift,
|
||||
.snapshotTesting,
|
||||
.storeKitTests
|
||||
],
|
||||
additionalFiles: [
|
||||
"../../Tests/BackendIntegrationTests/RevenueCat_IntegrationPurchaseTesterConfiguration.storekit",
|
||||
"../../BackendIntegrationTests/**.xctestplan"
|
||||
]
|
||||
)
|
||||
|
||||
],
|
||||
schemes: [
|
||||
.scheme(
|
||||
name: "RevenueCat",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["RevenueCat"]),
|
||||
testAction: .testPlans([
|
||||
.relativeToRoot("Tests/TestPlans/AllTests.xctestplan")
|
||||
]
|
||||
),
|
||||
runAction: .runAction(
|
||||
executable: "RevenueCat",
|
||||
options: .options(
|
||||
storeKitConfigurationPath: .relativeToRoot(
|
||||
"Tests/StoreKitUnitTests/UnitTestsConfiguration.storekit"
|
||||
)
|
||||
)
|
||||
),
|
||||
archiveAction: .archiveAction(configuration: "Release"),
|
||||
profileAction: .profileAction(configuration: "Release"),
|
||||
analyzeAction: .analyzeAction(configuration: "Debug")
|
||||
),
|
||||
|
||||
.scheme(
|
||||
name: "BackendIntegrationTests",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["BackendIntegrationTests"]),
|
||||
testAction: .testPlans([
|
||||
.relativeToRoot("BackendIntegrationTests/BackendIntegrationTests-All-CI.xctestplan")
|
||||
]
|
||||
),
|
||||
runAction: .runAction(
|
||||
executable: "BackendIntegrationTestsHostApp",
|
||||
options: .options(
|
||||
storeKitConfigurationPath: .relativeToRoot(
|
||||
"Tests/BackendIntegrationTests/RevenueCat_IntegrationPurchaseTesterConfiguration.storekit"
|
||||
)
|
||||
)
|
||||
),
|
||||
archiveAction: .archiveAction(configuration: "Release"),
|
||||
profileAction: .profileAction(configuration: "Release"),
|
||||
analyzeAction: .analyzeAction(configuration: "Debug")
|
||||
),
|
||||
|
||||
.scheme(
|
||||
name: "ReceiptParser",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["ReceiptParser"]),
|
||||
testAction: .targets([
|
||||
.testableTarget(target: .init(stringLiteral: "ReceiptParserTests"))
|
||||
]),
|
||||
runAction: .runAction(configuration: "Debug")
|
||||
)
|
||||
],
|
||||
)
|
||||
@@ -0,0 +1,65 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
let allDeploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "13.0",
|
||||
macOS: "10.15",
|
||||
watchOS: "6.2",
|
||||
tvOS: "13.0",
|
||||
visionOS: "1.0"
|
||||
)
|
||||
|
||||
let project = Project(
|
||||
name: "RevenueCatUI",
|
||||
organizationName: .revenueCatOrgName,
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID)),
|
||||
targets: [
|
||||
.target(
|
||||
name: "RevenueCatUI",
|
||||
destinations: .allRevenueCat,
|
||||
product: .framework,
|
||||
bundleId: "com.revenuecat.RevenueCatUI",
|
||||
deploymentTargets: .allRevenueCat,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../RevenueCatUI/**/*.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.revenueCat
|
||||
]
|
||||
),
|
||||
|
||||
// MARK: – RevenueCat Tests
|
||||
.target(
|
||||
name: "RevenueCatUITests",
|
||||
destinations: .allRevenueCat,
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.sampleapp.tests",
|
||||
deploymentTargets: .allRevenueCat,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Tests/RevenueCatUITests/**/*.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "RevenueCatUI"),
|
||||
.nimble,
|
||||
.snapshotTesting,
|
||||
.ohHTTPStubsSwift
|
||||
]
|
||||
)
|
||||
],
|
||||
schemes: [
|
||||
.scheme(
|
||||
name: "RevenueCatUI",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: ["RevenueCatUI"]),
|
||||
testAction: .targets([
|
||||
.testableTarget(target: .init(stringLiteral: "RevenueCatUITests"))
|
||||
]),
|
||||
runAction: .runAction(configuration: "Debug"),
|
||||
archiveAction: .archiveAction(configuration: "Release"),
|
||||
profileAction: .profileAction(configuration: "Release"),
|
||||
analyzeAction: .analyzeAction(configuration: "Debug")
|
||||
)
|
||||
]
|
||||
)
|
||||
@@ -0,0 +1,91 @@
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
// swiftlint:disable line_length
|
||||
|
||||
// MARK: - Shared Constants
|
||||
|
||||
let allDestinations: Destinations = [
|
||||
.iPhone,
|
||||
.iPad
|
||||
]
|
||||
|
||||
let allDeploymentTargets: DeploymentTargets = .multiplatform(
|
||||
iOS: "16.2",
|
||||
)
|
||||
|
||||
// MARK: - Project Definition
|
||||
|
||||
let project = Project(
|
||||
name: "v3LoadShedderIntegration",
|
||||
organizationName: .revenueCatOrgName,
|
||||
targets: [
|
||||
// MARK: – Main Library
|
||||
.target(
|
||||
name: "v3LoadShedderIntegration",
|
||||
destinations: allDestinations,
|
||||
product: .app,
|
||||
bundleId: "com.revenuecat.v3LoadShedderIntegration",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: .file(path: "../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/Info.plist"),
|
||||
sources: [
|
||||
.glob(
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/**/*.swift"
|
||||
)
|
||||
],
|
||||
resources: [
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/Assets.xcassets",
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/Base.lproj/LaunchScreen.storyboard",
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/Base.lproj/Main.storyboard",
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegrationTests/V3LoadShedderIntegrationTestsConfiguration.storekit"
|
||||
],
|
||||
headers: .headers(
|
||||
project: ["../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/v3LoadShedderIntegrationTests-Info.h"]
|
||||
),
|
||||
additionalFiles: [
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegrationTests/V3LoadShedderIntegrationTestsConfiguration.storekit",
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegration/Info.plist"
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "v3LoadShedderIntegrationTests",
|
||||
destinations: allDestinations,
|
||||
product: .unitTests,
|
||||
bundleId: "com.revenuecat.v3LoadShedderIntegrationTests",
|
||||
deploymentTargets: allDeploymentTargets,
|
||||
infoPlist: .default,
|
||||
sources: [
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegrationTests/**/*.swift"
|
||||
],
|
||||
dependencies: [
|
||||
.target(name: "v3LoadShedderIntegration"),
|
||||
.external(name: "Purchases")
|
||||
],
|
||||
additionalFiles: [
|
||||
"../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegrationTests/V3LoadShedderIntegrationTestsConfiguration.storekit"
|
||||
]
|
||||
)
|
||||
],
|
||||
schemes: [
|
||||
.scheme(
|
||||
name: "v3LoadShedderIntegration",
|
||||
shared: true,
|
||||
buildAction: .buildAction(targets: [
|
||||
"v3LoadShedderIntegration",
|
||||
"v3LoadShedderIntegrationTests"
|
||||
]),
|
||||
testAction: .targets(["v3LoadShedderIntegrationTests"]),
|
||||
runAction: .runAction(
|
||||
executable: "v3LoadShedderIntegration",
|
||||
options: .options(
|
||||
storeKitConfigurationPath: "../../Tests/v3LoadShedderIntegration/v3LoadShedderIntegrationTests/V3LoadShedderIntegrationTestsConfiguration.storekit"
|
||||
)
|
||||
),
|
||||
archiveAction: .archiveAction(configuration: "Release"),
|
||||
profileAction: .profileAction(configuration: "Release"),
|
||||
analyzeAction: .analyzeAction(configuration: "Debug")
|
||||
)
|
||||
],
|
||||
settings: .settings(base: [:].automaticCodeSigning(devTeam: .revenueCatTeamID))
|
||||
)
|
||||
@@ -2,6 +2,10 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
@@ -28,5 +32,58 @@
|
||||
<string>$(REVENUECAT_PROXY_URL_HOST)</string>
|
||||
<key>REVENUECAT_PROXY_URL_SCHEME</key>
|
||||
<string>$(REVENUECAT_PROXY_URL_SCHEME)</string>
|
||||
<key>WKWatchOnly</key>
|
||||
<false/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>UISupportedInterfaceOrientations~iphone</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIRequiresFullScreen</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.developer-tools</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>RevenueCat</string>
|
||||
<key>UIApplicationSceneManifest</key>
|
||||
<dict>
|
||||
<key>UIApplicationSupportsMultipleScenes</key>
|
||||
<true/>
|
||||
<key>UISceneConfigurations</key>
|
||||
<dict>
|
||||
<key>UIWindowSceneSessionRoleApplication</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UISceneConfigurationName</key>
|
||||
<string>Default</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UILaunchScreen</key>
|
||||
<dict>
|
||||
<key>UILaunchScreen</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
+2
-2
@@ -11,7 +11,7 @@ import SwiftUI
|
||||
|
||||
struct OfferingsList: View {
|
||||
|
||||
@Binding
|
||||
@Binding
|
||||
private var introEligility: IntroEligibilityStatus
|
||||
|
||||
var body: some View {
|
||||
@@ -75,7 +75,7 @@ struct OfferingsList: View {
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ViewBuilder
|
||||
private func offeringsList(with data: PaywallsData) -> some View {
|
||||
List {
|
||||
|
||||
@@ -2,6 +2,22 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Purchase Tester</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
@@ -15,8 +31,12 @@
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.developer-tools</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
@@ -39,5 +59,25 @@
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UILaunchScreen</key>
|
||||
<dict>
|
||||
<key>UILaunchScreen</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~iphone</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -810,7 +810,6 @@
|
||||
INFOPLIST_FILE = PurchaseTesterWatchOS/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = PurchaseTesterWatchOS;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
|
||||
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.revenuecat.sampleapp;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
@@ -839,7 +838,6 @@
|
||||
INFOPLIST_FILE = PurchaseTesterWatchOS/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = PurchaseTesterWatchOS;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
|
||||
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.revenuecat.sampleapp;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
|
||||
@@ -2,7 +2,34 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>PurchaseTesterWatchOS</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>WKWatchKitApp</string>
|
||||
<key>REVENUECAT_API_KEY</key>
|
||||
<string>$(REVENUECAT_API_KEY)</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
</array>
|
||||
<key>WKCompanionAppBundleIdentifier</key>
|
||||
<string>com.revenuecat.sampleapp</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+238
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "12.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "3x",
|
||||
"subtype" : "2688h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "12.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "3x",
|
||||
"subtype" : "2688h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "12.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "1792h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "12.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x",
|
||||
"subtype" : "1792h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "12.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "2388h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "12.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x",
|
||||
"subtype" : "2388h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "11.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "3x",
|
||||
"subtype" : "2436h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "11.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "3x",
|
||||
"subtype" : "2436h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "10.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "2224h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "10.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x",
|
||||
"subtype" : "2224h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "9.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "1366h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "9.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x",
|
||||
"subtype" : "1366h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "8.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "3x",
|
||||
"subtype" : "736h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "8.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "3x",
|
||||
"subtype" : "736h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "8.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "667h"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "retina4"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x",
|
||||
"subtype" : "retina4"
|
||||
},
|
||||
{
|
||||
"extent" : "to-status-bar",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "to-status-bar",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"extent" : "to-status-bar",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "to-status-bar",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "ipad",
|
||||
"orientation" : "landscape",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -212,16 +212,6 @@ final class ReceiptStringsTests: TestCase {
|
||||
expect(subject.description).to(equal(expectedDescription))
|
||||
}
|
||||
|
||||
func testReceiptRetryingMechanismNotAvailable() {
|
||||
let subject = ReceiptStrings
|
||||
.receipt_retrying_mechanism_not_available
|
||||
let expectedDescription = "Receipt retrying mechanism is not available in iOS 12. " +
|
||||
"Will only attempt to fetch once."
|
||||
|
||||
expect(subject.category).to(equal("receipt"))
|
||||
expect(subject.description).to(equal(expectedDescription))
|
||||
}
|
||||
|
||||
func testLocalReceiptMissingPurchase() {
|
||||
let receipt = AppleReceipt(
|
||||
environment: .unknown,
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"originHash" : "fbdec518f66720abc9cceef1ea36ee3229c4faa09fdcfd36f45e77839c989f98",
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "purchases-ios",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/RevenueCat/purchases-ios",
|
||||
"state" : {
|
||||
"revision" : "590804fc3a141fb52762b9232ba5791fce645fe7",
|
||||
"version" : "3.14.4"
|
||||
}
|
||||
}
|
||||
],
|
||||
"version" : 3
|
||||
}
|
||||
@@ -21,5 +21,42 @@
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UISupportedInterfaceOrientations~iphone</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+65
-2
@@ -1,4 +1,14 @@
|
||||
{
|
||||
"appPolicies" : {
|
||||
"eula" : "",
|
||||
"policies" : [
|
||||
{
|
||||
"locale" : "en_US",
|
||||
"policyText" : "",
|
||||
"policyURL" : ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"identifier" : "B495CDA2",
|
||||
"nonRenewingSubscriptions" : [
|
||||
|
||||
@@ -7,6 +17,56 @@
|
||||
|
||||
],
|
||||
"settings" : {
|
||||
"_failTransactionsEnabled" : false,
|
||||
"_locale" : "en_US",
|
||||
"_storefront" : "USA",
|
||||
"_storeKitErrors" : [
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Load Products"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Purchase"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Verification"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "App Store Sync"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Subscription Status"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "App Transaction"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Manage Subscriptions Sheet"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Refund Request Sheet"
|
||||
},
|
||||
{
|
||||
"current" : null,
|
||||
"enabled" : false,
|
||||
"name" : "Offer Code Redeem Sheet"
|
||||
}
|
||||
],
|
||||
"_timeRate" : 6
|
||||
},
|
||||
"subscriptionGroups" : [
|
||||
@@ -40,7 +100,10 @@
|
||||
"recurringSubscriptionPeriod" : "P1M",
|
||||
"referenceName" : "loadShedder monthly",
|
||||
"subscriptionGroupID" : "ADE6FE00",
|
||||
"type" : "RecurringSubscription"
|
||||
"type" : "RecurringSubscription",
|
||||
"winbackOffers" : [
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -50,7 +113,7 @@
|
||||
"privateKey" : "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgMpw0LScUC+8o+WsEAM20KOMzZOMSWKFjUixtwDidPMugCgYIKoZIzj0DAQehRANCAAQIMw4YEVZrDPrk/1dx5WV3hpkuy8enQs+yDAuJRtsrOnzRH6EFgTyiydprKlgUOHW6xBocrRNTMZXioCBQtchg"
|
||||
},
|
||||
"version" : {
|
||||
"major" : 2,
|
||||
"major" : 4,
|
||||
"minor" : 0
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import ProjectDescription
|
||||
|
||||
let tuist = Tuist(
|
||||
project: .tuist(
|
||||
swiftVersion: Version(5, 10, 0),
|
||||
generationOptions: .options(
|
||||
staticSideEffectsWarningTargets: .all,
|
||||
enforceExplicitDependencies: true
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"originHash" : "307cbbbed5d781834365009af8023abbc6ef88a08803b78642391c6cfb4b3ab3",
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "cwlcatchexception",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/mattgallagher/CwlCatchException.git",
|
||||
"state" : {
|
||||
"revision" : "07b2ba21d361c223e25e3c1e924288742923f08c",
|
||||
"version" : "2.2.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "cwlpreconditiontesting",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
|
||||
"state" : {
|
||||
"revision" : "0139c665ebb45e6a9fbdb68aabfd7c39f3fe0071",
|
||||
"version" : "2.2.2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "nimble",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/quick/nimble",
|
||||
"state" : {
|
||||
"revision" : "7795df4fff1a9cd231fe4867ae54f4dc5f5734f9",
|
||||
"version" : "13.7.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "ohhttpstubs",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/AliSoftware/OHHTTPStubs",
|
||||
"state" : {
|
||||
"branch" : "9.1.0",
|
||||
"revision" : "12f19662426d0434d6c330c6974d53e2eb10ecd9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "purchases-ios",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/RevenueCat/purchases-ios",
|
||||
"state" : {
|
||||
"branch" : "main",
|
||||
"revision" : "b715caf85ab9298db7ab16976ac3ed196a837993"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "purchases-ios-spm",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/RevenueCat/purchases-ios-spm",
|
||||
"state" : {
|
||||
"branch" : "3.14.4",
|
||||
"revision" : "590804fc3a141fb52762b9232ba5791fce645fe7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "swift-snapshot-testing",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/pointfreeco/swift-snapshot-testing",
|
||||
"state" : {
|
||||
"revision" : "26ed3a2b4a2df47917ca9b790a57f91285b923fb"
|
||||
}
|
||||
}
|
||||
],
|
||||
"version" : 3
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
// swift-tools-version: 6.0
|
||||
@preconcurrency import PackageDescription
|
||||
|
||||
#if TUIST
|
||||
import ProjectDescription
|
||||
|
||||
let packageSettings = PackageSettings(
|
||||
productTypes: [
|
||||
"Nimble": .framework,
|
||||
"SnapshotTesting": .framework, // default is .staticFramework,
|
||||
"RevenueCat": .framework,
|
||||
"RevenueCatUI": .framework,
|
||||
"Purchases": .framework,
|
||||
"OHHTTPStubs": .framework,
|
||||
"OHHTTPStubsSwift": .framework
|
||||
]
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
let package = Package(
|
||||
name: "Dependencies",
|
||||
dependencies: [
|
||||
.package(
|
||||
url: "https://github.com/quick/nimble",
|
||||
exact: "13.7.1"
|
||||
),
|
||||
.package(
|
||||
url: "https://github.com/pointfreeco/swift-snapshot-testing",
|
||||
revision: "26ed3a2b4a2df47917ca9b790a57f91285b923fb"
|
||||
),
|
||||
.package(
|
||||
url: "https://github.com/RevenueCat/purchases-ios",
|
||||
branch: "main"
|
||||
),
|
||||
.package(
|
||||
url: "https://github.com/RevenueCat/purchases-ios-spm",
|
||||
revision: "3.14.4"
|
||||
),
|
||||
.package(
|
||||
url: "https://github.com/AliSoftware/OHHTTPStubs",
|
||||
revision: "9.1.0"
|
||||
)
|
||||
]
|
||||
)
|
||||
@@ -0,0 +1,15 @@
|
||||
import ProjectDescription
|
||||
|
||||
extension DeploymentTargets {
|
||||
|
||||
/// Deployment targets for all RevenueCat targets (RevenueCat, RevenueCatUI)
|
||||
public static var allRevenueCat: DeploymentTargets {
|
||||
.multiplatform(
|
||||
iOS: "13.0",
|
||||
macOS: "10.15",
|
||||
watchOS: "6.2",
|
||||
tvOS: "13.0",
|
||||
visionOS: "1.0"
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import ProjectDescription
|
||||
|
||||
extension Destinations {
|
||||
|
||||
/// Destinations for all RevenueCat targets (RevenueCat, RevenueCatUI)
|
||||
public static var allRevenueCat: Destinations {
|
||||
[
|
||||
.iPhone,
|
||||
.iPad,
|
||||
.mac,
|
||||
.macWithiPadDesign,
|
||||
.macCatalyst,
|
||||
.appleWatch,
|
||||
.appleTv,
|
||||
.appleVision,
|
||||
.appleVisionWithiPadDesign
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import ProjectDescription
|
||||
|
||||
extension Environment {
|
||||
/// Returns whether the current environment is local.
|
||||
/// This is determined by the `rcLocal` environment variable, defaulting to `true` if not set.
|
||||
///
|
||||
/// Example usage:
|
||||
/// ```bash
|
||||
/// # Generate project with local environment (default)
|
||||
/// tuist generate
|
||||
///
|
||||
/// # Generate project with non-local environment
|
||||
/// TUIST_RC_LOCAL=false tuist generate
|
||||
/// ```
|
||||
public static var local: Bool {
|
||||
Environment.rcLocal.getBoolean(default: true)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import ProjectDescription
|
||||
|
||||
extension String {
|
||||
|
||||
/// Enable custom entitlement computation key
|
||||
public static let enableCustomEntitlementComputation: String = "ENABLE_CUSTOM_ENTITLEMENT_COMPUTATION"
|
||||
|
||||
/// The team ID for RevenueCat
|
||||
public static let revenueCatTeamID: String = "8SXR2327BM"
|
||||
|
||||
/// The name of the RevenueCat team
|
||||
public static let revenueCatOrgName: String = "RevenueCat, Inc."
|
||||
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
import ProjectDescription
|
||||
|
||||
extension TargetDependency {
|
||||
/// Returns a RevenueCat dependency that can be either local or external
|
||||
/// - Parameter local: If true, returns a local project dependency. If false, returns an external dependency
|
||||
/// from spm
|
||||
/// - Returns: A TargetDependency for RevenueCat
|
||||
public static var revenueCat: TargetDependency {
|
||||
if Environment.local {
|
||||
.project(
|
||||
target: "RevenueCat",
|
||||
path: .relativeToRoot("Projects/RevenueCat")
|
||||
)
|
||||
} else {
|
||||
.revenueCatLocal
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns a local RevenueCat dependency from SPM
|
||||
/// - Returns: A TargetDependency for RevenueCat from external source
|
||||
public static var revenueCatLocal: TargetDependency {
|
||||
.external(
|
||||
name: "RevenueCat"
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns a RevenueCat dependency with custom entitlement computation enabled
|
||||
/// - Returns: A TargetDependency for RevenueCat_CustomEntitlementComputation
|
||||
public static var revenueCatCustomEntitlementComputation: TargetDependency {
|
||||
.project(
|
||||
target: "RevenueCat_CustomEntitlementComputation",
|
||||
path: .relativeToRoot("Projects/RevenueCat")
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns a RevenueCatUI dependency that can be either local or external
|
||||
/// - Parameter local: If true, returns a local project dependency. If false, returns an external dependency
|
||||
/// from spm
|
||||
/// - Returns: A TargetDependency for RevenueCatUI
|
||||
public static var revenueCatUI: TargetDependency {
|
||||
if Environment.local {
|
||||
.project(
|
||||
target: "RevenueCatUI",
|
||||
path: .relativeToRoot("Projects/RevenueCatUI")
|
||||
)
|
||||
} else {
|
||||
.revenueCatUILocal
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns a local RevenueCatUI dependency from SPM
|
||||
/// - Returns: A TargetDependency for RevenueCatUI from external source
|
||||
public static var revenueCatUILocal: TargetDependency {
|
||||
.external(
|
||||
name: "RevenueCatUI"
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns a ReceiptParser dependency
|
||||
/// - Returns: A TargetDependency for ReceiptParser
|
||||
public static var receiptparser: TargetDependency {
|
||||
.project(
|
||||
target: "ReceiptParser",
|
||||
path: .relativeToRoot("Projects/RevenueCat")
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns a dependency for the Nimble testing framework
|
||||
/// - Returns: A TargetDependency for Nimble
|
||||
public static var nimble: TargetDependency {
|
||||
.external(
|
||||
name: "Nimble"
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns a dependency for the SnapshotTesting framework
|
||||
/// - Returns: A TargetDependency for SnapshotTesting
|
||||
public static var snapshotTesting: TargetDependency {
|
||||
.external(
|
||||
name: "SnapshotTesting"
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns a dependency for the OHHTTPStubs framework
|
||||
/// - Returns: A TargetDependency for OHHTTPStubs
|
||||
public static var ohHTTPStubs: TargetDependency {
|
||||
.external(name: "OHHTTPStubs")
|
||||
}
|
||||
|
||||
/// Returns a dependency for the OHHTTPStubsSwift framework
|
||||
/// - Returns: A TargetDependency for OHHTTPStubsSwift
|
||||
public static var ohHTTPStubsSwift: TargetDependency {
|
||||
.external(name: "OHHTTPStubsSwift")
|
||||
}
|
||||
|
||||
/// Returns a dependency for the StoreKit framework
|
||||
/// - Returns: A TargetDependency for StoreKit
|
||||
public static var storeKit: TargetDependency {
|
||||
.sdk(name: "StoreKit", type: .framework)
|
||||
}
|
||||
|
||||
/// Returns a dependency for the StoreKitTest framework
|
||||
/// - Returns: A TargetDependency for StoreKitTest
|
||||
public static var storeKitTests: TargetDependency {
|
||||
.sdk(name: "StoreKitTest", type: .framework)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import Foundation
|
||||
import ProjectDescription
|
||||
import ProjectDescriptionHelpers
|
||||
|
||||
var projects: [Path] = [
|
||||
"./Examples/rc-maestro/",
|
||||
"./Examples/MagicWeather/",
|
||||
"./Examples/MagicWeatherSwiftUI/",
|
||||
"./Examples/testCustomEntitlementsComputation/",
|
||||
"./Examples/PurchaseTester/",
|
||||
"./Projects/PaywallTester",
|
||||
"./Projects/APITesters"
|
||||
]
|
||||
|
||||
if Environment.local {
|
||||
projects.append("./Projects/RevenueCat")
|
||||
projects.append("./Projects/RevenueCatUI")
|
||||
} else {
|
||||
// Needs 3.0.0 of Purchases.
|
||||
// Only when TUIST_RC_LOCAL=false tuist generate
|
||||
projects.append("./Projects/v3LoadShedderIntegration")
|
||||
}
|
||||
|
||||
var additionalFiles: [FileElement] = [
|
||||
.glob(pattern: "Global.xcconfig")
|
||||
]
|
||||
if FileManager.default.fileExists(atPath: "Local.xcconfig") {
|
||||
additionalFiles.append(.glob(pattern: "Local.xcconfig"))
|
||||
}
|
||||
|
||||
let workspace = Workspace(
|
||||
name: "RevenueCat-Workspace",
|
||||
projects: projects,
|
||||
additionalFiles: additionalFiles
|
||||
)
|
||||
Reference in new issue
Block a user