私のアプリケーションのアーカイブを作成しようとしていますが、iOSデバイス用のビルド時にセグメント違反が発生しています。私はシミュレータのためにビルドするときにこの問題に遭遇しません。これまでのところ、私がしている:私のプロジェクト セグメンテーションフォールト11、Xcode 8.2.1、Swift 3
- は私の派生データフォルダーを削除したインストール済み
- のMac OSシエラ
- シエラ にアップデートした後、追加のXcodeツールをインストール
- Xcode /コンピュータを複数回再起動
エラー通常、このように見えますか:スタックダンプで
Call parameter type does not match function signature!
0 swift 0x000000010f4ab3ad PrintStackTraceSignalHandler(void*) + 45
1 swift 0x000000010f4aab56 SignalHandler(int) + 790
2 libsystem_platform.dylib 0x00007fffb1b28bba _sigtramp + 26
3 libsystem_platform.dylib 0x000000011033a000 _sigtramp + 1585517664
4 swift 0x000000010f3038e8 llvm::TypeFinder::incorporateValue(llvm::Value const*) + 296
5 swift 0x000000010f3032fa llvm::TypeFinder::run(llvm::Module const&, bool) + 682
6 swift 0x000000010f1c827e (anonymous namespace)::TypePrinting::incorporateTypes(llvm::Module const&) + 30
7 swift 0x000000010f1c9bdb printAsOperandImpl(llvm::Value const&, llvm::raw_ostream&, bool, llvm::ModuleSlotTracker&) + 171
8 swift 0x000000010f30c633 (anonymous namespace)::VerifierSupport::Write(llvm::Value const*) + 67
9 swift 0x000000010f31616e (anonymous namespace)::Verifier::VerifyCallSite(llvm::CallSite) + 590
10 swift 0x000000010f318ef3 (anonymous namespace)::Verifier::visitCallInst(llvm::CallInst&) + 35
11 swift 0x000000010f329ac1 (anonymous namespace)::VerifierLegacyPass::runOnFunction(llvm::Function&) + 1649
12 swift 0x000000010f2e089d llvm::FPPassManager::runOnFunction(llvm::Function&) + 973
13 swift 0x000000010f2e02ab llvm::FPPassManager::runOnModule(llvm::Module&) + 43
14 swift 0x000000010f2e977a llvm::legacy::PassManager::run(llvm::Module&) + 1514
15 swift 0x000000010c605901 performLLVM(swift::IRGenOptions&, swift::DiagnosticEngine&, llvm::sys::SmartMutex<false>*, llvm::GlobalVariable*, llvm::Module*, llvm::TargetMachine*, llvm::StringRef) + 5921
16 swift 0x000000010c6038c1 performIRGeneration(swift::IRGenOptions&, swift::ModuleDecl*, swift::SILModule*, llvm::StringRef, llvm::LLVMContext&, swift::SourceFile*, unsigned int) + 2625
17 swift 0x000000010c4b8f31 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) + 23777
18 swift 0x000000010c4b12b3 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 17859
19 swift 0x000000010c46d5cf main + 8239
20 libdyld.dylib 0x00007fffb191b255 start + 1
、このラインがあります:
2. Running pass 'Module Verifier' on function '@_TZFC12MyAppName23MyClassNameg13nextImagePathV10Foundation3URL'
は、私は、これはURL
を返す静的計算された変数nextImagePath
を、コンパイル時にエラーがスローされていることを示し考えますファイルパスに移動します。内部的には、これは他のいくつかの計算された変数とメソッドnextFilePathForDirectoryAtURL
に依存しています。要するに、コードは次のようになります。
/*
* This is the offending computed variable.
*/
static var nextImagePath: URL {
return nextFilePathForDirectoryAtURL(imageDirectory, withExtension: "jpg");
}
/*
* The method called by above variable. It looks through all the
* files in a directory, finds the one with the highest index,
* and returns a new path by incrementing the highest index by 1.
*/
fileprivate static func nextFilePathForDirectoryAtURL(_ url: URL, withExtension ext: String) -> URL {
guard let files = try? FileManager.default.contentsOfDirectory(
at: url,
includingPropertiesForKeys: nil,
options: .skipsHiddenFiles) else {
fatalError("Could not create next file path for directory at url: \(url)");
}
var maxFileNumber = 0;
for file in files {
let fileName = file.deletingPathExtension().lastPathComponent;
guard
let fileNumber = Int(fileName),
file.pathExtension.lowercased() == ext.lowercased()
else { continue }
maxFileNumber = max(maxFileNumber, fileNumber);
}
return url.appendingPathComponent("\(maxFileNumber + 1).\(ext)");
}
/*
* Some supporting computed variables for constructing directories.
*/
fileprivate static var libraryDirectory: URL {
guard let url = try? FileManager.default.url(
for: .libraryDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true) else {
fatalError("Could not create library directory url.");
}
return url;
}
fileprivate static var documentSetDirectory: URL {
let directory = libraryDirectory.appendingPathComponent("MemberDocumentSets");
try? FileManager.default.createDirectory(
at: directory,
withIntermediateDirectories: true,
attributes: nil);
return directory;
}
fileprivate static var imageDirectory: URL {
let directory = documentSetDirectory.appendingPathComponent("Images");
try? FileManager.default.createDirectory(
at: directory,
withIntermediateDirectories: true,
attributes: nil);
return directory;
}
このエラーが発生している理由は、私は本当にわからない、またはシミュレータ用にビルドするときに、なぜそれが起こることはありません。私は約5時間の答えを見つけようとしています。運がないので、私はポストを考えました。どんな助けでも大歓迎です。ありがとう!