adobe / aepsdk-target-ios Goto Github PK
View Code? Open in Web Editor NEWAdobe Experience Platform - Target extension built with Swift
License: Apache License 2.0
Adobe Experience Platform - Target extension built with Swift
License: Apache License 2.0
When attempting to compile a tvOS target that links the AEPTarget
Swift package, the compilation fails with error Cannot find type FullScreenPresentable
.
TheFullScreenPresentable
protocol is defined in the AEPCore
library, but the definition is wrapped in an if os(iOS)
flag. This type is then undefined on tvOS
.
In our project, various AE libraries are linked adjacently in a shared service package ("shared" by all Apple platforms we support, including iOS and tvOS):AEPCore, AEPAnalytics, AEPMedia
. AEPTarget
must be linked with these in this shared package, because AEPTarget
must use the common initializer alongside the other extensions in our shared package code.
Although it is possible to link AEPTarget
directly to the iOS project (as opposed to our shared Services
package), it does not appear possible to initialize it or load it's shared extension discretely. Because it must be initialized with the other extensions (and common core), and those components are cross-platform, we cannot currently link AEPTarget
to our iOS project directly or our shared Service package (which iOS uses).
It would appear that instances within AEPTarget
which reference the FullScreenPresentable
protocol also need to be wrapped in if os(iOS)
at the call site. These appear to pertain to iOS specific view presentation (to which there is currently no equivalent tvOS behavior), so this appears to be a relatively straightforward and constrained change.
https://github.com/adobe/aepsdk-target-ios/blob/dev/LICENSE#L189
Copyright 2021 Adobe
All dependencies for a given version of the Target package are pinned to exact versions
https://github.com/adobe/aepsdk-rulesengine-ios.git is set to upToNextMajor
in Package.swift
- this means SPM in Xcode is more likely to regularly re-resolve packages and can mean what gets built on CI is different to what has been built locally.
aepsdk-target-ios/Package.swift
Line 23 in d78737f
Change to:
.package(url: "https://github.com/adobe/aepsdk-core-ios.git", .exact("3.1.0")),
Now that aepsdk-core-ios and aepsdk-assurance-ios are both making XCframeworks available with their latest release (4.0.0), can we ensure that XCFramework binaries are released for target as well?
Also, let's not try and use CustomIdentity class as it creates a hard dependency on AEPIdentity. You can instead cast it as [[String: Any]] to parse and read the keys.#11 (comment)
After running make archive, we expect the build to not fail and output frameworks to the build path.
Makefile fails to build XCFramework's successfully.
Mac OS version Big Sur 11.6.1 using Xcode 13.1
Not code related.
Corrective action is suggested in two areas:
pod install
in the README.md fileAlso noteworthy -- why is this repo using swiftformat while other Adobe modules are using SwiftLint? Consistency?
https://github.com/adobe/aepsdk-target-ios/blob/dev/COPYRIGHT#L1
© Copyright 2015-2021 Adobe. All rights reserved.
add API usage docs in this Github repo.
reference: https://github.com/adobe/aepsdk-userprofile-ios/blob/main/Documentation/UserProfile.md
If custom Target server is empty/ not configured, use previously persisted edge host. If not present, fallback to the configured Target client code for the host name in Target requests.
https://github.com/adobe/aepsdk-target-ios/blob/dev/AEPTarget/Sources/Target.swift#L532
if let targetServer = targetServer, !targetServer.isEmpty {...}
Compare the events in v5 Target with the events in Swift Target to make sure all the events are covered, and that they are the same.
[ ] Data migration V4 - Swift V5
[ ] Data migration V5 - Swift V5
[ ] Change the keys to lower case as https://github.com/adobe/aepsdk-core-ios/blob/main/Documentation/Contributing/StyleGuide.md#data-store-keys
Instead of returning false here for pending config shared state, we should try to save and use the last valid config.
#11 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.