robbiehanson / XMPPFramework

An XMPP Framework in Objective-C for Mac and iOS
Other
5.91k stars 2.09k forks source link

Unable to compile in Xcode 8 GM with iOS 10 #800

Open aliwt opened 7 years ago

aliwt commented 7 years ago

I tried to compile XMPPFramework (3.6.6) in Xcode 8 GM but I got error

Redefinition of module 'dnssd'

x3mall1986 commented 7 years ago

You need install 3.7.0 ver

pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master'

aliwt commented 7 years ago

@x3mall1986 Thanks man, but now i am getting error for KissXML

#import <libxml/tree.h> include of non-modular header inside framework module kissXML

and

NSXMLElement+XEP_0335.h

could not build module KissXML

which i think is related to previous issue

x3mall1986 commented 7 years ago

Which ver of the pod you use? I tested with ver 1.0.1 and everything worked fine. You develop on swift or obj-c?

aceisScope commented 7 years ago

Could it be some issue with not-using Cocoa Pods? Say If I added XMPPFramework via git submodule (also had run submodule update recursively), the modules defined in a .podfile wouldn't be automatically added into the project.

jakjothi commented 7 years ago

I am getting Redefinition of module 'dnssd' error

https://www.dropbox.com/s/we3l4bynq0tqmfv/Screenshot%202016-09-14%2014.54.25.png?dl=0 My pod info: Pod verison: 1.0.1 Xcode: 8 Language: Objective C

pod 'XMPPFramework'

aceisScope commented 7 years ago

@jakjothi As @x3mall1986 said with the newest version of XMPPFramework the redefinition of dnssd is already removed. Version 3.7.0 is the current one, rather than 1.0.1.

jakjothi commented 7 years ago

@aceisScope

ok, if i change my pod spec like

pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master'

now my xmppframework version 3.7.0

then i am getting #import "CocoaAsyncSocket/GCDAsyncSocket.h" file not found

x3mall1986 commented 7 years ago

With update xcode to ver. 8.0 , i have the same problem. After I installed CocoaPods 1.1.0.rc.2 and reinstall my pods, the error *** file not found was gone

zhuxiaohan commented 7 years ago

i update xmppframework to 3.7.0 , i have another problem. "Module kissXML not found", how can i fix this??

AndriiK commented 7 years ago

I have found a temporary workaround to compile XMPPFramework in Xcode8:

  1. Install XMPPFramework v 3.7.0
  2. Replace @import KissXML; with #import "KissXML.h" @import CocoaAsyncSocket; with #import "GCDAsyncSocket.h in XMPPFramework header files.
huige1990 commented 7 years ago

@AndriiK worked fine

x3mall1986 commented 7 years ago

How about use_frameworks! parameter in the podfile? it is uncommented?

2016-09-14 15 55 19
AndriiK commented 7 years ago

Project is compiled successfully with uncommented use_frameworks! without any changes in XMPPFramework files.

ryanluce commented 7 years ago

I'm getting KissXML.h file not found in XMPPASLAuthentication.h after trying this quick fix.

Edit, installed cocoapods 1.1.0RC as above and it appears to be working.

zhenshengLinGit commented 7 years ago

@x3mall1986 when i change my pod spec like this:

pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master'

and then pod install, but failed,it tell ' - KissXML (~> 5.1.2) required by XMPPFramework/Core (3.7.0) None of your spec sources contain a spec satisfying the dependency: KissXML (~> 5.1.2). '

How can I solve this problem?

My pod info: Pod verison: 1.0.1 Xcode: 8 Language: Objective C

x3mall1986 commented 7 years ago

Try 1.1.0 rc2 cocoapods ver

irakliitavadze commented 7 years ago

I had the same problem with dnssd. After update CocoaPods 1.1.0.rc.2 and XMPPFramework 3.7.0 I have got full stack of others problems. Any ideas how to resolve this problems? screen shot 2016-09-22 at 18 49 12

jakjothi commented 7 years ago

@IrakliiTavadze

Before i have same issue after upgrade cocoapods rc2 it's working fine my pod spec

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ’10.0’
use_frameworks!

def common_pods
    pod 'Alamofire', ‘~> 4.0’
    pod ‘PromiseKit’,’~> 4.0’
    pod 'JSQMessagesViewController'
    pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master'
    pod 'Firebase'
    pod 'Firebase/Core'
    pod 'Firebase/Messaging'
    pod 'Firebase/Database'
    pod 'Firebase/Auth'
    pod 'Fabric'
    pod 'Crashlytics'
end

target 'TestSwift3' do
    platform :ios, ’10.0’
    common_pods
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
            config.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
        end
    end
end
irakliitavadze commented 7 years ago

pod --version1.1.0.rc.2 Pod install result:

