質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

5790閲覧

Xcode8.0によるframework開発でのエラー: no suitable image found.

beruta012

総合スコア10

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/09/24 20:52

###概要
最近iOSでのフレームワーク開発を始めました。
構成として自作フレームワークの中にライブラリ2種を持たせるようにしています。
また、ライブラリの導入にはCarthageを利用しています。
Xcode7のときは正常に動作していました。

フレームワーク作成のタイミングでは特にエラーが出ていません。
作成したフレームワークを読み込んだアプリプロジェクトで実行した際にエラーが発生します。

シミュレータでは問題なくビルド及び実行ができています。
実機ではビルドは成功するのですが実行した直後にアプリが落ちてしまいます。

原因など心当たりある方教えていただけると助かります。

###環境
Xcode 8.0
Swift 3
iOS 9.3
Carthage 0.17.2
Deployment Target 9.0

フレームワーク生成時のスクリプト
https://gist.github.com/cromandini/1a9c4aeab27ca84f5d79#file-universal-framework-sh

###発生しているエラー

dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON Referenced from: /private/var/containers/Bundle/Application/2863EB93-858E-4616-B7DF-0A6CEC90FF92/SampleApplication.app/Frameworks/SampleFramework.framework/SampleFramework Reason: no suitable image found. Did find: /private/var/containers/Bundle/Application/2863EB93-858E-4616-B7DF-0A6CEC90FF92/SampleApplication.app/Frameworks/SampleFramework.framework/Frameworks/SwiftyJSON.framework/SwiftyJSON: mmap() error 1 at address=0x1008C4000, size=0x00030000 segment=__TEXT in Segment::map() mapping /private/var/containers/Bundle/Application/2863EB93-858E-4616-B7DF-0A6CEC90FF92/SampleApplication.app/Frameworks/SampleFramework.framework/Frameworks/SwiftyJSON.framework/SwiftyJSON

###ソースコード
SampleFramework

import UIKit import Starscream import SwiftyJSON public class TestObject: NSObject { var websocket: WebSocket var json: JSON public init(string: String) { self.websocket = WebSocket(url: URL(string: "ws://localhost")!) self.json = JSON(data: Data()) print("TestObject: \(string)") } }

SampleAppフォルダ構成

import UIKit import SampleFramework class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. _ = TestObject(string: "initialize") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

###試したこと

  • Embedded Binariesへの追加
  • bitcodeの対応(BITCODE_GENERATION_MODEの追加)
  • Build Active Architecture OnlyをNOに変更
  • Carthageを使わない
  • ⌘+Shift+K
  • Derived Dataの削除

...などなど

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

フレームワークプロジェクトのほうでCodeSigningをAutomaticallyに設定することで解決しました。
bitcodeの時も同じようなエラーだったのでずっとBuildSettingsを睨んでいました…。

投稿2016/09/27 14:28

beruta012

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

実機でダメだということだと、証明書、プロビジョニングファイル関連ではないでしょうか。
バージョン8はなんかいろいろやってくれちゃってるようです。

http://blog.misubo.com/article/106057305.html
http://qiita.com/yusuke_tashiro/items/0a7c75b24f0a5826069f

投稿2016/09/27 09:56

fromageblanc

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beruta012

2016/09/27 14:24

fromageblancさん 回答ありがとうございます。 昨日解決いたしまして、おっしゃる通り証明書周りの問題でした。 フレームワークプロジェクトのほうでCodeSigningをAutomaticallyに設定したら無事動かすことができました。 Xcode7.3.1のときはNoneを設定しており、それで運用出来ていましたのですっかり嵌ってしまいました…。 Xcode8で証明書の機能が変わったようで注意が必要ですね…情報感謝いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問