我试图在我的XCode项目中使用以下库
https://github.com/czechboy0/Socks
它说使用Swift包管理器来使用库但是我不知道我应该把这行放在哪里???
.Package(url: "https://github.com/czechboy0/Socks.git", majorVersion: 0, minor: 10)
Run Code Online (Sandbox Code Playgroud)
我正在使用XCode 8 beta运行mac OS 10.12 Sierra.
我相信Swift Package Manager应该配备Swift 3,而Swift 3应该是XCode 8 beta的一部分,但我对如何在swift中实际使用包管理器感到茫然.任何帮助将不胜感激.我对iOS开发很新,这个问题令人沮丧......
如果您需要我提供任何其他信息,请询问:)
我正在尝试从我的iOS应用程序到我的后端服务器(Node.js)建立一个简单的套接字连接(无HTTP).服务器证书已使用我自己创建的自定义CA创建和签名.我相信,为了让iOS信任我的服务器,我必须以某种方式将这个自定义CA证书添加到可信证书列表中,这些证书用于确定Java/Android中的TrustStore如何工作的信任类型.
我尝试使用下面的代码进行连接,但没有错误,但write()函数似乎没有成功.
主视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let api: APIClient = APIClient()
api.initialiseSSL("10.13.37.200", port: 8080)
api.write("Hello")
api.deinitialise()
print("Done")
}
Run Code Online (Sandbox Code Playgroud)
APIClient类
class APIClient: NSObject, NSStreamDelegate {
var readStream: Unmanaged<CFReadStreamRef>?
var writeStream: Unmanaged<CFWriteStreamRef>?
var inputStream: NSInputStream?
var outputStream: NSOutputStream?
func initialiseSSL(host: String, port: UInt32) {
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &readStream, &writeStream)
inputStream = readStream!.takeRetainedValue()
outputStream = writeStream!.takeRetainedValue()
inputStream?.delegate = self
outputStream?.delegate = self
inputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
outputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode) …Run Code Online (Sandbox Code Playgroud) 使用我的后台脚本background.js,我需要在注入另一个文件inject.js作为内容脚本之前注入一个动态变量作为内容脚本.Inject.js需要访问此变量并在页面上的任何脚本运行之前运行它的代码.我无法从inject.js内容脚本访问动态变量.
的manifest.json
{
"name": "Shape Shifter",
"version": "1.0",
"description": "Anti browser fingerprinting web extension. Generates randomised values for HTTP request headers, javascript property values and javascript method return types.",
"manifest_version": 2,
"icons": {
"32": "icons/person-32.png",
"48": "icons/person-48.png"
},
"background": {
"persistent": true,
"scripts": ["js/ua.js", "js/words.js", "js/lib/seedrandom.min.js", "js/random.js", "js/background.js"]
},
"browser_action": {
"default_title": "Shape Shifter",
"default_icon": "icons/person-32.png",
"default_popup": "html/popup.html"
},
"content_scripts": [
{
"run_at": "document_end",
"matches": ["<all_urls>"],
"js": ["js/inject.js"]
}
],
"permissions": [
"webRequest",
"webRequestBlocking",
"webNavigation",
"tabs",
"activeTab",
"storage",
"<all_urls>"
], …Run Code Online (Sandbox Code Playgroud)