Analyzing dependencies
Pre-downloading: `XMPPFramework` from `https://github.com/robbiehanson/XMPPFramework.git`, branch `master`
Downloading dependencies
Installing CocoaAsyncSocket (7.5.0)
Installing CocoaLumberjack (2.4.0)
Installing KissXML (5.1.2)
Installing XMPPFramework (3.7.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `APP_NAME.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 4 total
pods installed.

@jakjothi you are lucky, I also made pod deintegrate and pod clean, without result.

helloYukino commented 7 years ago

pod --version1.1.0.rc.2

why pod 'XMPPFramework' is so fast , and " pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master' " show me:

[!] Error installing XMPPFramework [!] /usr/bin/git clone https://github.com/robbiehanson/XMPPFramework.git /var/folders/s5/d2ccf62162s9m6j8jmn4ggwc0000gn/T/d20161009-5006-ma2dsh --template=

Cloning into '/var/folders/s5/d2ccf62162s9m6j8jmn4ggwc0000gn/T/d20161009-5006-ma2dsh'... error: RPC failed; curl 56 SSLRead() return error -9806 fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed

--------------------------------------------------------------------------10.10 edit create a new project ,it's working fine.

davidloveengles commented 7 years ago

如果出现错误: [module "KissXML" not found] ,在pod-file文件使用 #use_frameworks! 可以解决这个问题。 http://www.jianshu.com/p/6795ce156525

helloYukino commented 7 years ago

手滑,上面那个能用

aceisScope commented 7 years ago

Please let's focus on an English conversation here so more people can benefit from the information that is shared.

popwarfour commented 7 years ago

K, finally solved it for myself at least for these conditions..

1) Install latest via pods

use_frameworks!

target 'MY TARGET NAME' do
    pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master'
end

3) 'pod install' via GM 0.39.0 version. I didn't use the RC 1.1 version for Obj-c build

4) Open workspace now

5) Find and replace all "@import KissXML" with "#import "KissXML.h". You will have to unlock source files.

6) In your projects target -> Build Settings -> Allow Non-modular Includes in Framework Modules = YES

works for me..

codeliujun commented 7 years ago

@zhenshengLinGit I Hava the same problem, how to solve

d4r1091 commented 7 years ago

Hi guys! Sorry if I'm using this thread. I'm trying to implement XMPPFramework copying classes inside the project. Now I'm getting "module not found KissXML. Steps I tried to follow:

Any idea? Thanks in advance

simpletony commented 7 years ago

@ @ @d4r1091 use_frameworks!

codeliujun commented 7 years ago

I roseoled by update CocoPods,

在 2016年11月3日,00:42,Dario Carlomagno notifications@github.com 写道:

Hi guys! Sorry if I'm using this thread. I'm trying to implement XMPPFramework copying classes inside the project. Now I'm getting "module not found KissXML. Steps I tried to follow:

Downloaded KissXML inside the project too without any solution. Replaced HEADER SEARCH PATH too Replaced KissXML with DDXML without no success Any idea? Thanks in advance

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/robbiehanson/XMPPFramework/issues/800#issuecomment-257923209, or mute the thread https://github.com/notifications/unsubscribe-auth/AMXCaRdsig3RC0p6gzt-45d_fUbYVXaOks5q6L2JgaJpZM4J4UxY.

YLightC commented 7 years ago

@x3mall1986 if i use 1.1.0.rc.2 of cocoa pods, when i do "pod install", will get error: " [!] Error installing XMPPFramework [!] /usr/bin/git clone https://github.com/robbiehanson/XMPPFramework.git /var/folders/6b/glbc2rg94bzgt1bgyhls6bw00000gn/T/d20161128-14297-n4lo7g --template=

Cloning into '/var/folders/6b/glbc2rg94bzgt1bgyhls6bw00000gn/T/d20161128-14297-n4lo7g'... error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed "

holykou commented 7 years ago

Hey, I just upgraded my XCode to 8.3.1. and I am unable to compile my code. I get the following errors: screen shot 2017-04-11 at 2 54 13 pm Here's my Podfile code:

Disable CocoaPods deterministic UUIDs as Pods are not checked in

ENV["COCOAPODS_DISABLE_DETERMINISTIC_UUIDS"] = "true"

Disable Bitcode for all targets http://stackoverflow.com/a/32685434/805882

post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'NO' end end end

post_install do |installer| Dir['Pods/*/*/.h'].each { |file| search_text = %q["sqlite3.h"] replace_text = '<SQLCipher/sqlite3.h>'

oldFile = File.read(file) if oldFile.include? search_text puts "#{file} includes #{search_text}"

File.chmod(0604, file) # rw----r-- newFile = oldFile.gsub(/#{search_text}/, replace_text) File.open(file, "w") { |file| file << newFile } end } end

platform :ios, "8.0"

use_frameworks! inhibit_all_warnings!

source 'https://github.com/CocoaPods/Specs.git'

target 'SNMessagingApp' do pod 'Instabug' pod 'GoogleMaps' pod 'AFNetworking', '~> 3.1' pod "Appirater", '~> 2.0' pod 'OpenInChrome', '~> 0.0' pod 'MWFeedParser', '~> 1.0' pod "CocoaLumberjack", '~> 2.0' pod "HockeySDK-Source", '~> 3.7' pod 'MBProgressHUD', '~> 0.9' pod "SSKeychain", '~> 1.2'

pod 'gtm-oauth2', '~> 0.1.0' # Trunk is outdated, using local podspec

pod 'YapDatabase/SQLCipher', '~> 2.9' pod 'Mantle', '~> 2.0' pod 'Navajo', '~> 0.0' pod 'BBlock', '~> 1.2' pod 'JVFloatLabeledTextField', '~> 1.0' pod 'TTTAttributedLabel', '~> 1.10' pod 'VTAcknowledgementsViewController', '~> 0.15' pod 'PureLayout', '~> 3.0' pod 'BButton', '~> 4.0' pod 'uservoice-iphone-sdk', '~> 3.2' pod 'TUSafariActivity', '~> 1.0' pod 'ARChromeActivity', '~> 1.0' pod 'CocoaAsyncSocket', '~> 7.4' pod 'JTSImageViewController', '~> 1.4' pod 'KVOController', '~> 1.0'

Reachability only needed for YapActionItems

pod 'Reachability', '~> 3' pod 'XLForm', '~> 3.1' pod 'ParkedTextField', '~> 0.2'

pod 'RNGridMenu' pod 'IQAudioRecorderController' pod 'FFGlobalAlertController'

Local Podspecs

pod 'gtm-http-fetcher', :podspec => 'Podspecs/gtm-http-fetcher.podspec' pod 'gtm-oauth2', :podspec => 'Podspecs/gtm-oauth2.podspec'

pod 'SQLCipher/fts', :podspec => 'Podspecs/SQLCipher.podspec.json'

Submodules

pod 'ChatSecure-Push-iOS', :path => 'Submodules/ChatSecure-Push-iOS/ChatSecure-Push-iOS.podspec' pod 'ProxyKit/Client', :path => 'Submodules/ProxyKit/ProxyKit.podspec' pod 'OTRKit', :path => 'Submodules/OTRKit/OTRKit.podspec' pod 'CPAProxy', :path => 'Submodules/CPAProxy/CPAProxy.podspec' pod 'XMPPFramework', :path => 'Submodules/XMPPFramework/XMPPFramework.podspec' pod 'IOCipher/GCDWebServer', :path => 'Submodules/IOCipher/IOCipher.podspec'

platform :ios, '8.1' end

Please help?! Need to get this to run ASAP... I am aware that there are far too many pods installed in the project, precisely why I cannot update them. I get many more error once I update the pod. None of the above solutions work for me. Any direction will be much appreciated!

chrisballinger commented 7 years ago

@holykou I hope you are aware of the GPL license of ChatSecure and that closed source commercial derivatives are not supported at this time.

holykou commented 7 years ago

@chrisballinger, ChatSecure is only for reference, not using it as a product in our app. :)

Jimmygio commented 7 years ago

@holykou I meet the same error messages, this is my workaround

  1. Manually Back up the XMPP framework files you used in project
  2. Edit cocoapod Podfile to remove "pod 'XMPPFramework'"
  3. In terminal, enter "pod install" to remove XMPPFramework
  4. Manually join the XMPP framework files you back up in step 1 to project
  5. Join 'CocoaLumberjack' and 'GCDAsyncSocket' to your project(XMPP framework need them)
  6. Remember to check close bit code again
  7. Fix compiler error by replace <xxxxx/xxxxx.h> to "xxxx.h" Then I compiler project successfully in Xcode 8.3.1, maybe you can try it!
shebinkoshy commented 6 years ago

After some work through, I found that XMPPFramework podspec for version 3.7.0 will not work for objective C project.

Tested in Xcode version: 8.3.3 , MacOS version: 10.12.1

And found a solution for that,

  1. Download podspec from drive.google.com/file/d/1xkQUjl3Qq-Z8p1yzah0gMssd4PWvz4vN/view
  2. Paste XMPPFramework.podspec in your project path (the path which has *.xcodeproj file)
  3. Change your podfile as below (‘StackSecPo’ text should be change to your target name)
target 'StackSecPo' do   
use_frameworks!

  pod 'XMPPFramework', :path => 'XMPPFramework.podspec'

  target 'StackSecPoTests' do

    inherit! :search_paths   
  end

  target 'StackSecPoUITests' do

  inherit! :search_paths   
  end

end
  1. run 'pod install' in terminal

if you face 'Module 'CocoaAsyncSocket' not found' compile time error,

Add 'CocoaAsyncSocket.framework' in your project target's Linked Frameworks and Libraries.

JaspreetiOSDev commented 4 years ago

Getting below issue: - clang: error: no such file or directory: 'KissXML' Command Ld failed with a nonzero exit code