Skip to content

Commit

Permalink
Add Appclips support (#10)
Browse files Browse the repository at this point in the history
* Respect user input if abi_generation_mode is explicitly provided in java_library (facebook#2467)

* Automate publishing docs on CirclrCI (facebook#2486)

* Automate publishing docs on CirclrCI

* Automate publishing docs on CircleCI

* Automate publishing docs on CircleCI

* Automate publishing docs using linux VM

* Fixed Python3 compatible issues

* Added code to install android_sdk

* Automate docs, installed JDK for java docs

* Automate publishing docs on CircleCI, added CNAME

* Automate publishing docs deleted an extra line

* Automate publishing docs, refactored code

* Automate publishing docs, changed a required test name

Co-authored-by: buck-bot <66389669+buck-bot@users.noreply.github.com>

* Fixed git push access denied issue (facebook#2487)

Co-authored-by: buck-bot <66389669+buck-bot@users.noreply.github.com>

* handle bundling resources of static frameworks (Originally by rmaz) (facebook#2490)

* handle bundling resources of static framworks

add a test for bundling resources of static deps

make formatter happy

* Indentation fix

* Reverted some filtering changes

Co-authored-by: Richard Howell <richardh@uber.com>
Co-authored-by: Gabe <gabriel.beltrame@luizalabs.com>

* Add support for java 11 builds in jitpack (facebook#2499)

* Fixed Unable to resolve dependency jdk8 (= 8.0.172) (facebook#2492)

Co-authored-by: buck-bot <66389669+buck-bot@users.noreply.github.com>

* CircleCI fix (facebook#2495)

Co-authored-by: buck-bot <66389669+buck-bot@users.noreply.github.com>

* Added python3 to interpreter names (facebook#2497)

* Added python3 to interpreter names

* Fixed an infinite recursive call

* Test fixes

* test fixes

* Pull out unrelated changes

Co-authored-by: buck-bot <66389669+buck-bot@users.noreply.github.com>

* Fixes for rust tests (facebook#2503)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Add support for ANDROID_SDK_ROOT environment variable (facebook#2507)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Fix for facebook#2498 (facebook#2504)

* Fix for facebook#2498

Buck fails to build non predex apps which include jars containing module-info.class files` facebook#2498

* Update DalvikStatsCache.java

Typo fix

* Update DalvikStatsCache.java

Added comment for special case

* Update DalvikStatsCache.java

Added new New line and space before comments.

v-jizhang 12 hours ago Contributor
Could you move your comment 1 line down and add 1 space after "//"? Thanks @surapuramakhil

* extracted filename from entry relative path, updated check with equals intead of ends with

* updated comment

* Set max store size bytes correctly so it is used by AbstractAsynchronousCache to decide what to upload (facebook#2510)

* CI rust test fixes (facebook#2511)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Fixed a phthon installation bug on CircleCI (facebook#2509)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* add Easynvest to buck showcases (facebook#2514)

Co-authored-by: Lucas Marçal <lucas.fernandes@easynvest.com.br>

* Make Python3 the first choice of python interpreter (facebook#2512)

* Make Python3 the first choice of python interpreter

* Fixed tests

* Fixed tests

* Fixed tests

* Fixed testgs

* Fixed tests

* Fixed tests

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Fixed a python3 compatible issue (facebook#2517)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Added application_region and application_language properties to xcode_workspace_config (facebook#2519)

* Add region and language option to launch and test actions in xcode_workspace_config

* Add application region and language arguments to projectV2

* Create unit test

Co-authored-by: Lucas Marçal <lucas.fernandes@easynvest.com.br>

* Added Android NDK tests (facebook#2515)

* Added Android NDK 19 tests

* Added ndk 20 tests

* Added NDK 21 tests

* Added timout for long running tests

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Saifulriza (facebook#2523)

* Add logo

* Update README.md

* Update README.md

* Add full kotlin configurations to kotlin rule (v2) (facebook#2526)

* Add full kotlin configurations to kotlin rule

* Adding test for KotlinConfiguredComilerFactory

* Fixing pmd issue on setup method

* Renaming remaining references to extra_kotlinc_arguments to free_compiler_args

* Adding license info to new test file

Co-authored-by: Zac Sweers <pandanomic@gmail.com>

* Fixing paths that fail during project generation (facebook#2527)

* (Rebase) Add snapshot_images_diff_path to apple_test (facebook#2528)

* Add snapshot_images_diff_path to apple_test

* Fix some issues found at code review

Co-authored-by: Lucas Marçal <lucas.fernandes@easynvest.com.br>

* Fixes for Windows tests (facebook#2529)

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Fixes for Windows tests

* Added Flavors to docs (facebook#2522)

* Added Flavors to docs

* Flavor documentation, moddified per code review.

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Added a kotlin tutorial for android (facebook#2525)

* Added a kotlin tutorial for android

* Corrected errors in kotlin tutorial

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Prepare release v2020.09.01 (facebook#2532)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Added dependency to pulbishing docs (facebook#2534)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Fixed CircleCI tests (facebook#2531)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Upgraded ruby syntax in replease process (facebook#2533)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Skip flaky tests on Windows platform (facebook#2536)

* Skip flaky tests on Windows platform

* Skip flaky tests on Windows platform

* Skip flaky tests on Windows platform

* Skip flaky tests on Windows platform

* Skip a flaky test on Windows

* Increased a timeout in Winddows test. (facebook#2544)

* Fixed dlang installation error (facebook#2543)

* Fixed dlang installation error

* Fixed dlang installation error

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Install python2 from archive. (facebook#2542)

* Install python2 from archive.

* Fixed an python3 installation error.

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Fixed a link (facebook#2539)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Added a rust tutorial (facebook#2540)

Co-authored-by: v-jizhang <66389669+buck-bot@users.noreply.github.com>

* Add app clip support

* Add integration test

* fix target name at Integration test

* fix typo

* Fix bundle ProductType

* Add support for async worker processes (facebook#2547)

* Allow WorkerProcess to be used for multiple jobs at the same time.

No users yet, but next up is the process pool.

* Introduce a new `async` option to worker tools.

This makes buck call the tool concurrently, without waiting for responses. It's up to the tool to provide responses with the right ids, in any order.

* Write some tests, fix some bugs

* Add back license

* Update WorkerProcessPool.java

* Fix windows tests

Don't crash all of buck when a worker process fails.

* Code review feedback and clarifications, I hope

* remove duplicated change

Co-authored-by: David Z Hao <davidhao3300@yahoo.com>
Co-authored-by: Jinlin Zhang <jinlinzhang@fb.com>
Co-authored-by: buck-bot <66389669+buck-bot@users.noreply.github.com>
Co-authored-by: Gabe <gabriel.unknoob@gmail.com>
Co-authored-by: Richard Howell <richardh@uber.com>
Co-authored-by: Gabe <gabriel.beltrame@luizalabs.com>
Co-authored-by: Gautam Korlam <kageiit@users.noreply.github.com>
Co-authored-by: Akhil <surapuramakhil@gmail.com>
Co-authored-by: Ravi Agarwal <raviagarwal7@users.noreply.github.com>
Co-authored-by: Lucas Marçal <lucas.fernandes@easynvest.com.br>
Co-authored-by: Saiful Riza <45083824+Saifulriza123@users.noreply.github.com>
Co-authored-by: Ty Smith <tys@uber.com>
Co-authored-by: Zac Sweers <pandanomic@gmail.com>
Co-authored-by: Lucas Marçal <lucas.marcal@ifood.com.br>
Co-authored-by: Mike Kaplinskiy <mike.kaplinskiy@gmail.com>
  • Loading branch information
16 people authored Oct 20, 2020
1 parent d767268 commit 697cb13
Show file tree
Hide file tree
Showing 24 changed files with 300 additions and 7 deletions.
3 changes: 2 additions & 1 deletion src/com/facebook/buck/apple/AppleBinaryDescription.java
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,8 @@ private BuildRule createBundleBuildRule(
swiftBuckConfig.getUseLipoThin(),
cxxBuckConfig.shouldCacheStrip(),
appleConfig.useEntitlementsWhenAdhocCodeSigning(),
Predicates.alwaysTrue());
Predicates.alwaysTrue(),
Optional.empty());
}

private BuildRule createBinary(
Expand Down
9 changes: 8 additions & 1 deletion src/com/facebook/buck/apple/AppleBundle.java
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ public class AppleBundle extends AbstractBuildRule
private final Duration codesignTimeout;
private final BuildRuleParams buildRuleParams;
private BuildableSupport.DepsSupplier depsSupplier;
private final Optional<Boolean> isAppClip;

AppleBundle(
BuildTarget buildTarget,
Expand Down Expand Up @@ -224,7 +225,8 @@ public class AppleBundle extends AbstractBuildRule
Duration codesignTimeout,
boolean copySwiftStdlibToFrameworks,
boolean useLipoThin,
boolean useEntitlementsWhenAdhocCodeSigning) {
boolean useEntitlementsWhenAdhocCodeSigning,
Optional<Boolean> isAppClip) {
super(buildTarget, projectFilesystem);
this.buildRuleParams = params;
this.extension =
Expand Down Expand Up @@ -301,6 +303,7 @@ public class AppleBundle extends AbstractBuildRule
this.useLipoThin = useLipoThin;
this.useEntitlementsWhenAdhocCodeSigning = useEntitlementsWhenAdhocCodeSigning;
this.depsSupplier = BuildableSupport.buildDepsSupplier(this, graphBuilder);
this.isAppClip = isAppClip;
}

public static String getBinaryName(BuildTarget buildTarget, Optional<String> productName) {
Expand Down Expand Up @@ -991,6 +994,10 @@ private ImmutableMap<String, NSObject> getInfoPlistAdditionalKeys() {
return keys.build();
}

public Boolean getIsAppClip() {
return isAppClip.orElse(false);
}

@Override
public boolean isTestedBy(BuildTarget testRule) {
if (tests.contains(testRule)) {
Expand Down
3 changes: 2 additions & 1 deletion src/com/facebook/buck/apple/AppleBundleDescription.java
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,8 @@ public AppleBundle createBuildRule(
swiftBuckConfig.getUseLipoThin(),
cxxBuckConfig.shouldCacheStrip(),
appleConfig.useEntitlementsWhenAdhocCodeSigning(),
resourceFilter);
resourceFilter,
args.getIsAppClip());
}

/**
Expand Down
3 changes: 3 additions & 0 deletions src/com/facebook/buck/apple/AppleBundleDestination.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
public enum AppleBundleDestination {
RESOURCES,
FRAMEWORKS,
APPCLIPS,
EXECUTABLES,
PLUGINS,
XPCSERVICES;
Expand All @@ -43,6 +44,8 @@ public Path getPath(AppleBundleDestinations destinations) {
return destinations.getResourcesPath();
case EXECUTABLES:
return destinations.getExecutablesPath();
case APPCLIPS:
return destinations.getAppClipsPath();
case FRAMEWORKS:
return destinations.getFrameworksPath();
case PLUGINS:
Expand Down
7 changes: 7 additions & 0 deletions src/com/facebook/buck/apple/AppleBundleDestinations.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ abstract class AppleBundleDestinations implements AddsToRuleKey {
@AddToRuleKey(stringify = true)
public abstract Path getExecutablesPath();

@AddToRuleKey(stringify = true)
public abstract Path getAppClipsPath();

@AddToRuleKey(stringify = true)
public abstract Path getFrameworksPath();

Expand Down Expand Up @@ -62,6 +65,7 @@ abstract class AppleBundleDestinations implements AddsToRuleKey {
OSX_CONTENTS_PATH,
OSX_CONTENTS_PATH.resolve("Resources"),
OSX_CONTENTS_PATH.resolve("MacOS"),
OSX_CONTENTS_PATH,
OSX_CONTENTS_PATH.resolve("Frameworks"),
OSX_CONTENTS_PATH.resolve("PlugIns"),
OSX_CONTENTS_PATH,
Expand All @@ -76,6 +80,7 @@ abstract class AppleBundleDestinations implements AddsToRuleKey {
OSX_FRAMEWORK_CONTENTS_PATH.resolve("Resources"),
OSX_FRAMEWORK_CONTENTS_PATH.resolve("Resources"),
OSX_FRAMEWORK_CONTENTS_PATH,
OSX_FRAMEWORK_CONTENTS_PATH,
OSX_FRAMEWORK_CONTENTS_PATH.resolve("Frameworks"),
OSX_FRAMEWORK_CONTENTS_PATH,
OSX_FRAMEWORK_CONTENTS_PATH,
Expand All @@ -90,6 +95,7 @@ abstract class AppleBundleDestinations implements AddsToRuleKey {
IOS_CONTENTS_PATH,
IOS_CONTENTS_PATH,
IOS_CONTENTS_PATH,
IOS_CONTENTS_PATH.resolve("AppClips"),
IOS_CONTENTS_PATH.resolve("Frameworks"),
IOS_CONTENTS_PATH.resolve("PlugIns"),
IOS_CONTENTS_PATH.resolve("Watch"),
Expand All @@ -104,6 +110,7 @@ abstract class AppleBundleDestinations implements AddsToRuleKey {
IOS_FRAMEWORK_CONTENTS_PATH,
IOS_FRAMEWORK_CONTENTS_PATH,
IOS_FRAMEWORK_CONTENTS_PATH,
IOS_FRAMEWORK_CONTENTS_PATH,
IOS_FRAMEWORK_CONTENTS_PATH.resolve("Frameworks"),
IOS_FRAMEWORK_CONTENTS_PATH,
IOS_FRAMEWORK_CONTENTS_PATH,
Expand Down
9 changes: 7 additions & 2 deletions src/com/facebook/buck/apple/AppleDescriptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -675,7 +675,8 @@ static AppleBundle createAppleBundle(
boolean useLipoThin,
boolean cacheStrips,
boolean useEntitlementsWhenAdhocCodeSigning,
Predicate<BuildTarget> filter) {
Predicate<BuildTarget> filter,
Optional<Boolean> isAppClip) {
AppleCxxPlatform appleCxxPlatform =
ApplePlatforms.getAppleCxxPlatformForBuildTarget(
graphBuilder,
Expand Down Expand Up @@ -918,7 +919,8 @@ static AppleBundle createAppleBundle(
codesignTimeout,
copySwiftStdlibToFrameworks,
useLipoThin,
useEntitlementsWhenAdhocCodeSigning);
useEntitlementsWhenAdhocCodeSigning,
isAppClip);
}

/**
Expand Down Expand Up @@ -1100,6 +1102,9 @@ private static ImmutableMap<SourcePath, String> collectFirstLevelAppleDependency
destinationPath = destinations.getWatchAppPath();
} else if (appleBundle.isLegacyWatchApp()) {
destinationPath = destinations.getResourcesPath();
}
else if (appleBundle.getIsAppClip()) {
destinationPath = destinations.getAppClipsPath();
} else {
destinationPath = destinations.getPlugInsPath();
}
Expand Down
3 changes: 2 additions & 1 deletion src/com/facebook/buck/apple/AppleLibraryDescription.java
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,8 @@ private <A extends AbstractAppleLibraryDescriptionArg> BuildRule createFramework
swiftBuckConfig.getUseLipoThin(),
cxxBuckConfig.shouldCacheStrip(),
appleConfig.useEntitlementsWhenAdhocCodeSigning(),
Predicates.alwaysTrue());
Predicates.alwaysTrue(),
Optional.empty());
}

/**
Expand Down
3 changes: 2 additions & 1 deletion src/com/facebook/buck/apple/AppleTestDescription.java
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,8 @@ public BuildRule createBuildRule(
swiftBuckConfig.getUseLipoThin(),
cxxBuckConfig.shouldCacheStrip(),
appleConfig.useEntitlementsWhenAdhocCodeSigning(),
Predicates.alwaysTrue())));
Predicates.alwaysTrue(),
Optional.empty())));

Optional<SourcePath> xctool =
getXctool(projectFilesystem, params, targetConfiguration, graphBuilder);
Expand Down
2 changes: 2 additions & 0 deletions src/com/facebook/buck/apple/HasAppleBundleFields.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ public interface HasAppleBundleFields {

Optional<String> getXcodeProductType();

Optional<Boolean> getIsAppClip();

ImmutableMap<String, String> getInfoPlistSubstitutions();

@Value.Default
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public enum Destination {
WRAPPER(1),
EXECUTABLES(6),
RESOURCES(7),
APPCLIPS(16),
FRAMEWORKS(10),
SHARED_FRAMEWORKS(11),
SHARED_SUPPORT(12),
Expand Down
3 changes: 3 additions & 0 deletions src/com/facebook/buck/apple/xcode/xcodeproj/ProductTypes.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,10 @@ public final class ProductTypes {
ProductType.of("com.apple.product-type.framework.static");
public static final ProductType APPLICATION =
ProductType.of("com.apple.product-type.application");
public static final ProductType APP_CLIP =
ProductType.of("com.apple.product-type.application.on-demand-install-capable");
public static final ProductType WATCH_APPLICATION =

ProductType.of("com.apple.product-type.application.watchapp2");
public static final ProductType UNIT_TEST =
ProductType.of("com.apple.product-type.bundle.unit-test");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -633,6 +633,8 @@ private PBXCopyFilesBuildPhase.Destination pbxCopyPhaseDestination(
switch (destination) {
case FRAMEWORKS:
return PBXCopyFilesBuildPhase.Destination.FRAMEWORKS;
case APPCLIPS:
return PBXCopyFilesBuildPhase.Destination.APPCLIPS;
case EXECUTABLES:
return PBXCopyFilesBuildPhase.Destination.EXECUTABLES;
case RESOURCES:
Expand Down
23 changes: 23 additions & 0 deletions src/com/facebook/buck/features/apple/project/ProjectGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -3394,6 +3394,11 @@ private Optional<CopyFilePhaseDestinationSpec> getDestinationSpec(TargetNode<?>
CopyFilePhaseDestinationSpec.of(
PBXCopyFilesBuildPhase.Destination.PRODUCTS,
Optional.of("$(CONTENTS_FOLDER_PATH)/Watch")));
} else if (isAppClipApplicationNode(targetNode)) {
return Optional.of(
CopyFilePhaseDestinationSpec.of(
PBXCopyFilesBuildPhase.Destination.APPCLIPS,
Optional.of("$(CONTENTS_FOLDER_PATH)/AppClips")));
} else {
return Optional.of(
CopyFilePhaseDestinationSpec.of(PBXCopyFilesBuildPhase.Destination.EXECUTABLES));
Expand Down Expand Up @@ -4714,6 +4719,9 @@ private ProductType bundleToTargetProductType(
}
} else if (binaryNode.getDescription() instanceof AppleBinaryDescription) {
if (extension == AppleBundleExtension.APP) {
if (targetNode.getConstructorArg().getIsAppClip().orElse(false)) {
return ProductTypes.APP_CLIP;
}
return ProductTypes.APPLICATION;
}
} else if (binaryNode.getDescription() instanceof AppleTestDescription) {
Expand Down Expand Up @@ -4871,6 +4879,21 @@ private static boolean isWatchApplicationNode(TargetNode<?> targetNode) {
return false;
}

/**
* Determines if a target node is for AppClip application
*
* @param targetNode A target node
* @return If the given target node is for an AppClip application
*/
private static boolean isAppClipApplicationNode(TargetNode<?> targetNode) {
if (targetNode.getDescription() instanceof AppleBundleDescription) {
AppleBundleDescriptionArg arg = (AppleBundleDescriptionArg) targetNode.getConstructorArg();
return arg.getXcodeProductType()
.equals(Optional.of(ProductTypes.APP_CLIP.getIdentifier()));
}
return false;
}

private Optional<SourcePath> getPrefixHeaderSourcePath(CxxLibraryDescription.CommonArg arg) {
// The prefix header could be stored in either the `prefix_header` or the `precompiled_header`
// field. Use either, but prefer the prefix_header.
Expand Down
26 changes: 26 additions & 0 deletions test/com/facebook/buck/apple/AppleBundleIntegrationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -1163,6 +1163,32 @@ public void watchApplicationBundle() throws IOException {
assertTrue(Files.exists(watchAppPath.resolve("Interface.plist")));
}

@Test
public void appClipApplicationBundle() throws IOException {
ProjectWorkspace workspace =
TestDataHelper.createProjectWorkspaceForScenario(this, "app_bundle_with_appclip", tmp);
workspace.setUp();

BuildTarget target = BuildTargetFactory.newInstance("//:ExampleApp#iphonesimulator-x86_64");
workspace.runBuckCommand("build", target.getFullyQualifiedName()).assertSuccess();

Path appPath =
workspace.getPath(
BuildTargetPaths.getGenPath(
filesystem,
target.withAppendedFlavors(
AppleDebugFormat.DWARF_AND_DSYM.getFlavor(),
AppleDescriptions.NO_INCLUDE_FRAMEWORKS_FLAVOR),
"%s")
.resolve(target.getShortName() + ".app"));
assertTrue(Files.exists(appPath.resolve("ExampleApp")));
assertTrue(Files.exists(appPath.resolve("Info.plist")));

Path appClipPath = appPath.resolve("AppClips/Clip.app/");
assertTrue(Files.exists(appClipPath.resolve("Clip")));
assertTrue(Files.exists(appClipPath.resolve("Info.plist")));
}

@Test
public void copiesFrameworkBundleIntoFrameworkDirectory() throws Exception {
assumeTrue(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// AppDelegate.swift
// AppClipApp
//
// Created by Lucas Marcal on 08/10/20.
//

import UIKit

class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = ViewController()
self.window?.makeKeyAndVisible()
return true
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?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>EN</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.buck.test.appclipapp</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//
// ViewController.swift
// AppClipApp
//
// Created by Lucas Marcal on 08/10/20.
//

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .yellow
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Foundation
import UIKit

let argc = CommandLine.argc
let argv = UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self, capacity: Int(CommandLine.argc))

UIApplicationMain(argc, argv, nil, NSStringFromClass(AppDelegate.self))
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apple_bundle(
name = "ExampleApp",
visibility = ["PUBLIC"],
extension = "app",
binary = ":ExampleAppBinary#iphonesimulator-x86_64",
product_name = "ExampleApp",
info_plist = "AppClipApp/Info.plist",
deps = ["//Clip:Clip"]
)

apple_binary(
name = "ExampleAppBinary",
visibility = ["PUBLIC"],
swift_version = "5",
target_sdk_version = "14.0",
srcs = glob(["AppClipApp/*.swift",])
)
Loading

0 comments on commit 697cb13

Please sign in to comment.