Fix building issue

This commit is contained in:
Mingshen Sun 2022-05-22 16:26:00 -07:00
parent 2e951497ad
commit 90f1f54a21
8 changed files with 158 additions and 86 deletions

View file

@ -1 +1 @@
github "SVProgressHUD/SVProgressHUD"
github "SVProgressHUD/SVProgressHUD" "master"

View file

@ -1 +1 @@
github "SVProgressHUD/SVProgressHUD" "2.2.5"
github "SVProgressHUD/SVProgressHUD" "de1d4dba816a19454329031156b8788692bcfa2c"

View file

@ -47,7 +47,7 @@ For more, please read the [wiki page](https://github.com/mssun/passforios/wiki).
## Building Pass for iOS
1. Install Carthage, Go, SwiftLint, and SwiftFormat: `brew install carthage go swiftlint swiftformat`.
2. Install dependencies via Carthage. Therefore, execute `carthage update` and `carthage bootstrap --platform iOS --use-xcframeworks` in the root directory of the project.
2. Install dependencies via Carthage. Therefore, execute `carthage bootstrap --platform iOS --use-xcframeworks` in the root directory of the project.
3. Run `./scripts/gopenpgp_build.sh` to build GopenPGP.
5. Open the `pass.xcodeproj` file in Xcode.
6. Build & Run.

View file

@ -94,6 +94,7 @@ platform :ios do
scheme: "pass",
configuration: "Beta",
skip_profile_detection: true,
export_method: "app-store",
export_options: {
method: "app-store",
provisioningProfiles: {

View file

@ -1116,9 +1116,9 @@
isa = PBXNativeTarget;
buildConfigurationList = A260758F1EEC6F34005DB03E /* Build configuration list for PBXNativeTarget "passKit" */;
buildPhases = (
A26075751EEC6F34005DB03E /* Headers */,
A26075731EEC6F34005DB03E /* Sources */,
A26075741EEC6F34005DB03E /* Frameworks */,
A26075751EEC6F34005DB03E /* Headers */,
A26075761EEC6F34005DB03E /* Resources */,
);
buildRules = (
@ -2811,7 +2811,7 @@
repositoryURL = "https://github.com/krzyzanowskim/ObjectivePGP";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 0.99.0;
minimumVersion = 0.99.2;
};
};
30A3000C26DA62F4002A734E /* XCRemoteSwiftPackageReference "Base32" */ = {

View file

@ -1,79 +1,76 @@
{
"object": {
"pins" : [
{
"package": "Base32",
"repositoryURL": "https://github.com/mattrubin/Base32",
"identity" : "base32",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mattrubin/Base32",
"state" : {
"branch" : "1.1.2+spm",
"revision": "d185e44c8b355d34d5c6c6ad502c60cba4599f69",
"version": null
"revision" : "d185e44c8b355d34d5c6c6ad502c60cba4599f69"
}
},
{
"package": "FavIcon",
"repositoryURL": "https://github.com/leonbreedt/FavIcon",
"identity" : "favicon",
"kind" : "remoteSourceControl",
"location" : "https://github.com/leonbreedt/FavIcon",
"state" : {
"branch": null,
"revision" : "5bf16aad3ea543891eaef7e8da2aa2f6bb29e6e4",
"version" : "3.1.0"
}
},
{
"package": "KeychainAccess",
"repositoryURL": "https://github.com/kishikawakatsumi/KeychainAccess",
"identity" : "keychainaccess",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kishikawakatsumi/KeychainAccess",
"state" : {
"branch": null,
"revision" : "84e546727d66f1adc5439debad16270d0fdd04e7",
"version" : "4.2.2"
}
},
{
"package": "ObjectiveGit",
"repositoryURL": "https://github.com/SimplyDanny/objective-git-swift-package",
"identity" : "objective-git-swift-package",
"kind" : "remoteSourceControl",
"location" : "https://github.com/SimplyDanny/objective-git-swift-package",
"state" : {
"branch" : "0.17-passforios",
"revision": "553f09c836b4f90e447e0fe26633acc11c37cece",
"version": null
"revision" : "553f09c836b4f90e447e0fe26633acc11c37cece"
}
},
{
"package": "ObjectivePGP",
"repositoryURL": "https://github.com/krzyzanowskim/ObjectivePGP",
"identity" : "objectivepgp",
"kind" : "remoteSourceControl",
"location" : "https://github.com/krzyzanowskim/ObjectivePGP",
"state" : {
"branch": null,
"revision" : "0dc7ca7ffe193095dc37456b0c75be167a2026f4",
"version" : "0.99.2"
}
},
{
"package": "OneTimePassword",
"repositoryURL": "https://github.com/mssun/OneTimePassword",
"identity" : "onetimepassword",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mssun/OneTimePassword",
"state" : {
"branch": null,
"revision": "8d59e4abba762d0f1e9aed161081f7b3fe21daa0",
"version": null
"revision" : "8d59e4abba762d0f1e9aed161081f7b3fe21daa0"
}
},
{
"package": "SwiftyUserDefaults",
"repositoryURL": "https://github.com/sunshinejr/SwiftyUserDefaults",
"identity" : "swiftyuserdefaults",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sunshinejr/SwiftyUserDefaults",
"state" : {
"branch": null,
"revision" : "f66bcd04088582c8fbb5cb8554d577e303bae396",
"version" : "5.3.0"
}
},
{
"package": "YubiKit",
"repositoryURL": "https://github.com/Yubico/yubikit-ios",
"identity" : "yubikit-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Yubico/yubikit-ios",
"state" : {
"branch": null,
"revision": "7e75fe8f057acf9bf7ac134d375783a1d409f79e",
"version": "4.1.0"
"revision" : "7b19be11a362d9e52eac0d76b5d904560b9e5ea7",
"version" : "4.2.0"
}
}
]
},
"version": 1
],
"version" : 2
}

View file

@ -9,6 +9,74 @@
import Foundation
import SwiftyUserDefaults
// Workaround for Xcode 13: https://github.com/sunshinejr/SwiftyUserDefaults/issues/285
extension DefaultsSerializable {
public static var _defaultsArray: DefaultsArrayBridge<[T]> { return DefaultsArrayBridge() }
}
extension Date: DefaultsSerializable {
public static var _defaults: DefaultsObjectBridge<Date> { return DefaultsObjectBridge() }
}
extension String: DefaultsSerializable {
public static var _defaults: DefaultsStringBridge { return DefaultsStringBridge() }
}
extension Int: DefaultsSerializable {
public static var _defaults: DefaultsIntBridge { return DefaultsIntBridge() }
}
extension Double: DefaultsSerializable {
public static var _defaults: DefaultsDoubleBridge { return DefaultsDoubleBridge() }
}
extension Bool: DefaultsSerializable {
public static var _defaults: DefaultsBoolBridge { return DefaultsBoolBridge() }
}
extension Data: DefaultsSerializable {
public static var _defaults: DefaultsDataBridge { return DefaultsDataBridge() }
}
extension URL: DefaultsSerializable {
#if os(Linux)
public static var _defaults: DefaultsKeyedArchiverBridge<URL> { return DefaultsKeyedArchiverBridge() }
#else
public static var _defaults: DefaultsUrlBridge { return DefaultsUrlBridge() }
#endif
public static var _defaultsArray: DefaultsKeyedArchiverBridge<[URL]> { return DefaultsKeyedArchiverBridge() }
}
extension DefaultsSerializable where Self: Codable {
public static var _defaults: DefaultsCodableBridge<Self> { return DefaultsCodableBridge() }
public static var _defaultsArray: DefaultsCodableBridge<[Self]> { return DefaultsCodableBridge() }
}
extension DefaultsSerializable where Self: RawRepresentable {
public static var _defaults: DefaultsRawRepresentableBridge<Self> { return DefaultsRawRepresentableBridge() }
public static var _defaultsArray: DefaultsRawRepresentableArrayBridge<[Self]> { return DefaultsRawRepresentableArrayBridge() }
}
extension DefaultsSerializable where Self: NSCoding {
public static var _defaults: DefaultsKeyedArchiverBridge<Self> { return DefaultsKeyedArchiverBridge() }
public static var _defaultsArray: DefaultsKeyedArchiverBridge<[Self]> { return DefaultsKeyedArchiverBridge() }
}
extension Dictionary: DefaultsSerializable where Key == String {
public typealias T = [Key: Value]
public typealias Bridge = DefaultsObjectBridge<T>
public typealias ArrayBridge = DefaultsArrayBridge<[T]>
public static var _defaults: Bridge { return Bridge() }
public static var _defaultsArray: ArrayBridge { return ArrayBridge() }
}
extension Array: DefaultsSerializable where Element: DefaultsSerializable {
public typealias T = [Element.T]
public typealias Bridge = Element.ArrayBridge
public typealias ArrayBridge = DefaultsObjectBridge<[T]>
public static var _defaults: Bridge {
return Element._defaultsArray
}
public static var _defaultsArray: ArrayBridge {
fatalError("Multidimensional arrays are not supported yet")
}
}
public var Defaults = DefaultsAdapter(defaults: UserDefaults(suiteName: Globals.groupIdentifier)!, keyStore: DefaultsKeys())
public enum KeySource: String, DefaultsSerializable {

View file

@ -14,15 +14,21 @@ GOPENPGP_PATH="$CHECKOUT_PATH/gopenpgp"
mkdir -p "$OUTPUT_PATH"
mkdir -p "$CHECKOUT_PATH"
go env -w GO111MODULE=auto
go get golang.org/x/mobile/cmd/gomobile
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init
git clone --depth 1 --branch "$GOPENPGP_VERSION" https://github.com/mssun/gopenpgp.git "$GOPENPGP_PATH"
sed -i '' 's/build android/echo "Skipping Android build."/g' "$GOPENPGP_PATH/build.sh"
(cd "$GOPENPGP_PATH" && ./build.sh)
pushd "$GOPENPGP_PATH"
mkdir -p dist
go mod download github.com/ProtonMail/go-crypto
gomobile bind -tags mobile -target ios -iosversion 12.0 -v -x -ldflags="-s -w" -o dist/Gopenpgp.xcframework \
github.com/ProtonMail/gopenpgp/v2/crypto \
github.com/ProtonMail/gopenpgp/v2/armor \
github.com/ProtonMail/gopenpgp/v2/constants \
github.com/ProtonMail/gopenpgp/v2/models \
github.com/ProtonMail/gopenpgp/v2/subtle github.com/ProtonMail/gopenpgp/v2/helper
popd
cp -r "$GOPENPGP_PATH/dist/Gopenpgp.xcframework" "$OUTPUT_PATH"