mirror of
https://github.com/krzyzanowskim/CryptoSwift.git
synced 2026-05-07 20:12:26 +00:00
Lipsticks
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
|||||||
* @krzyzanowskim
|
* @krzyzanowskim
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
- CryptoSwift version:
|
- CryptoSwift version:
|
||||||
- Swift version:
|
- Swift version:
|
||||||
- Platform (iOS/macOS/Linux/...):
|
- Platform (iOS/macOS/Linux/...):
|
||||||
- Installation method (CocoaPods/Carthage/SPM/...):
|
- Installation method (CocoaPods/Carthage/SPM/...):
|
||||||
- Project name:
|
- Project name:
|
||||||
|
|
||||||
# Description
|
# Description
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ A clear and concise description of what the bug is.
|
|||||||
|
|
||||||
**To Reproduce**
|
**To Reproduce**
|
||||||
Steps to reproduce the behavior:
|
Steps to reproduce the behavior:
|
||||||
1.
|
1.
|
||||||
|
|
||||||
**Sample code**
|
**Sample code**
|
||||||
|
|
||||||
@@ -23,9 +23,9 @@ Steps to reproduce the behavior:
|
|||||||
|
|
||||||
|
|
||||||
**Environment (please complete the following information):**
|
**Environment (please complete the following information):**
|
||||||
- Swift version:
|
- Swift version:
|
||||||
- Platform (iOS/macOS/Linux/...):
|
- Platform (iOS/macOS/Linux/...):
|
||||||
- Installation method (CocoaPods/Carthage/SPM/...):
|
- Installation method (CocoaPods/Carthage/SPM/...):
|
||||||
- Project name:
|
- Project name:
|
||||||
|
|
||||||
**Additional context**
|
**Additional context**
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ Checklist:
|
|||||||
- [ ] Tests added.
|
- [ ] Tests added.
|
||||||
|
|
||||||
Changes proposed in this pull request:
|
Changes proposed in this pull request:
|
||||||
-
|
-
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v2.3.0
|
||||||
|
hooks:
|
||||||
|
- id: check-yaml
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- repo: https://github.com/psf/black
|
||||||
|
rev: 19.3b0
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
5.0
|
5.0
|
||||||
|
|||||||
@@ -49,4 +49,3 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<playground version='5.0' target-platform='macos' display-mode='rendered'>
|
<playground version='5.0' target-platform='macos' display-mode='rendered'>
|
||||||
<timeline fileName='timeline.xctimeline'/>
|
<timeline fileName='timeline.xctimeline'/>
|
||||||
</playground>
|
</playground>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
Copyright (C) 2014-2017 Marcin Krzyżanowski <marcin.krzyzanowski@gmail.com>
|
Copyright (C) 2014-2017 Marcin Krzyżanowski <marcin.krzyzanowski@gmail.com>
|
||||||
This software is provided 'as-is', without any express or implied warranty.
|
This software is provided 'as-is', without any express or implied warranty.
|
||||||
|
|
||||||
In no event will the authors be held liable for any damages arising from the use of this software.
|
In no event will the authors be held liable for any damages arising from the use of this software.
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||||
|
|
||||||
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required.
|
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required.
|
||||||
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
||||||
- This notice may not be removed or altered from any source or binary distribution.
|
- This notice may not be removed or altered from any source or binary distribution.
|
||||||
- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).'
|
- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).'
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ Check out [CONTRIBUTING.md](CONTRIBUTING.md) for more information on how to help
|
|||||||
To install CryptoSwift, add it as a submodule to your project (on the top level project directory):
|
To install CryptoSwift, add it as a submodule to your project (on the top level project directory):
|
||||||
|
|
||||||
git submodule add https://github.com/krzyzanowskim/CryptoSwift.git
|
git submodule add https://github.com/krzyzanowskim/CryptoSwift.git
|
||||||
|
|
||||||
It is recommended to enable [Whole-Module Optimization](https://swift.org/blog/whole-module-optimizations/) to gain better performance. Non-optimized build results in significantly worse performance.
|
It is recommended to enable [Whole-Module Optimization](https://swift.org/blog/whole-module-optimizations/) to gain better performance. Non-optimized build results in significantly worse performance.
|
||||||
|
|
||||||
#### Embedded Framework
|
#### Embedded Framework
|
||||||
@@ -160,8 +160,8 @@ pod 'CryptoSwift', :git => "https://github.com/krzyzanowskim/CryptoSwift", :bran
|
|||||||
|
|
||||||
Bear in mind that CocoaPods will build CryptoSwift without [Whole-Module Optimization](https://swift.org/blog/whole-module-optimizations/) that may impact performance. You can change it manually after installation, or use [cocoapods-wholemodule](https://github.com/jedlewison/cocoapods-wholemodule) plugin.
|
Bear in mind that CocoaPods will build CryptoSwift without [Whole-Module Optimization](https://swift.org/blog/whole-module-optimizations/) that may impact performance. You can change it manually after installation, or use [cocoapods-wholemodule](https://github.com/jedlewison/cocoapods-wholemodule) plugin.
|
||||||
|
|
||||||
#### Carthage
|
#### Carthage
|
||||||
You can use [Carthage](https://github.com/Carthage/Carthage).
|
You can use [Carthage](https://github.com/Carthage/Carthage).
|
||||||
Specify in Cartfile:
|
Specify in Cartfile:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
@@ -170,8 +170,8 @@ github "krzyzanowskim/CryptoSwift"
|
|||||||
|
|
||||||
Run `carthage` to build the framework and drag the built CryptoSwift.framework into your Xcode project. Follow [build instructions](https://github.com/Carthage/Carthage#getting-started). [Common issues](https://github.com/krzyzanowskim/CryptoSwift/issues/492#issuecomment-330822874).
|
Run `carthage` to build the framework and drag the built CryptoSwift.framework into your Xcode project. Follow [build instructions](https://github.com/Carthage/Carthage#getting-started). [Common issues](https://github.com/krzyzanowskim/CryptoSwift/issues/492#issuecomment-330822874).
|
||||||
|
|
||||||
#### Accio
|
#### Accio
|
||||||
You can use [Accio](https://github.com/JamitLabs/Accio).
|
You can use [Accio](https://github.com/JamitLabs/Accio).
|
||||||
Specify in Package.swift:
|
Specify in Package.swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
@@ -211,7 +211,7 @@ dependencies: [
|
|||||||
See: [Package.swift - manual](http://blog.krzyzanowskim.com/2016/08/09/package-swift-manual/)
|
See: [Package.swift - manual](http://blog.krzyzanowskim.com/2016/08/09/package-swift-manual/)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## How-to
|
## How-to
|
||||||
|
|
||||||
* [Basics (data types, conversion, ...)](#basics)
|
* [Basics (data types, conversion, ...)](#basics)
|
||||||
@@ -290,7 +290,7 @@ let hash = data.sha1()
|
|||||||
let hash = data.sha224()
|
let hash = data.sha224()
|
||||||
let hash = data.sha256()
|
let hash = data.sha256()
|
||||||
let hash = data.sha384()
|
let hash = data.sha384()
|
||||||
let hash = data.sha512()
|
let hash = data.sha512()
|
||||||
```
|
```
|
||||||
```swift
|
```swift
|
||||||
do {
|
do {
|
||||||
@@ -300,7 +300,7 @@ do {
|
|||||||
let result = try digest.finish()
|
let result = try digest.finish()
|
||||||
} catch { }
|
} catch { }
|
||||||
```
|
```
|
||||||
|
|
||||||
Hashing a String and printing result
|
Hashing a String and printing result
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
@@ -356,7 +356,7 @@ let key = try HKDF(password: password, salt: salt, variant: .sha256).calculate()
|
|||||||
|
|
||||||
|
|
||||||
##### Data Padding
|
##### Data Padding
|
||||||
|
|
||||||
Some content-encryption algorithms assume the input length is a multiple of `k` octets, where `k` is greater than one. For such algorithms, the input shall be padded.
|
Some content-encryption algorithms assume the input length is a multiple of `k` octets, where `k` is greater than one. For such algorithms, the input shall be padded.
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
@@ -409,7 +409,7 @@ do {
|
|||||||
|
|
||||||
###### Incremental updates
|
###### Incremental updates
|
||||||
|
|
||||||
Incremental operations use instance of Cryptor and encrypt/decrypt one part at a time, this way you can save on memory for large files.
|
Incremental operations use instance of Cryptor and encrypt/decrypt one part at a time, this way you can save on memory for large files.
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
do {
|
do {
|
||||||
@@ -443,9 +443,9 @@ do {
|
|||||||
let decrypted = try AES(key: key, blockMode: CBC(iv: iv), padding: .pkcs7).decrypt(encrypted)
|
let decrypted = try AES(key: key, blockMode: CBC(iv: iv), padding: .pkcs7).decrypt(encrypted)
|
||||||
} catch {
|
} catch {
|
||||||
print(error)
|
print(error)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
AES without data padding
|
AES without data padding
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
@@ -454,7 +454,7 @@ let encrypted: Array<UInt8> = try! AES(key: Array("secret0key000000".utf8), bloc
|
|||||||
```
|
```
|
||||||
|
|
||||||
Using convenience extensions
|
Using convenience extensions
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
let plain = Data( [0x01, 0x02, 0x03])
|
let plain = Data( [0x01, 0x02, 0x03])
|
||||||
let encrypted = try! plain.encrypt(ChaCha20(key: key, iv: iv))
|
let encrypted = try! plain.encrypt(ChaCha20(key: key, iv: iv))
|
||||||
@@ -532,9 +532,9 @@ This distribution includes cryptographic software. The country in which you curr
|
|||||||
## License
|
## License
|
||||||
|
|
||||||
Copyright (C) 2014-2017 Marcin Krzyżanowski <marcin@krzyzanowskim.com>
|
Copyright (C) 2014-2017 Marcin Krzyżanowski <marcin@krzyzanowskim.com>
|
||||||
This software is provided 'as-is', without any express or implied warranty.
|
This software is provided 'as-is', without any express or implied warranty.
|
||||||
|
|
||||||
In no event will the authors be held liable for any damages arising from the use of this software.
|
In no event will the authors be held liable for any damages arising from the use of this software.
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class BlockDecryptor: Cryptor, Updatable {
|
|||||||
for var chunk in accumulatedWithoutSuffix.batched(by: blockSize) {
|
for var chunk in accumulatedWithoutSuffix.batched(by: blockSize) {
|
||||||
if isLast || (accumulatedWithoutSuffix.count - processedBytesCount) >= blockSize {
|
if isLast || (accumulatedWithoutSuffix.count - processedBytesCount) >= blockSize {
|
||||||
let isLastChunk = processedBytesCount + chunk.count == accumulatedWithoutSuffix.count
|
let isLastChunk = processedBytesCount + chunk.count == accumulatedWithoutSuffix.count
|
||||||
|
|
||||||
if isLast, isLastChunk, var finalizingWorker = worker as? FinalizingDecryptModeWorker {
|
if isLast, isLastChunk, var finalizingWorker = worker as? FinalizingDecryptModeWorker {
|
||||||
chunk = try finalizingWorker.willDecryptLast(bytes: chunk + accumulated.suffix(worker.additionalBufferSize)) // tag size
|
chunk = try finalizingWorker.willDecryptLast(bytes: chunk + accumulated.suffix(worker.additionalBufferSize)) // tag size
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public final class GCM: BlockMode {
|
|||||||
private let iv: Array<UInt8>
|
private let iv: Array<UInt8>
|
||||||
private let additionalAuthenticatedData: Array<UInt8>?
|
private let additionalAuthenticatedData: Array<UInt8>?
|
||||||
private let mode: Mode
|
private let mode: Mode
|
||||||
|
|
||||||
/// Length of authentication tag, in bytes.
|
/// Length of authentication tag, in bytes.
|
||||||
/// For encryption, the value is given as init parameter.
|
/// For encryption, the value is given as init parameter.
|
||||||
/// For decryption, the lenght of given authentication tag is used.
|
/// For decryption, the lenght of given authentication tag is used.
|
||||||
@@ -126,7 +126,7 @@ final class GCMModeWorker: BlockModeWorker, FinalizingEncryptModeWorker, Finaliz
|
|||||||
} else {
|
} else {
|
||||||
self.additionalBufferSize = 0
|
self.additionalBufferSize = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assume nonce is 12 bytes long, otherwise initial counter would be calulated from GHASH
|
// Assume nonce is 12 bytes long, otherwise initial counter would be calulated from GHASH
|
||||||
// counter = GF.ghash(aad: [UInt8](), ciphertext: nonce)
|
// counter = GF.ghash(aad: [UInt8](), ciphertext: nonce)
|
||||||
if iv.count == GCMModeWorker.nonceSize {
|
if iv.count == GCMModeWorker.nonceSize {
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ extension ChaCha20 {
|
|||||||
|
|
||||||
extension ChaCha20: Cryptors {
|
extension ChaCha20: Cryptors {
|
||||||
//TODO: Use BlockEncryptor/BlockDecryptor
|
//TODO: Use BlockEncryptor/BlockDecryptor
|
||||||
|
|
||||||
public func makeEncryptor() -> Cryptor & Updatable {
|
public func makeEncryptor() -> Cryptor & Updatable {
|
||||||
return ChaCha20.ChaChaEncryptor(chacha: self)
|
return ChaCha20.ChaChaEncryptor(chacha: self)
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-13
@@ -320,7 +320,7 @@ final class AESTests: XCTestCase {
|
|||||||
do {
|
do {
|
||||||
let aes = try AES(key: key, blockMode: CTR(iv: iv), padding: .noPadding)
|
let aes = try AES(key: key, blockMode: CTR(iv: iv), padding: .noPadding)
|
||||||
var encryptor = try aes.makeEncryptor()
|
var encryptor = try aes.makeEncryptor()
|
||||||
|
|
||||||
let encrypted1 = try encryptor.update(withBytes: [0x00, 0x01, 0x02, 0x03] as [UInt8])
|
let encrypted1 = try encryptor.update(withBytes: [0x00, 0x01, 0x02, 0x03] as [UInt8])
|
||||||
XCTAssertEqual(encrypted1, Array<UInt8>(hex: "d79d0344"))
|
XCTAssertEqual(encrypted1, Array<UInt8>(hex: "d79d0344"))
|
||||||
let encrypted2 = try encryptor.update(withBytes: [0x04, 0x05, 0x06, 0x07] as [UInt8])
|
let encrypted2 = try encryptor.update(withBytes: [0x04, 0x05, 0x06, 0x07] as [UInt8])
|
||||||
@@ -521,69 +521,69 @@ extension AESTests {
|
|||||||
XCTAssertEqual(Array(encrypted), [UInt8](hex: "")) // C
|
XCTAssertEqual(Array(encrypted), [UInt8](hex: "")) // C
|
||||||
XCTAssertEqual(gcm.authenticationTag, [UInt8](hex: "0xcd33b28ac773f74ba00ed1f312572435")) // T (128-bit)
|
XCTAssertEqual(gcm.authenticationTag, [UInt8](hex: "0xcd33b28ac773f74ba00ed1f312572435")) // T (128-bit)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAESGCMTagLengthDetached() {
|
func testAESGCMTagLengthDetached() {
|
||||||
// Test Case 2
|
// Test Case 2
|
||||||
let key = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
let key = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
||||||
let plaintext = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
let plaintext = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
||||||
let iv = Array<UInt8>(hex: "0x000000000000000000000000")
|
let iv = Array<UInt8>(hex: "0x000000000000000000000000")
|
||||||
|
|
||||||
let gcm = GCM(iv: iv, tagLength: 12, mode: .detached)
|
let gcm = GCM(iv: iv, tagLength: 12, mode: .detached)
|
||||||
let aes = try! AES(key: key, blockMode: gcm, padding: .noPadding)
|
let aes = try! AES(key: key, blockMode: gcm, padding: .noPadding)
|
||||||
let encrypted = try! aes.encrypt(plaintext)
|
let encrypted = try! aes.encrypt(plaintext)
|
||||||
XCTAssertEqual(Array(encrypted), [UInt8](hex: "0388dace60b6a392f328c2b971b2fe78")) // C
|
XCTAssertEqual(Array(encrypted), [UInt8](hex: "0388dace60b6a392f328c2b971b2fe78")) // C
|
||||||
XCTAssertEqual(gcm.authenticationTag, [UInt8](hex: "ab6e47d42cec13bdf53a67b2")) // T (96-bit)
|
XCTAssertEqual(gcm.authenticationTag, [UInt8](hex: "ab6e47d42cec13bdf53a67b2")) // T (96-bit)
|
||||||
|
|
||||||
// decrypt
|
// decrypt
|
||||||
func decrypt(_ encrypted: Array<UInt8>) -> Array<UInt8> {
|
func decrypt(_ encrypted: Array<UInt8>) -> Array<UInt8> {
|
||||||
let decGCM = GCM(iv: iv, authenticationTag: gcm.authenticationTag!, mode: .detached)
|
let decGCM = GCM(iv: iv, authenticationTag: gcm.authenticationTag!, mode: .detached)
|
||||||
let aes = try! AES(key: key, blockMode: decGCM, padding: .noPadding)
|
let aes = try! AES(key: key, blockMode: decGCM, padding: .noPadding)
|
||||||
return try! aes.decrypt(encrypted)
|
return try! aes.decrypt(encrypted)
|
||||||
}
|
}
|
||||||
|
|
||||||
let decrypted = decrypt(encrypted)
|
let decrypted = decrypt(encrypted)
|
||||||
XCTAssertEqual(decrypted, plaintext)
|
XCTAssertEqual(decrypted, plaintext)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAESGCMTagLengthCombined() {
|
func testAESGCMTagLengthCombined() {
|
||||||
// Test Case 2
|
// Test Case 2
|
||||||
let key = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
let key = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
||||||
let plaintext = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
let plaintext = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
||||||
let iv = Array<UInt8>(hex: "0x000000000000000000000000")
|
let iv = Array<UInt8>(hex: "0x000000000000000000000000")
|
||||||
|
|
||||||
let gcm = GCM(iv: iv, tagLength: 12, mode: .combined)
|
let gcm = GCM(iv: iv, tagLength: 12, mode: .combined)
|
||||||
let aes = try! AES(key: key, blockMode: gcm, padding: .noPadding)
|
let aes = try! AES(key: key, blockMode: gcm, padding: .noPadding)
|
||||||
let encrypted = try! aes.encrypt(plaintext)
|
let encrypted = try! aes.encrypt(plaintext)
|
||||||
XCTAssertEqual(Array(encrypted), [UInt8](hex: "0388dace60b6a392f328c2b971b2fe78ab6e47d42cec13bdf53a67b2")) // C
|
XCTAssertEqual(Array(encrypted), [UInt8](hex: "0388dace60b6a392f328c2b971b2fe78ab6e47d42cec13bdf53a67b2")) // C
|
||||||
XCTAssertEqual(gcm.authenticationTag, [UInt8](hex: "ab6e47d42cec13bdf53a67b2")) // T (96-bit)
|
XCTAssertEqual(gcm.authenticationTag, [UInt8](hex: "ab6e47d42cec13bdf53a67b2")) // T (96-bit)
|
||||||
|
|
||||||
// decrypt
|
// decrypt
|
||||||
func decrypt(_ encrypted: Array<UInt8>) -> Array<UInt8> {
|
func decrypt(_ encrypted: Array<UInt8>) -> Array<UInt8> {
|
||||||
let decGCM = GCM(iv: iv, authenticationTag: gcm.authenticationTag!, mode: .combined)
|
let decGCM = GCM(iv: iv, authenticationTag: gcm.authenticationTag!, mode: .combined)
|
||||||
let aes = try! AES(key: key, blockMode: decGCM, padding: .noPadding)
|
let aes = try! AES(key: key, blockMode: decGCM, padding: .noPadding)
|
||||||
return try! aes.decrypt(encrypted)
|
return try! aes.decrypt(encrypted)
|
||||||
}
|
}
|
||||||
|
|
||||||
let decrypted = decrypt(encrypted)
|
let decrypted = decrypt(encrypted)
|
||||||
XCTAssertEqual(decrypted, plaintext)
|
XCTAssertEqual(decrypted, plaintext)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAESGCMTagLengthCombined2() {
|
func testAESGCMTagLengthCombined2() {
|
||||||
let key = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
let key = Array<UInt8>(hex: "0x00000000000000000000000000000000")
|
||||||
let plaintext = Array<UInt8>(hex: "0x0000000000000000000000000000000000000000")
|
let plaintext = Array<UInt8>(hex: "0x0000000000000000000000000000000000000000")
|
||||||
let iv = Array<UInt8>(hex: "0x000000000000")
|
let iv = Array<UInt8>(hex: "0x000000000000")
|
||||||
|
|
||||||
let gcm = GCM(iv: iv, tagLength: 12, mode: .combined)
|
let gcm = GCM(iv: iv, tagLength: 12, mode: .combined)
|
||||||
let aes = try! AES(key: key, blockMode: gcm, padding: .noPadding)
|
let aes = try! AES(key: key, blockMode: gcm, padding: .noPadding)
|
||||||
let encrypted = try! aes.encrypt(plaintext)
|
let encrypted = try! aes.encrypt(plaintext)
|
||||||
|
|
||||||
// decrypt
|
// decrypt
|
||||||
func decrypt(_ encrypted: Array<UInt8>) -> Array<UInt8> {
|
func decrypt(_ encrypted: Array<UInt8>) -> Array<UInt8> {
|
||||||
let decGCM = GCM(iv: iv, authenticationTag: gcm.authenticationTag!, mode: .combined)
|
let decGCM = GCM(iv: iv, authenticationTag: gcm.authenticationTag!, mode: .combined)
|
||||||
let aes = try! AES(key: key, blockMode: decGCM, padding: .noPadding)
|
let aes = try! AES(key: key, blockMode: decGCM, padding: .noPadding)
|
||||||
return try! aes.decrypt(encrypted)
|
return try! aes.decrypt(encrypted)
|
||||||
}
|
}
|
||||||
|
|
||||||
let decrypted = decrypt(encrypted)
|
let decrypted = decrypt(encrypted)
|
||||||
XCTAssertEqual(decrypted, plaintext)
|
XCTAssertEqual(decrypted, plaintext)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
class Scrypt: XCTestCase {
|
class Scrypt: XCTestCase {
|
||||||
|
|
||||||
func testScrypt_0() {
|
func testScrypt_0() {
|
||||||
let password = Array("password".data(using: .ascii)!)
|
let password = Array("password".data(using: .ascii)!)
|
||||||
let salt = Array("NaCl".data(using: .ascii)!)
|
let salt = Array("NaCl".data(using: .ascii)!)
|
||||||
@@ -31,7 +31,7 @@ class Scrypt: XCTestCase {
|
|||||||
""".replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\n", with: "").replacingOccurrences(of: "\t", with: ""))
|
""".replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\n", with: "").replacingOccurrences(of: "\t", with: ""))
|
||||||
XCTAssertEqual(derived, expected)
|
XCTAssertEqual(derived, expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testScrypt_1() {
|
func testScrypt_1() {
|
||||||
let password = Array("pleaseletmein".data(using: .ascii)!)
|
let password = Array("pleaseletmein".data(using: .ascii)!)
|
||||||
let salt = Array("SodiumChloride".data(using: .ascii)!)
|
let salt = Array("SodiumChloride".data(using: .ascii)!)
|
||||||
@@ -45,7 +45,7 @@ class Scrypt: XCTestCase {
|
|||||||
""".replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\n", with: "").replacingOccurrences(of: "\t", with: ""))
|
""".replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\n", with: "").replacingOccurrences(of: "\t", with: ""))
|
||||||
XCTAssertEqual(derived, expected)
|
XCTAssertEqual(derived, expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Takes too long to run in debug mode!
|
// Takes too long to run in debug mode!
|
||||||
func testScrypt_2() {
|
func testScrypt_2() {
|
||||||
#if !DEBUG
|
#if !DEBUG
|
||||||
@@ -62,7 +62,7 @@ class Scrypt: XCTestCase {
|
|||||||
XCTAssertEqual(derived, expected)
|
XCTAssertEqual(derived, expected)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static let allTests = [
|
static let allTests = [
|
||||||
("testScrypt_0", testScrypt_0),
|
("testScrypt_0", testScrypt_0),
|
||||||
("testScrypt_1", testScrypt_1),
|
("testScrypt_1", testScrypt_1),
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class ScryptTestsPeft: XCTestCase {
|
|||||||
_ = try! CryptoSwift.Scrypt(password: password, salt: salt, dkLen: 64, N: N, r: 8, p: 1).calculate()
|
_ = try! CryptoSwift.Scrypt(password: password, salt: salt, dkLen: 64, N: N, r: 8, p: 1).calculate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension ScryptTestsPeft {
|
extension ScryptTestsPeft {
|
||||||
|
|||||||
@@ -9,27 +9,27 @@
|
|||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
class TestsPerformance: XCTestCase {
|
class TestsPerformance: XCTestCase {
|
||||||
|
|
||||||
override func setUp() {
|
override func setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||||
}
|
}
|
||||||
|
|
||||||
override func tearDown() {
|
override func tearDown() {
|
||||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||||
super.tearDown()
|
super.tearDown()
|
||||||
}
|
}
|
||||||
|
|
||||||
func testExample() {
|
func testExample() {
|
||||||
// This is an example of a functional test case.
|
// This is an example of a functional test case.
|
||||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||||
}
|
}
|
||||||
|
|
||||||
func testPerformanceExample() {
|
func testPerformanceExample() {
|
||||||
// This is an example of a performance test case.
|
// This is an example of a performance test case.
|
||||||
self.measure {
|
self.measure {
|
||||||
// Put the code you want to measure the time of here.
|
// Put the code you want to measure the time of here.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
theme: jekyll-theme-cayman
|
theme: jekyll-theme-cayman
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// Other Swift Flags
|
// Other Swift Flags
|
||||||
//
|
//
|
||||||
// A list of additional flags to pass to the Swift compiler.
|
// A list of additional flags to pass to the Swift compiler.
|
||||||
|
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -Xfrontend -debug-time-function-bodies
|
OTHER_SWIFT_FLAGS = $(inherited) -Xfrontend -debug-time-function-bodies
|
||||||
@@ -30,7 +30,7 @@ SWIFT_OPTIMIZATION_LEVEL = -Onone
|
|||||||
|
|
||||||
|
|
||||||
// Exclusive Access to Memory
|
// Exclusive Access to Memory
|
||||||
//
|
//
|
||||||
// Enforce exclusive access to memory
|
// Enforce exclusive access to memory
|
||||||
|
|
||||||
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = none
|
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = none
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ BITCODE_GENERATION_MODE = bitcode
|
|||||||
|
|
||||||
|
|
||||||
// Use Optimization Profile
|
// Use Optimization Profile
|
||||||
//
|
//
|
||||||
// When this setting is enabled, `clang` will use the optimization profile collected for
|
// When this setting is enabled, `clang` will use the optimization profile collected for
|
||||||
// a target when building it.
|
// a target when building it.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ CLANG_USE_OPTIMIZATION_PROFILE = NO
|
|||||||
|
|
||||||
|
|
||||||
// Generate Debug Symbols
|
// Generate Debug Symbols
|
||||||
//
|
//
|
||||||
// Enables or disables generation of debug symbols. When debug symbols are enabled, the
|
// Enables or disables generation of debug symbols. When debug symbols are enabled, the
|
||||||
// level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.
|
// level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO
|
|||||||
|
|
||||||
|
|
||||||
// Unroll Loops
|
// Unroll Loops
|
||||||
//
|
//
|
||||||
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
||||||
// number of branches executed.
|
// number of branches executed.
|
||||||
|
|
||||||
@@ -40,9 +40,9 @@ GCC_UNROLL_LOOPS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Link-Time Optimization
|
// Link-Time Optimization
|
||||||
//
|
//
|
||||||
// Enabling this setting allows optimization across file boundaries during linking.
|
// Enabling this setting allows optimization across file boundaries during linking.
|
||||||
//
|
//
|
||||||
// * *No:* Disabled. Do not use link-time optimization.
|
// * *No:* Disabled. Do not use link-time optimization.
|
||||||
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
||||||
// optimization of binaries, combining all executable code into a single unit and running
|
// optimization of binaries, combining all executable code into a single unit and running
|
||||||
@@ -57,7 +57,7 @@ LLVM_LTO = YES
|
|||||||
|
|
||||||
|
|
||||||
// Disable Safety Checks
|
// Disable Safety Checks
|
||||||
//
|
//
|
||||||
// Disable runtime safety checks when optimizing.
|
// Disable runtime safety checks when optimizing.
|
||||||
|
|
||||||
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
||||||
@@ -65,7 +65,7 @@ SWIFT_DISABLE_SAFETY_CHECKS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Exclusive Access to Memory
|
// Exclusive Access to Memory
|
||||||
//
|
//
|
||||||
// Enforce exclusive access to memory
|
// Enforce exclusive access to memory
|
||||||
|
|
||||||
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
|
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
|
||||||
@@ -73,7 +73,7 @@ SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES
|
||||||
|
|
||||||
// Require Only App-Extension-Safe API
|
// Require Only App-Extension-Safe API
|
||||||
//
|
//
|
||||||
// When enabled, this causes the compiler and linker to disallow use of APIs that are not
|
// When enabled, this causes the compiler and linker to disallow use of APIs that are not
|
||||||
// available to app extensions and to disallow linking to frameworks that have not been
|
// available to app extensions and to disallow linking to frameworks that have not been
|
||||||
// built with this setting enabled.
|
// built with this setting enabled.
|
||||||
@@ -18,7 +18,7 @@ APPLICATION_EXTENSION_API_ONLY = YES
|
|||||||
|
|
||||||
|
|
||||||
// Compatibility Version
|
// Compatibility Version
|
||||||
//
|
//
|
||||||
// Determines the compatibility version of the resulting library, bundle, or framework
|
// Determines the compatibility version of the resulting library, bundle, or framework
|
||||||
// binary. See [Dynamic Library Design
|
// binary. See [Dynamic Library Design
|
||||||
// Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19)
|
// Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19)
|
||||||
@@ -31,7 +31,7 @@ DYLIB_COMPATIBILITY_VERSION = 1
|
|||||||
|
|
||||||
|
|
||||||
// Current Library Version
|
// Current Library Version
|
||||||
//
|
//
|
||||||
// This setting defines the current version of any framework built by the project. As
|
// This setting defines the current version of any framework built by the project. As
|
||||||
// with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number,
|
// with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number,
|
||||||
// such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See
|
// such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See
|
||||||
@@ -46,7 +46,7 @@ DYLIB_CURRENT_VERSION = 1
|
|||||||
|
|
||||||
|
|
||||||
// Dynamic Library Install Name Base
|
// Dynamic Library Install Name Base
|
||||||
//
|
//
|
||||||
// Sets the base value for the internal `install path` (`LC_ID_DYLIB`) in a dynamic
|
// Sets the base value for the internal `install path` (`LC_ID_DYLIB`) in a dynamic
|
||||||
// library. This will be combined with the `EXECUTABLE_PATH` to form the full install
|
// library. This will be combined with the `EXECUTABLE_PATH` to form the full install
|
||||||
// path. Setting `LD_DYLIB_INSTALL_NAME` directly will override this setting. This
|
// path. Setting `LD_DYLIB_INSTALL_NAME` directly will override this setting. This
|
||||||
@@ -58,7 +58,7 @@ DYLIB_INSTALL_NAME_BASE = @rpath
|
|||||||
|
|
||||||
|
|
||||||
// Enable Bitcode
|
// Enable Bitcode
|
||||||
//
|
//
|
||||||
// Activating this setting indicates that the target or project should generate bitcode
|
// Activating this setting indicates that the target or project should generate bitcode
|
||||||
// during compilation for platforms and architectures that support it. For Archive
|
// during compilation for platforms and architectures that support it. For Archive
|
||||||
// builds, bitcode will be generated in the linked binary for submission to the App
|
// builds, bitcode will be generated in the linked binary for submission to the App
|
||||||
@@ -70,7 +70,7 @@ ENABLE_BITCODE = YES
|
|||||||
|
|
||||||
|
|
||||||
// Enable Bitcode
|
// Enable Bitcode
|
||||||
//
|
//
|
||||||
// Activating this setting indicates that the target or project should generate bitcode
|
// Activating this setting indicates that the target or project should generate bitcode
|
||||||
// during compilation for platforms and architectures that support it. For Archive
|
// during compilation for platforms and architectures that support it. For Archive
|
||||||
// builds, bitcode will be generated in the linked binary for submission to the App
|
// builds, bitcode will be generated in the linked binary for submission to the App
|
||||||
@@ -82,7 +82,7 @@ ENABLE_BITCODE[sdk=macosx*] = NO
|
|||||||
|
|
||||||
|
|
||||||
// Installation Directory
|
// Installation Directory
|
||||||
//
|
//
|
||||||
// The directory in which to install the build products. This path is prepended by the
|
// The directory in which to install the build products. This path is prepended by the
|
||||||
// `DSTROOT`.
|
// `DSTROOT`.
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks
|
|||||||
|
|
||||||
|
|
||||||
// Runpath Search Paths
|
// Runpath Search Paths
|
||||||
//
|
//
|
||||||
// This is a list of paths to be added to the `runpath` search path list for the image
|
// This is a list of paths to be added to the `runpath` search path list for the image
|
||||||
// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
|
// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
|
||||||
// load path begins with `@rpath/`. See [Dynamic Library Programming
|
// load path begins with `@rpath/`. See [Dynamic Library Programming
|
||||||
@@ -110,7 +110,7 @@ LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/
|
|||||||
INFOPLIST_FILE = Sources/CryptoSwift/Info.plist
|
INFOPLIST_FILE = Sources/CryptoSwift/Info.plist
|
||||||
|
|
||||||
// Product Bundle Identifier
|
// Product Bundle Identifier
|
||||||
//
|
//
|
||||||
// A string that uniquely identifies the bundle. The string should be in reverse DNS
|
// A string that uniquely identifies the bundle. The string should be in reverse DNS
|
||||||
// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
|
// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
|
||||||
// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
|
// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
|
||||||
@@ -121,7 +121,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.${PRODUCT_NAME:rfc1034identifier}
|
|||||||
|
|
||||||
|
|
||||||
// Product Name
|
// Product Name
|
||||||
//
|
//
|
||||||
// This is the basename of the product generated by the target.
|
// This is the basename of the product generated by the target.
|
||||||
|
|
||||||
PRODUCT_NAME = $(TARGET_NAME)
|
PRODUCT_NAME = $(TARGET_NAME)
|
||||||
@@ -129,7 +129,7 @@ PRODUCT_NAME = $(TARGET_NAME)
|
|||||||
|
|
||||||
|
|
||||||
// Skip Install
|
// Skip Install
|
||||||
//
|
//
|
||||||
// If enabled, don't install built products even if deployment locations are active.
|
// If enabled, don't install built products even if deployment locations are active.
|
||||||
|
|
||||||
SKIP_INSTALL = YES
|
SKIP_INSTALL = YES
|
||||||
@@ -137,8 +137,8 @@ SKIP_INSTALL = YES
|
|||||||
|
|
||||||
|
|
||||||
// Swift Language Version
|
// Swift Language Version
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
SWIFT_VERSION = 5.0
|
SWIFT_VERSION = 5.0
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ BITCODE_GENERATION_MODE = bitcode
|
|||||||
|
|
||||||
|
|
||||||
// Unroll Loops
|
// Unroll Loops
|
||||||
//
|
//
|
||||||
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
||||||
// number of branches executed.
|
// number of branches executed.
|
||||||
|
|
||||||
@@ -22,9 +22,9 @@ GCC_UNROLL_LOOPS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Link-Time Optimization
|
// Link-Time Optimization
|
||||||
//
|
//
|
||||||
// Enabling this setting allows optimization across file boundaries during linking.
|
// Enabling this setting allows optimization across file boundaries during linking.
|
||||||
//
|
//
|
||||||
// * *No:* Disabled. Do not use link-time optimization.
|
// * *No:* Disabled. Do not use link-time optimization.
|
||||||
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
||||||
// optimization of binaries, combining all executable code into a single unit and running
|
// optimization of binaries, combining all executable code into a single unit and running
|
||||||
@@ -39,7 +39,7 @@ LLVM_LTO = YES
|
|||||||
|
|
||||||
|
|
||||||
// Other Swift Flags
|
// Other Swift Flags
|
||||||
//
|
//
|
||||||
// A list of additional flags to pass to the Swift compiler.
|
// A list of additional flags to pass to the Swift compiler.
|
||||||
|
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -Xfrontend -debug-time-function-bodies
|
OTHER_SWIFT_FLAGS = $(inherited) -Xfrontend -debug-time-function-bodies
|
||||||
@@ -47,7 +47,7 @@ OTHER_SWIFT_FLAGS = $(inherited) -Xfrontend -debug-time-function-bodies
|
|||||||
|
|
||||||
|
|
||||||
// Disable Safety Checks
|
// Disable Safety Checks
|
||||||
//
|
//
|
||||||
// Disable runtime safety checks when optimizing.
|
// Disable runtime safety checks when optimizing.
|
||||||
|
|
||||||
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
||||||
@@ -55,7 +55,7 @@ SWIFT_DISABLE_SAFETY_CHECKS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Exclusive Access to Memory
|
// Exclusive Access to Memory
|
||||||
//
|
//
|
||||||
// Enforce exclusive access to memory
|
// Enforce exclusive access to memory
|
||||||
|
|
||||||
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
|
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
|
||||||
@@ -63,7 +63,7 @@ SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// Debug Information Format
|
// Debug Information Format
|
||||||
//
|
//
|
||||||
// The type of debug information to produce.
|
// The type of debug information to produce.
|
||||||
//
|
//
|
||||||
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
||||||
// format. [dwarf]
|
// format. [dwarf]
|
||||||
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
||||||
@@ -24,7 +24,7 @@ DEBUG_INFORMATION_FORMAT = dwarf
|
|||||||
|
|
||||||
|
|
||||||
// Enable Testability
|
// Enable Testability
|
||||||
//
|
//
|
||||||
// When this setting is activated, the product will be built with options appropriate for
|
// When this setting is activated, the product will be built with options appropriate for
|
||||||
// running automated tests, such as making private interfaces accessible to the tests.
|
// running automated tests, such as making private interfaces accessible to the tests.
|
||||||
// This may result in tests running slower than they would without testability enabled.
|
// This may result in tests running slower than they would without testability enabled.
|
||||||
@@ -34,7 +34,7 @@ ENABLE_TESTABILITY = YES
|
|||||||
|
|
||||||
|
|
||||||
// Generate Position-Dependent Code
|
// Generate Position-Dependent Code
|
||||||
//
|
//
|
||||||
// Faster function calls for applications. Not appropriate for shared libraries, which
|
// Faster function calls for applications. Not appropriate for shared libraries, which
|
||||||
// need to be position-independent.
|
// need to be position-independent.
|
||||||
|
|
||||||
@@ -43,10 +43,10 @@ GCC_DYNAMIC_NO_PIC = NO
|
|||||||
|
|
||||||
|
|
||||||
// Optimization Level
|
// Optimization Level
|
||||||
//
|
//
|
||||||
// Specifies the degree to which the generated code is optimized for speed and binary
|
// Specifies the degree to which the generated code is optimized for speed and binary
|
||||||
// size.
|
// size.
|
||||||
//
|
//
|
||||||
// * *None:* Do not optimize. [-O0]
|
// * *None:* Do not optimize. [-O0]
|
||||||
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
||||||
// make debugging produce the expected results. Statements are independent—if you stop
|
// make debugging produce the expected results. Statements are independent—if you stop
|
||||||
@@ -79,7 +79,7 @@ GCC_OPTIMIZATION_LEVEL = 0
|
|||||||
|
|
||||||
|
|
||||||
// Preprocessor Macros
|
// Preprocessor Macros
|
||||||
//
|
//
|
||||||
// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
|
// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
|
||||||
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1
|
||||||
@@ -87,7 +87,7 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1
|
|||||||
|
|
||||||
|
|
||||||
// Produce debugging information
|
// Produce debugging information
|
||||||
//
|
//
|
||||||
// Produce debugging information. This information is required for shader profiling.
|
// Produce debugging information. This information is required for shader profiling.
|
||||||
|
|
||||||
MTL_ENABLE_DEBUG_INFO = YES
|
MTL_ENABLE_DEBUG_INFO = YES
|
||||||
@@ -95,7 +95,7 @@ MTL_ENABLE_DEBUG_INFO = YES
|
|||||||
|
|
||||||
|
|
||||||
// Build Active Architecture Only
|
// Build Active Architecture Only
|
||||||
//
|
//
|
||||||
// If enabled, only the active architecture is built.
|
// If enabled, only the active architecture is built.
|
||||||
|
|
||||||
ONLY_ACTIVE_ARCH = YES
|
ONLY_ACTIVE_ARCH = YES
|
||||||
@@ -103,7 +103,7 @@ ONLY_ACTIVE_ARCH = YES
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// Debug Information Format
|
// Debug Information Format
|
||||||
//
|
//
|
||||||
// The type of debug information to produce.
|
// The type of debug information to produce.
|
||||||
//
|
//
|
||||||
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
||||||
// format. [dwarf]
|
// format. [dwarf]
|
||||||
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
||||||
@@ -24,7 +24,7 @@ DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
|
|||||||
|
|
||||||
|
|
||||||
// Enable Foundation Assertions
|
// Enable Foundation Assertions
|
||||||
//
|
//
|
||||||
// Controls whether assertion logic provided by `NSAssert` is included in the
|
// Controls whether assertion logic provided by `NSAssert` is included in the
|
||||||
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
||||||
// improve code performance.
|
// improve code performance.
|
||||||
@@ -34,7 +34,7 @@ ENABLE_NS_ASSERTIONS = NO
|
|||||||
|
|
||||||
|
|
||||||
// Produce debugging information
|
// Produce debugging information
|
||||||
//
|
//
|
||||||
// Produce debugging information. This information is required for shader profiling.
|
// Produce debugging information. This information is required for shader profiling.
|
||||||
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO
|
MTL_ENABLE_DEBUG_INFO = NO
|
||||||
@@ -42,7 +42,7 @@ MTL_ENABLE_DEBUG_INFO = NO
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
@@ -53,7 +53,7 @@ SWIFT_OPTIMIZATION_LEVEL = -O
|
|||||||
|
|
||||||
|
|
||||||
// Validate Built Product
|
// Validate Built Product
|
||||||
//
|
//
|
||||||
// If enabled, perform validation checks on the product as part of the build process.
|
// If enabled, perform validation checks on the product as part of the build process.
|
||||||
|
|
||||||
VALIDATE_PRODUCT = YES
|
VALIDATE_PRODUCT = YES
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ PROVISIONING_PROFILE_SPECIFIER =
|
|||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||||
|
|
||||||
// Asset Catalog App Icon Set Name
|
// Asset Catalog App Icon Set Name
|
||||||
//
|
//
|
||||||
// Name of an asset catalog app icon set whose contents will be merged into the
|
// Name of an asset catalog app icon set whose contents will be merged into the
|
||||||
// `Info.plist`.
|
// `Info.plist`.
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME =
|
|||||||
|
|
||||||
|
|
||||||
// Info.plist File
|
// Info.plist File
|
||||||
//
|
//
|
||||||
// The project-relative path to the property list file that contains the `Info.plist`
|
// The project-relative path to the property list file that contains the `Info.plist`
|
||||||
// information used by bundles. For details on information property list files, see
|
// information used by bundles. For details on information property list files, see
|
||||||
// [Information Property List
|
// [Information Property List
|
||||||
@@ -33,7 +33,7 @@ INFOPLIST_FILE = CryptoSwift-TestHostApp/Info.plist
|
|||||||
|
|
||||||
|
|
||||||
// Runpath Search Paths
|
// Runpath Search Paths
|
||||||
//
|
//
|
||||||
// This is a list of paths to be added to the `runpath` search path list for the image
|
// This is a list of paths to be added to the `runpath` search path list for the image
|
||||||
// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
|
// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
|
||||||
// load path begins with `@rpath/`. See [Dynamic Library Programming
|
// load path begins with `@rpath/`. See [Dynamic Library Programming
|
||||||
@@ -44,7 +44,7 @@ LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
|
|||||||
|
|
||||||
|
|
||||||
// Product Bundle Identifier
|
// Product Bundle Identifier
|
||||||
//
|
//
|
||||||
// A string that uniquely identifies the bundle. The string should be in reverse DNS
|
// A string that uniquely identifies the bundle. The string should be in reverse DNS
|
||||||
// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
|
// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
|
||||||
// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
|
// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
|
||||||
@@ -54,7 +54,7 @@ PRODUCT_BUNDLE_IDENTIFIER = CryptoSwiftTestHostApp
|
|||||||
|
|
||||||
|
|
||||||
// Base SDK
|
// Base SDK
|
||||||
//
|
//
|
||||||
// The name or path of the base SDK being used during the build. The product will be
|
// The name or path of the base SDK being used during the build. The product will be
|
||||||
// built against the headers and libraries located inside the indicated SDK. This path
|
// built against the headers and libraries located inside the indicated SDK. This path
|
||||||
// will be prepended to all search paths, and will be passed through the environment to
|
// will be prepended to all search paths, and will be passed through the environment to
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// Debug Information Format
|
// Debug Information Format
|
||||||
//
|
//
|
||||||
// The type of debug information to produce.
|
// The type of debug information to produce.
|
||||||
//
|
//
|
||||||
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
||||||
// format. [dwarf]
|
// format. [dwarf]
|
||||||
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
||||||
@@ -24,7 +24,7 @@ DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
|
|||||||
|
|
||||||
|
|
||||||
// Enable Foundation Assertions
|
// Enable Foundation Assertions
|
||||||
//
|
//
|
||||||
// Controls whether assertion logic provided by `NSAssert` is included in the
|
// Controls whether assertion logic provided by `NSAssert` is included in the
|
||||||
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
||||||
// improve code performance.
|
// improve code performance.
|
||||||
@@ -34,7 +34,7 @@ ENABLE_NS_ASSERTIONS = NO
|
|||||||
|
|
||||||
|
|
||||||
// Produce debugging information
|
// Produce debugging information
|
||||||
//
|
//
|
||||||
// Produce debugging information. This information is required for shader profiling.
|
// Produce debugging information. This information is required for shader profiling.
|
||||||
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO
|
MTL_ENABLE_DEBUG_INFO = NO
|
||||||
@@ -42,7 +42,7 @@ MTL_ENABLE_DEBUG_INFO = NO
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
@@ -53,7 +53,7 @@ SWIFT_OPTIMIZATION_LEVEL = -O
|
|||||||
|
|
||||||
|
|
||||||
// Validate Built Product
|
// Validate Built Product
|
||||||
//
|
//
|
||||||
// If enabled, perform validation checks on the product as part of the build process.
|
// If enabled, perform validation checks on the product as part of the build process.
|
||||||
|
|
||||||
VALIDATE_PRODUCT = YES
|
VALIDATE_PRODUCT = YES
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// Strip Debug Symbols During Copy
|
// Strip Debug Symbols During Copy
|
||||||
//
|
//
|
||||||
// Specifies whether binary files that are copied during the build, such as in a Copy
|
// Specifies whether binary files that are copied during the build, such as in a Copy
|
||||||
// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
|
// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
|
||||||
// It does not cause the linked product of a target to be stripped—use
|
// It does not cause the linked product of a target to be stripped—use
|
||||||
@@ -20,7 +20,7 @@ COPY_PHASE_STRIP = NO
|
|||||||
|
|
||||||
|
|
||||||
// Enable Testability
|
// Enable Testability
|
||||||
//
|
//
|
||||||
// When this setting is activated, the product will be built with options appropriate for
|
// When this setting is activated, the product will be built with options appropriate for
|
||||||
// running automated tests, such as making private interfaces accessible to the tests.
|
// running automated tests, such as making private interfaces accessible to the tests.
|
||||||
// This may result in tests running slower than they would without testability enabled.
|
// This may result in tests running slower than they would without testability enabled.
|
||||||
@@ -30,7 +30,7 @@ ENABLE_TESTABILITY = YES
|
|||||||
|
|
||||||
|
|
||||||
// Generate Position-Dependent Code
|
// Generate Position-Dependent Code
|
||||||
//
|
//
|
||||||
// Faster function calls for applications. Not appropriate for shared libraries, which
|
// Faster function calls for applications. Not appropriate for shared libraries, which
|
||||||
// need to be position-independent.
|
// need to be position-independent.
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ GCC_DYNAMIC_NO_PIC = NO
|
|||||||
|
|
||||||
|
|
||||||
// Preprocessor Macros
|
// Preprocessor Macros
|
||||||
//
|
//
|
||||||
// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
|
// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
|
||||||
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1
|
||||||
@@ -55,7 +55,7 @@ METAL_ENABLE_DEBUG_INFO = YES
|
|||||||
|
|
||||||
|
|
||||||
// Build Active Architecture Only
|
// Build Active Architecture Only
|
||||||
//
|
//
|
||||||
// If enabled, only the active architecture is built.
|
// If enabled, only the active architecture is built.
|
||||||
|
|
||||||
ONLY_ACTIVE_ARCH = YES
|
ONLY_ACTIVE_ARCH = YES
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// Use Optimization Profile
|
// Use Optimization Profile
|
||||||
//
|
//
|
||||||
// When this setting is enabled, `clang` will use the optimization profile collected for
|
// When this setting is enabled, `clang` will use the optimization profile collected for
|
||||||
// a target when building it.
|
// a target when building it.
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ CLANG_USE_OPTIMIZATION_PROFILE = YES
|
|||||||
|
|
||||||
|
|
||||||
// Strip Debug Symbols During Copy
|
// Strip Debug Symbols During Copy
|
||||||
//
|
//
|
||||||
// Specifies whether binary files that are copied during the build, such as in a Copy
|
// Specifies whether binary files that are copied during the build, such as in a Copy
|
||||||
// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
|
// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
|
||||||
// It does not cause the linked product of a target to be stripped—use
|
// It does not cause the linked product of a target to be stripped—use
|
||||||
@@ -29,7 +29,7 @@ COPY_PHASE_STRIP = YES
|
|||||||
|
|
||||||
|
|
||||||
// Enable Foundation Assertions
|
// Enable Foundation Assertions
|
||||||
//
|
//
|
||||||
// Controls whether assertion logic provided by `NSAssert` is included in the
|
// Controls whether assertion logic provided by `NSAssert` is included in the
|
||||||
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
||||||
// improve code performance.
|
// improve code performance.
|
||||||
@@ -39,10 +39,10 @@ ENABLE_NS_ASSERTIONS = NO
|
|||||||
|
|
||||||
|
|
||||||
// Optimization Level
|
// Optimization Level
|
||||||
//
|
//
|
||||||
// Specifies the degree to which the generated code is optimized for speed and binary
|
// Specifies the degree to which the generated code is optimized for speed and binary
|
||||||
// size.
|
// size.
|
||||||
//
|
//
|
||||||
// * *None:* Do not optimize. [-O0]
|
// * *None:* Do not optimize. [-O0]
|
||||||
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
||||||
// make debugging produce the expected results. Statements are independent—if you stop
|
// make debugging produce the expected results. Statements are independent—if you stop
|
||||||
@@ -79,7 +79,7 @@ METAL_ENABLE_DEBUG_INFO = NO
|
|||||||
|
|
||||||
|
|
||||||
// Validate Built Product
|
// Validate Built Product
|
||||||
//
|
//
|
||||||
// If enabled, perform validation checks on the product as part of the build process.
|
// If enabled, perform validation checks on the product as part of the build process.
|
||||||
|
|
||||||
VALIDATE_PRODUCT = YES
|
VALIDATE_PRODUCT = YES
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ CLANG_ANALYZER_NONNULL = YES
|
|||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
|
||||||
|
|
||||||
// Always Search User Paths (Deprecated)
|
// Always Search User Paths (Deprecated)
|
||||||
//
|
//
|
||||||
// This setting is deprecated as of Xcode 8.3 and may not be supported in future
|
// This setting is deprecated as of Xcode 8.3 and may not be supported in future
|
||||||
// versions. It is recommended that you disable the setting.
|
// versions. It is recommended that you disable the setting.
|
||||||
//
|
//
|
||||||
// If enabled, both `#include <header.h>`-style and `#include "header.h"`-style
|
// If enabled, both `#include <header.h>`-style and `#include "header.h"`-style
|
||||||
// directives search the paths in `USER_HEADER_SEARCH_PATHS` before
|
// directives search the paths in `USER_HEADER_SEARCH_PATHS` before
|
||||||
// `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h`
|
// `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h`
|
||||||
@@ -39,7 +39,7 @@ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
|
|||||||
// done using the `-iquote` flag for the paths provided in `USER_HEADER_SEARCH_PATHS`. If
|
// done using the `-iquote` flag for the paths provided in `USER_HEADER_SEARCH_PATHS`. If
|
||||||
// disabled and your compiler fully supports separate user paths, user headers are only
|
// disabled and your compiler fully supports separate user paths, user headers are only
|
||||||
// accessible with `#include "header.h"`-style preprocessor directives.
|
// accessible with `#include "header.h"`-style preprocessor directives.
|
||||||
//
|
//
|
||||||
// For backwards compatibility reasons, this setting is enabled by default. Disabling it
|
// For backwards compatibility reasons, this setting is enabled by default. Disabling it
|
||||||
// is strongly recommended.
|
// is strongly recommended.
|
||||||
|
|
||||||
@@ -48,9 +48,9 @@ ALWAYS_SEARCH_USER_PATHS = NO
|
|||||||
|
|
||||||
|
|
||||||
// C++ Language Dialect
|
// C++ Language Dialect
|
||||||
//
|
//
|
||||||
// Choose a standard or non-standard C++ language dialect. Options include:
|
// Choose a standard or non-standard C++ language dialect. Options include:
|
||||||
//
|
//
|
||||||
// * *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]
|
// * *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]
|
||||||
// * *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]
|
// * *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]
|
||||||
// * *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions.
|
// * *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions.
|
||||||
@@ -74,9 +74,9 @@ CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
|
|||||||
|
|
||||||
|
|
||||||
// C++ Standard Library
|
// C++ Standard Library
|
||||||
//
|
//
|
||||||
// Choose a version of the C++ standard library to use.
|
// Choose a version of the C++ standard library to use.
|
||||||
//
|
//
|
||||||
// * *libstdc++:* A traditional C++ standard library that works with GCC and the LLVM
|
// * *libstdc++:* A traditional C++ standard library that works with GCC and the LLVM
|
||||||
// Compiler (default).
|
// Compiler (default).
|
||||||
// * *libc++:* A highly optimized C++ standard library that works only with the LLVM
|
// * *libc++:* A highly optimized C++ standard library that works only with the LLVM
|
||||||
@@ -87,7 +87,7 @@ CLANG_CXX_LIBRARY = libc++
|
|||||||
|
|
||||||
|
|
||||||
// Enable Modules (C and Objective-C)
|
// Enable Modules (C and Objective-C)
|
||||||
//
|
//
|
||||||
// Enables the use of modules for system APIs. System headers are imported as semantic
|
// Enables the use of modules for system APIs. System headers are imported as semantic
|
||||||
// modules instead of raw headers. This can result in faster builds and project indexing.
|
// modules instead of raw headers. This can result in faster builds and project indexing.
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ CLANG_ENABLE_MODULES = YES
|
|||||||
|
|
||||||
|
|
||||||
// Objective-C Automatic Reference Counting
|
// Objective-C Automatic Reference Counting
|
||||||
//
|
//
|
||||||
// Compiles reference-counted Objective-C code (when garbage collection is not enabled)
|
// Compiles reference-counted Objective-C code (when garbage collection is not enabled)
|
||||||
// to use Automatic Reference Counting. Code compiled using automated reference counting
|
// to use Automatic Reference Counting. Code compiled using automated reference counting
|
||||||
// is compatible with other code (such as frameworks) compiled using either manual
|
// is compatible with other code (such as frameworks) compiled using either manual
|
||||||
@@ -116,7 +116,7 @@ CLANG_ENABLE_OBJC_WEAK = YES
|
|||||||
|
|
||||||
|
|
||||||
// Duplicate Method Definitions
|
// Duplicate Method Definitions
|
||||||
//
|
//
|
||||||
// Warn about declaring the same method more than once within the same `@interface`.
|
// Warn about declaring the same method more than once within the same `@interface`.
|
||||||
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
||||||
@@ -124,7 +124,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
|||||||
|
|
||||||
|
|
||||||
// Block Capture of Autoreleasing
|
// Block Capture of Autoreleasing
|
||||||
//
|
//
|
||||||
// Warn about block captures of implicitly autoreleasing parameters.
|
// Warn about block captures of implicitly autoreleasing parameters.
|
||||||
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
|
||||||
@@ -132,7 +132,7 @@ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Boolean Conversions
|
// Implicit Boolean Conversions
|
||||||
//
|
//
|
||||||
// Warn about implicit conversions to boolean values that are suspicious. For example,
|
// Warn about implicit conversions to boolean values that are suspicious. For example,
|
||||||
// writing `if (foo)` where `foo` is the name a function will trigger a warning.
|
// writing `if (foo)` where `foo` is the name a function will trigger a warning.
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ CLANG_WARN_BOOL_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Suspicious Commas
|
// Suspicious Commas
|
||||||
//
|
//
|
||||||
// Warn about suspicious uses of the comma operator.
|
// Warn about suspicious uses of the comma operator.
|
||||||
|
|
||||||
CLANG_WARN_COMMA = YES
|
CLANG_WARN_COMMA = YES
|
||||||
@@ -149,7 +149,7 @@ CLANG_WARN_COMMA = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Constant Conversions
|
// Implicit Constant Conversions
|
||||||
//
|
//
|
||||||
// Warn about implicit conversions of constant values that cause the constant value to
|
// Warn about implicit conversions of constant values that cause the constant value to
|
||||||
// change, either through a loss of precision, or entirely in its meaning.
|
// change, either through a loss of precision, or entirely in its meaning.
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ CLANG_WARN_CONSTANT_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Overriding Deprecated Objective-C Methods
|
// Overriding Deprecated Objective-C Methods
|
||||||
//
|
//
|
||||||
// Warn if an Objective-C class either subclasses a deprecated class or overrides a
|
// Warn if an Objective-C class either subclasses a deprecated class or overrides a
|
||||||
// method that has been marked deprecated or unavailable.
|
// method that has been marked deprecated or unavailable.
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Direct usage of 'isa'
|
// Direct usage of 'isa'
|
||||||
//
|
//
|
||||||
// Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime
|
// Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime
|
||||||
// API.
|
// API.
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
|
|||||||
|
|
||||||
|
|
||||||
// Empty Loop Bodies
|
// Empty Loop Bodies
|
||||||
//
|
//
|
||||||
// Warn about loop bodies that are suspiciously empty.
|
// Warn about loop bodies that are suspiciously empty.
|
||||||
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES
|
CLANG_WARN_EMPTY_BODY = YES
|
||||||
@@ -184,7 +184,7 @@ CLANG_WARN_EMPTY_BODY = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Enum Conversions
|
// Implicit Enum Conversions
|
||||||
//
|
//
|
||||||
// Warn about implicit conversions between different kinds of enum values. For example,
|
// Warn about implicit conversions between different kinds of enum values. For example,
|
||||||
// this can catch issues when using the wrong enum flag as an argument to a function or
|
// this can catch issues when using the wrong enum flag as an argument to a function or
|
||||||
// method.
|
// method.
|
||||||
@@ -194,7 +194,7 @@ CLANG_WARN_ENUM_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Infinite Recursion
|
// Infinite Recursion
|
||||||
//
|
//
|
||||||
// Warn if all paths through a function call itself.
|
// Warn if all paths through a function call itself.
|
||||||
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES
|
CLANG_WARN_INFINITE_RECURSION = YES
|
||||||
@@ -202,7 +202,7 @@ CLANG_WARN_INFINITE_RECURSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Integer to Pointer Conversions
|
// Implicit Integer to Pointer Conversions
|
||||||
//
|
//
|
||||||
// Warn about implicit conversions between pointers and integers. For example, this can
|
// Warn about implicit conversions between pointers and integers. For example, this can
|
||||||
// catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.
|
// catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ CLANG_WARN_INT_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Non-Literal Null Conversions
|
// Implicit Non-Literal Null Conversions
|
||||||
//
|
//
|
||||||
// Warn about non-literal expressions that evaluate to zero being treated as a null
|
// Warn about non-literal expressions that evaluate to zero being treated as a null
|
||||||
// pointer.
|
// pointer.
|
||||||
|
|
||||||
@@ -220,7 +220,7 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit retain of 'self' within blocks
|
// Implicit retain of 'self' within blocks
|
||||||
//
|
//
|
||||||
// Warn about implicit retains of `self` within blocks, which can create a retain-cycle.
|
// Warn about implicit retains of `self` within blocks, which can create a retain-cycle.
|
||||||
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
|
||||||
@@ -228,7 +228,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Objective-C Literal Conversions
|
// Implicit Objective-C Literal Conversions
|
||||||
//
|
//
|
||||||
// Warn about implicit conversions from Objective-C literals to values of incompatible
|
// Warn about implicit conversions from Objective-C literals to values of incompatible
|
||||||
// type.
|
// type.
|
||||||
|
|
||||||
@@ -237,7 +237,7 @@ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Unintentional Root Class
|
// Unintentional Root Class
|
||||||
//
|
//
|
||||||
// Warn about classes that unintentionally do not subclass a root class, such as
|
// Warn about classes that unintentionally do not subclass a root class, such as
|
||||||
// `NSObject`.
|
// `NSObject`.
|
||||||
|
|
||||||
@@ -246,7 +246,7 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
|
|||||||
|
|
||||||
|
|
||||||
// Range-based For Loops
|
// Range-based For Loops
|
||||||
//
|
//
|
||||||
// Warn about ranged-based for loops.
|
// Warn about ranged-based for loops.
|
||||||
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
|
||||||
@@ -254,7 +254,7 @@ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Strict Prototypes
|
// Strict Prototypes
|
||||||
//
|
//
|
||||||
// Warn about non-prototype declarations.
|
// Warn about non-prototype declarations.
|
||||||
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES
|
CLANG_WARN_STRICT_PROTOTYPES = YES
|
||||||
@@ -262,7 +262,7 @@ CLANG_WARN_STRICT_PROTOTYPES = YES
|
|||||||
|
|
||||||
|
|
||||||
// Suspicious Moves
|
// Suspicious Moves
|
||||||
//
|
//
|
||||||
// Warn about suspicious uses of `std::move`.
|
// Warn about suspicious uses of `std::move`.
|
||||||
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES
|
CLANG_WARN_SUSPICIOUS_MOVE = YES
|
||||||
@@ -270,7 +270,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES
|
|||||||
|
|
||||||
|
|
||||||
// Unreachable Code
|
// Unreachable Code
|
||||||
//
|
//
|
||||||
// Warns about potentially unreachable code.
|
// Warns about potentially unreachable code.
|
||||||
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES
|
CLANG_WARN_UNREACHABLE_CODE = YES
|
||||||
@@ -298,7 +298,7 @@ CODE_SIGNING_REQUIRED = NO
|
|||||||
|
|
||||||
|
|
||||||
// Current Project Version
|
// Current Project Version
|
||||||
//
|
//
|
||||||
// This setting defines the current version of the project. The value must be a integer
|
// This setting defines the current version of the project. The value must be a integer
|
||||||
// or floating point number, such as `57` or `365.8`.
|
// or floating point number, such as `57` or `365.8`.
|
||||||
|
|
||||||
@@ -307,9 +307,9 @@ CURRENT_PROJECT_VERSION = 1
|
|||||||
|
|
||||||
|
|
||||||
// Debug Information Format
|
// Debug Information Format
|
||||||
//
|
//
|
||||||
// The type of debug information to produce.
|
// The type of debug information to produce.
|
||||||
//
|
//
|
||||||
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
// * *DWARF:* Object files and linked products will use DWARF as the debug information
|
||||||
// format. [dwarf]
|
// format. [dwarf]
|
||||||
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
|
||||||
@@ -322,7 +322,7 @@ DEBUG_INFORMATION_FORMAT = dwarf
|
|||||||
|
|
||||||
|
|
||||||
// Defines Module
|
// Defines Module
|
||||||
//
|
//
|
||||||
// If enabled, the product will be treated as defining its own module. This enables
|
// If enabled, the product will be treated as defining its own module. This enables
|
||||||
// automatic production of LLVM module map files when appropriate, and allows the product
|
// automatic production of LLVM module map files when appropriate, and allows the product
|
||||||
// to be imported as a module.
|
// to be imported as a module.
|
||||||
@@ -332,7 +332,7 @@ DEFINES_MODULE = YES
|
|||||||
|
|
||||||
|
|
||||||
// Enable Strict Checking of objc_msgSend Calls
|
// Enable Strict Checking of objc_msgSend Calls
|
||||||
//
|
//
|
||||||
// Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer
|
// Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer
|
||||||
// type before being called.
|
// type before being called.
|
||||||
|
|
||||||
@@ -341,9 +341,9 @@ ENABLE_STRICT_OBJC_MSGSEND = YES
|
|||||||
|
|
||||||
|
|
||||||
// C Language Dialect
|
// C Language Dialect
|
||||||
//
|
//
|
||||||
// Choose a standard or non-standard C language dialect.
|
// Choose a standard or non-standard C language dialect.
|
||||||
//
|
//
|
||||||
// * *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are
|
// * *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are
|
||||||
// incompatible. [-ansi]
|
// incompatible. [-ansi]
|
||||||
// Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but
|
// Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but
|
||||||
@@ -365,7 +365,7 @@ GCC_C_LANGUAGE_STANDARD = gnu99
|
|||||||
|
|
||||||
|
|
||||||
// No Common Blocks
|
// No Common Blocks
|
||||||
//
|
//
|
||||||
// In C, allocate even uninitialized global variables in the data section of the object
|
// In C, allocate even uninitialized global variables in the data section of the object
|
||||||
// file, rather than generating them as common blocks. This has the effect that if the
|
// file, rather than generating them as common blocks. This has the effect that if the
|
||||||
// same variable is declared (without `extern`) in two different compilations, you will
|
// same variable is declared (without `extern`) in two different compilations, you will
|
||||||
@@ -376,7 +376,7 @@ GCC_NO_COMMON_BLOCKS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Implicit Conversion to 32 Bit Type
|
// Implicit Conversion to 32 Bit Type
|
||||||
//
|
//
|
||||||
// Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a
|
// Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a
|
||||||
// subset of the warnings provided by -Wconversion.
|
// subset of the warnings provided by -Wconversion.
|
||||||
|
|
||||||
@@ -385,7 +385,7 @@ GCC_WARN_64_TO_32_BIT_CONVERSION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Mismatched Return Type
|
// Mismatched Return Type
|
||||||
//
|
//
|
||||||
// Causes warnings to be emitted when a function with a defined return type (not `void`)
|
// Causes warnings to be emitted when a function with a defined return type (not `void`)
|
||||||
// contains a return statement without a return-value. Also emits a warning when a
|
// contains a return statement without a return-value. Also emits a warning when a
|
||||||
// function is defined without specifying a return type.
|
// function is defined without specifying a return type.
|
||||||
@@ -395,7 +395,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
|
|||||||
|
|
||||||
|
|
||||||
// Undeclared Selector
|
// Undeclared Selector
|
||||||
//
|
//
|
||||||
// Warn if a `@selector(...)` expression referring to an undeclared selector is found. A
|
// Warn if a `@selector(...)` expression referring to an undeclared selector is found. A
|
||||||
// selector is considered undeclared if no method with that name has been declared before
|
// selector is considered undeclared if no method with that name has been declared before
|
||||||
// the `@selector(...)` expression, either explicitly in an `@interface` or `@protocol`
|
// the `@selector(...)` expression, either explicitly in an `@interface` or `@protocol`
|
||||||
@@ -410,10 +410,10 @@ GCC_WARN_UNDECLARED_SELECTOR = YES
|
|||||||
|
|
||||||
|
|
||||||
// Uninitialized Variables
|
// Uninitialized Variables
|
||||||
//
|
//
|
||||||
// Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable
|
// Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable
|
||||||
// is used without prior initialization.
|
// is used without prior initialization.
|
||||||
//
|
//
|
||||||
// The compiler may not detect all cases where an automatic variable is initialized or
|
// The compiler may not detect all cases where an automatic variable is initialized or
|
||||||
// all usage patterns that may lead to use prior to initialization. You can toggle
|
// all usage patterns that may lead to use prior to initialization. You can toggle
|
||||||
// between the normal uninitialized value checking or the more aggressive (conservative)
|
// between the normal uninitialized value checking or the more aggressive (conservative)
|
||||||
@@ -424,7 +424,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
|
|||||||
|
|
||||||
|
|
||||||
// Unused Functions
|
// Unused Functions
|
||||||
//
|
//
|
||||||
// Warn whenever a static function is declared but not defined or a noninline static
|
// Warn whenever a static function is declared but not defined or a noninline static
|
||||||
// function is unused.
|
// function is unused.
|
||||||
|
|
||||||
@@ -433,7 +433,7 @@ GCC_WARN_UNUSED_FUNCTION = YES
|
|||||||
|
|
||||||
|
|
||||||
// Unused Labels
|
// Unused Labels
|
||||||
//
|
//
|
||||||
// Warn whenever a label is declared but not used.
|
// Warn whenever a label is declared but not used.
|
||||||
|
|
||||||
GCC_WARN_UNUSED_LABEL = YES
|
GCC_WARN_UNUSED_LABEL = YES
|
||||||
@@ -441,7 +441,7 @@ GCC_WARN_UNUSED_LABEL = YES
|
|||||||
|
|
||||||
|
|
||||||
// Unused Variables
|
// Unused Variables
|
||||||
//
|
//
|
||||||
// Warn whenever a local variable or nonconstant static variable is unused aside from its
|
// Warn whenever a local variable or nonconstant static variable is unused aside from its
|
||||||
// declaration.
|
// declaration.
|
||||||
|
|
||||||
@@ -453,7 +453,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0
|
|||||||
|
|
||||||
|
|
||||||
// macOS Deployment Target
|
// macOS Deployment Target
|
||||||
//
|
//
|
||||||
// Code will load on this and later versions of macOS. Framework APIs that are
|
// Code will load on this and later versions of macOS. Framework APIs that are
|
||||||
// unavailable in earlier versions will be weak-linked; your code should check for `null`
|
// unavailable in earlier versions will be weak-linked; your code should check for `null`
|
||||||
// function pointers or specific system versions before calling newer APIs.
|
// function pointers or specific system versions before calling newer APIs.
|
||||||
@@ -463,7 +463,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10
|
|||||||
|
|
||||||
|
|
||||||
// Supported Platforms
|
// Supported Platforms
|
||||||
//
|
//
|
||||||
// The list of supported platforms from which a base SDK can be used. This setting is
|
// The list of supported platforms from which a base SDK can be used. This setting is
|
||||||
// used if the product can be built for multiple platforms using different SDKs.
|
// used if the product can be built for multiple platforms using different SDKs.
|
||||||
|
|
||||||
@@ -476,15 +476,15 @@ SWIFT_COMPILATION_MODE = wholemodule
|
|||||||
|
|
||||||
|
|
||||||
// Swift Language Version
|
// Swift Language Version
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
SWIFT_VERSION = 5.0
|
SWIFT_VERSION = 5.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Targeted Device Family
|
// Targeted Device Family
|
||||||
//
|
//
|
||||||
// The build system uses the selected device to set the correct value for the
|
// The build system uses the selected device to set the correct value for the
|
||||||
// `UIDeviceFamily` key it adds to the target's `Info.plist` file. This also drives the
|
// `UIDeviceFamily` key it adds to the target's `Info.plist` file. This also drives the
|
||||||
// --target-device flag to actool, which determines the idioms selected during catalog
|
// --target-device flag to actool, which determines the idioms selected during catalog
|
||||||
@@ -499,19 +499,19 @@ TVOS_DEPLOYMENT_TARGET = 9.0
|
|||||||
|
|
||||||
|
|
||||||
// Versioning Name Prefix
|
// Versioning Name Prefix
|
||||||
//
|
//
|
||||||
// Used as a prefix for the name of the version info symbol in the generated versioning
|
// Used as a prefix for the name of the version info symbol in the generated versioning
|
||||||
// source file. If you prefix your exported symbols you will probably want to set this to
|
// source file. If you prefix your exported symbols you will probably want to set this to
|
||||||
// the same prefix.
|
// the same prefix.
|
||||||
|
|
||||||
VERSION_INFO_PREFIX =
|
VERSION_INFO_PREFIX =
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Versioning System
|
// Versioning System
|
||||||
//
|
//
|
||||||
// Selects the process used for version-stamping generated files.
|
// Selects the process used for version-stamping generated files.
|
||||||
//
|
//
|
||||||
// * *None:* Use no versioning system.
|
// * *None:* Use no versioning system.
|
||||||
// * *Apple Generic:* Use the current project version setting. [apple-generic]
|
// * *Apple Generic:* Use the current project version setting. [apple-generic]
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// Strip Debug Symbols During Copy
|
// Strip Debug Symbols During Copy
|
||||||
//
|
//
|
||||||
// Specifies whether binary files that are copied during the build, such as in a Copy
|
// Specifies whether binary files that are copied during the build, such as in a Copy
|
||||||
// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
|
// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
|
||||||
// It does not cause the linked product of a target to be stripped—use
|
// It does not cause the linked product of a target to be stripped—use
|
||||||
@@ -20,7 +20,7 @@ COPY_PHASE_STRIP = NO
|
|||||||
|
|
||||||
|
|
||||||
// Enable Foundation Assertions
|
// Enable Foundation Assertions
|
||||||
//
|
//
|
||||||
// Controls whether assertion logic provided by `NSAssert` is included in the
|
// Controls whether assertion logic provided by `NSAssert` is included in the
|
||||||
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
// preprocessed source code or is elided during preprocessing. Disabling assertions can
|
||||||
// improve code performance.
|
// improve code performance.
|
||||||
@@ -30,7 +30,7 @@ ENABLE_NS_ASSERTIONS = NO
|
|||||||
|
|
||||||
|
|
||||||
// Enable Testability
|
// Enable Testability
|
||||||
//
|
//
|
||||||
// When this setting is activated, the product will be built with options appropriate for
|
// When this setting is activated, the product will be built with options appropriate for
|
||||||
// running automated tests, such as making private interfaces accessible to the tests.
|
// running automated tests, such as making private interfaces accessible to the tests.
|
||||||
// This may result in tests running slower than they would without testability enabled.
|
// This may result in tests running slower than they would without testability enabled.
|
||||||
@@ -40,10 +40,10 @@ ENABLE_TESTABILITY = YES
|
|||||||
|
|
||||||
|
|
||||||
// Optimization Level
|
// Optimization Level
|
||||||
//
|
//
|
||||||
// Specifies the degree to which the generated code is optimized for speed and binary
|
// Specifies the degree to which the generated code is optimized for speed and binary
|
||||||
// size.
|
// size.
|
||||||
//
|
//
|
||||||
// * *None:* Do not optimize. [-O0]
|
// * *None:* Do not optimize. [-O0]
|
||||||
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
||||||
// make debugging produce the expected results. Statements are independent—if you stop
|
// make debugging produce the expected results. Statements are independent—if you stop
|
||||||
@@ -76,7 +76,7 @@ GCC_OPTIMIZATION_LEVEL = fast
|
|||||||
|
|
||||||
|
|
||||||
// Preprocessor Macros
|
// Preprocessor Macros
|
||||||
//
|
//
|
||||||
// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
|
// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
|
||||||
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1 CI=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1 CI=1
|
||||||
@@ -94,7 +94,7 @@ METAL_ENABLE_DEBUG_INFO = NO
|
|||||||
|
|
||||||
|
|
||||||
// Build Active Architecture Only
|
// Build Active Architecture Only
|
||||||
//
|
//
|
||||||
// If enabled, only the active architecture is built.
|
// If enabled, only the active architecture is built.
|
||||||
|
|
||||||
ONLY_ACTIVE_ARCH = YES
|
ONLY_ACTIVE_ARCH = YES
|
||||||
@@ -102,7 +102,7 @@ ONLY_ACTIVE_ARCH = YES
|
|||||||
|
|
||||||
|
|
||||||
// Validate Built Product
|
// Validate Built Product
|
||||||
//
|
//
|
||||||
// If enabled, perform validation checks on the product as part of the build process.
|
// If enabled, perform validation checks on the product as part of the build process.
|
||||||
|
|
||||||
VALIDATE_PRODUCT = YES
|
VALIDATE_PRODUCT = YES
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// Link-Time Optimization
|
// Link-Time Optimization
|
||||||
//
|
//
|
||||||
// Enabling this setting allows optimization across file boundaries during linking.
|
// Enabling this setting allows optimization across file boundaries during linking.
|
||||||
//
|
//
|
||||||
// * *No:* Disabled. Do not use link-time optimization.
|
// * *No:* Disabled. Do not use link-time optimization.
|
||||||
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
||||||
// optimization of binaries, combining all executable code into a single unit and running
|
// optimization of binaries, combining all executable code into a single unit and running
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
|
|
||||||
|
|
||||||
// Optimization Level
|
// Optimization Level
|
||||||
//
|
//
|
||||||
// Specifies the degree to which the generated code is optimized for speed and binary
|
// Specifies the degree to which the generated code is optimized for speed and binary
|
||||||
// size.
|
// size.
|
||||||
//
|
//
|
||||||
// * *None:* Do not optimize. [-O0]
|
// * *None:* Do not optimize. [-O0]
|
||||||
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
||||||
// make debugging produce the expected results. Statements are independent—if you stop
|
// make debugging produce the expected results. Statements are independent—if you stop
|
||||||
@@ -45,7 +45,7 @@ GCC_OPTIMIZATION_LEVEL = fast
|
|||||||
|
|
||||||
|
|
||||||
// Unroll Loops
|
// Unroll Loops
|
||||||
//
|
//
|
||||||
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
||||||
// number of branches executed.
|
// number of branches executed.
|
||||||
|
|
||||||
@@ -54,9 +54,9 @@ GCC_UNROLL_LOOPS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Link-Time Optimization
|
// Link-Time Optimization
|
||||||
//
|
//
|
||||||
// Enabling this setting allows optimization across file boundaries during linking.
|
// Enabling this setting allows optimization across file boundaries during linking.
|
||||||
//
|
//
|
||||||
// * *No:* Disabled. Do not use link-time optimization.
|
// * *No:* Disabled. Do not use link-time optimization.
|
||||||
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
||||||
// optimization of binaries, combining all executable code into a single unit and running
|
// optimization of binaries, combining all executable code into a single unit and running
|
||||||
@@ -75,7 +75,7 @@ METAL_ENABLE_DEBUG_INFO = NO
|
|||||||
|
|
||||||
|
|
||||||
// Disable Safety Checks
|
// Disable Safety Checks
|
||||||
//
|
//
|
||||||
// Disable runtime safety checks when optimizing.
|
// Disable runtime safety checks when optimizing.
|
||||||
|
|
||||||
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
||||||
@@ -83,7 +83,7 @@ SWIFT_DISABLE_SAFETY_CHECKS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// Always Embed Swift Standard Libraries
|
// Always Embed Swift Standard Libraries
|
||||||
//
|
//
|
||||||
// Always embed the Swift standard libraries in the target's products, even if the target
|
// Always embed the Swift standard libraries in the target's products, even if the target
|
||||||
// does not contain any Swift code. For example, this should be enabled if the target is
|
// does not contain any Swift code. For example, this should be enabled if the target is
|
||||||
// embedding other products which contain Swift, or if it is a test target which does not
|
// embedding other products which contain Swift, or if it is a test target which does not
|
||||||
@@ -19,7 +19,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
|||||||
|
|
||||||
|
|
||||||
// Header Search Paths
|
// Header Search Paths
|
||||||
//
|
//
|
||||||
// This is a list of paths to folders to be searched by the compiler for included or
|
// This is a list of paths to folders to be searched by the compiler for included or
|
||||||
// imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are
|
// imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are
|
||||||
// delimited by whitespace, so any paths with spaces in them need to be properly quoted.
|
// delimited by whitespace, so any paths with spaces in them need to be properly quoted.
|
||||||
@@ -29,7 +29,7 @@ HEADER_SEARCH_PATHS = $(inherited) includes/**
|
|||||||
|
|
||||||
|
|
||||||
// Info.plist File
|
// Info.plist File
|
||||||
//
|
//
|
||||||
// The project-relative path to the property list file that contains the `Info.plist`
|
// The project-relative path to the property list file that contains the `Info.plist`
|
||||||
// information used by bundles. For details on information property list files, see
|
// information used by bundles. For details on information property list files, see
|
||||||
// [Information Property List
|
// [Information Property List
|
||||||
@@ -42,7 +42,7 @@ INFOPLIST_FILE = Tests/${TARGET_NAME}/Info.plist
|
|||||||
|
|
||||||
|
|
||||||
// Runpath Search Paths
|
// Runpath Search Paths
|
||||||
//
|
//
|
||||||
// This is a list of paths to be added to the `runpath` search path list for the image
|
// This is a list of paths to be added to the `runpath` search path list for the image
|
||||||
// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
|
// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
|
||||||
// load path begins with `@rpath/`. See [Dynamic Library Programming
|
// load path begins with `@rpath/`. See [Dynamic Library Programming
|
||||||
@@ -53,7 +53,7 @@ LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/
|
|||||||
|
|
||||||
|
|
||||||
// Product Bundle Identifier
|
// Product Bundle Identifier
|
||||||
//
|
//
|
||||||
// A string that uniquely identifies the bundle. The string should be in reverse DNS
|
// A string that uniquely identifies the bundle. The string should be in reverse DNS
|
||||||
// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
|
// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
|
||||||
// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
|
// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
|
||||||
@@ -64,8 +64,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.${PRODUCT_NAME:rfc1034identifier}
|
|||||||
|
|
||||||
|
|
||||||
// Objective-C Bridging Header
|
// Objective-C Bridging Header
|
||||||
//
|
//
|
||||||
// Path to the header defining the Objective-C interfaces to be exposed in Swift.
|
// Path to the header defining the Objective-C interfaces to be exposed in Swift.
|
||||||
|
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = Tests/${TARGET_NAME}/Bridging.h
|
SWIFT_OBJC_BRIDGING_HEADER = Tests/${TARGET_NAME}/Bridging.h
|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
|
|
||||||
|
|
||||||
// Optimization Level
|
// Optimization Level
|
||||||
//
|
//
|
||||||
// Specifies the degree to which the generated code is optimized for speed and binary
|
// Specifies the degree to which the generated code is optimized for speed and binary
|
||||||
// size.
|
// size.
|
||||||
//
|
//
|
||||||
// * *None:* Do not optimize. [-O0]
|
// * *None:* Do not optimize. [-O0]
|
||||||
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
// With this setting, the compiler's goal is to reduce the cost of compilation and to
|
||||||
// make debugging produce the expected results. Statements are independent—if you stop
|
// make debugging produce the expected results. Statements are independent—if you stop
|
||||||
@@ -45,7 +45,7 @@ GCC_OPTIMIZATION_LEVEL = fast
|
|||||||
|
|
||||||
|
|
||||||
// Unroll Loops
|
// Unroll Loops
|
||||||
//
|
//
|
||||||
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
|
||||||
// number of branches executed.
|
// number of branches executed.
|
||||||
|
|
||||||
@@ -54,9 +54,9 @@ GCC_UNROLL_LOOPS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Link-Time Optimization
|
// Link-Time Optimization
|
||||||
//
|
//
|
||||||
// Enabling this setting allows optimization across file boundaries during linking.
|
// Enabling this setting allows optimization across file boundaries during linking.
|
||||||
//
|
//
|
||||||
// * *No:* Disabled. Do not use link-time optimization.
|
// * *No:* Disabled. Do not use link-time optimization.
|
||||||
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
|
||||||
// optimization of binaries, combining all executable code into a single unit and running
|
// optimization of binaries, combining all executable code into a single unit and running
|
||||||
@@ -75,7 +75,7 @@ METAL_ENABLE_DEBUG_INFO = NO
|
|||||||
|
|
||||||
|
|
||||||
// Disable Safety Checks
|
// Disable Safety Checks
|
||||||
//
|
//
|
||||||
// Disable runtime safety checks when optimizing.
|
// Disable runtime safety checks when optimizing.
|
||||||
|
|
||||||
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
SWIFT_DISABLE_SAFETY_CHECKS = YES
|
||||||
@@ -83,7 +83,7 @@ SWIFT_DISABLE_SAFETY_CHECKS = YES
|
|||||||
|
|
||||||
|
|
||||||
// Swift Optimization Level
|
// Swift Optimization Level
|
||||||
//
|
//
|
||||||
// * *None:* Compile without any optimization. [-Onone]
|
// * *None:* Compile without any optimization. [-Onone]
|
||||||
// * *Optimize for Speed:* [-O]
|
// * *Optimize for Speed:* [-O]
|
||||||
// * *Optimize for Size:* [-Osize]
|
// * *Optimize for Size:* [-Osize]
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ set -ex
|
|||||||
|
|
||||||
echo "Build frameworks in directory $(pwd)"
|
echo "Build frameworks in directory $(pwd)"
|
||||||
|
|
||||||
carthage build --no-skip-current --configuration "Release" --platform all
|
carthage build --no-skip-current --configuration "Release" --platform all
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
swiftformat --hexliteralcase lowercase --hexgrouping none --ranges nospace --wrapelements beforefirst --self remove $1
|
swiftformat --hexliteralcase lowercase --hexgrouping none --ranges nospace --wrapelements beforefirst --self remove $1
|
||||||
|
|||||||
Reference in New Issue
Block a user