why kotlin multiplatform don't execute and export iOS framework?
I started develop kotlin multiplatform and I developed a simple lib for test. I can exported .jar
file for android but I can't export .framework
file for iOS.
I reviewed other project but I didn't find my issue.
my Gradle
script for lib is:
apply plugin: 'kotlin-multiplatform'
kotlin {
targets {
final def iOSTarget =
System.getenv('SDK_NAME')?.startsWith("iphoneos")
? presets.iosArm64 : presets.iosX64
fromPreset(iOSTarget, 'iOS') {
compilations.main.outputKinds('FRAMEWORK')
}
fromPreset(presets.jvm, 'android')
}
sourceSets {
core.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
}
android.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib'
}
}
kotlin kotlin-native kotlin-multiplatform
add a comment |
I started develop kotlin multiplatform and I developed a simple lib for test. I can exported .jar
file for android but I can't export .framework
file for iOS.
I reviewed other project but I didn't find my issue.
my Gradle
script for lib is:
apply plugin: 'kotlin-multiplatform'
kotlin {
targets {
final def iOSTarget =
System.getenv('SDK_NAME')?.startsWith("iphoneos")
? presets.iosArm64 : presets.iosX64
fromPreset(iOSTarget, 'iOS') {
compilations.main.outputKinds('FRAMEWORK')
}
fromPreset(presets.jvm, 'android')
}
sourceSets {
core.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
}
android.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib'
}
}
kotlin kotlin-native kotlin-multiplatform
add a comment |
I started develop kotlin multiplatform and I developed a simple lib for test. I can exported .jar
file for android but I can't export .framework
file for iOS.
I reviewed other project but I didn't find my issue.
my Gradle
script for lib is:
apply plugin: 'kotlin-multiplatform'
kotlin {
targets {
final def iOSTarget =
System.getenv('SDK_NAME')?.startsWith("iphoneos")
? presets.iosArm64 : presets.iosX64
fromPreset(iOSTarget, 'iOS') {
compilations.main.outputKinds('FRAMEWORK')
}
fromPreset(presets.jvm, 'android')
}
sourceSets {
core.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
}
android.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib'
}
}
kotlin kotlin-native kotlin-multiplatform
I started develop kotlin multiplatform and I developed a simple lib for test. I can exported .jar
file for android but I can't export .framework
file for iOS.
I reviewed other project but I didn't find my issue.
my Gradle
script for lib is:
apply plugin: 'kotlin-multiplatform'
kotlin {
targets {
final def iOSTarget =
System.getenv('SDK_NAME')?.startsWith("iphoneos")
? presets.iosArm64 : presets.iosX64
fromPreset(iOSTarget, 'iOS') {
compilations.main.outputKinds('FRAMEWORK')
}
fromPreset(presets.jvm, 'android')
}
sourceSets {
core.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
}
android.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib'
}
}
kotlin kotlin-native kotlin-multiplatform
kotlin kotlin-native kotlin-multiplatform
asked Dec 31 '18 at 8:29
Alireza TarazaniAlireza Tarazani
1368
1368
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Have you added the task to build the actual framework? If not, try adding this code at the end of your build.gradle
file:
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
inputs.property "mode", mode
dependsOn kotlin.targets.iOS.compilations.main.linkTaskName("FRAMEWORK", mode)
from { kotlin.targets.iOS.compilations.main.getBinary("FRAMEWORK", mode).parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bashnexport 'JAVA_HOME=${System.getProperty("java.home")}'ncd '${rootProject.rootDir}'n./gradlew $@n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode
The iOS framework will be available on the build/xcode-frameworks
directory of your library.
You'll have to configure also your Xcode project to use the framework. For further details you can read Setting up Framework Dependency in Xcode.
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
After addingpackForXCode
, are you running./gradlew :common:packForXCode
(assuming yourbuild.gradle
is in a directory calledcommon
). I'm able to get it working using the code posted here and running this command.
– Mark
Jan 17 at 14:34
add a comment |
What do you mean by "exporting a framework"? Are you going to use it from another Gradle project or from XCode or from something else?
P.S. Sorry for asking in answers: just have no enough reputation to leave a comment. So I think it would be more convenient to discuss you problem in issues at GitHub.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53985241%2fwhy-kotlin-multiplatform-dont-execute-and-export-ios-framework%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Have you added the task to build the actual framework? If not, try adding this code at the end of your build.gradle
file:
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
inputs.property "mode", mode
dependsOn kotlin.targets.iOS.compilations.main.linkTaskName("FRAMEWORK", mode)
from { kotlin.targets.iOS.compilations.main.getBinary("FRAMEWORK", mode).parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bashnexport 'JAVA_HOME=${System.getProperty("java.home")}'ncd '${rootProject.rootDir}'n./gradlew $@n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode
The iOS framework will be available on the build/xcode-frameworks
directory of your library.
You'll have to configure also your Xcode project to use the framework. For further details you can read Setting up Framework Dependency in Xcode.
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
After addingpackForXCode
, are you running./gradlew :common:packForXCode
(assuming yourbuild.gradle
is in a directory calledcommon
). I'm able to get it working using the code posted here and running this command.
– Mark
Jan 17 at 14:34
add a comment |
Have you added the task to build the actual framework? If not, try adding this code at the end of your build.gradle
file:
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
inputs.property "mode", mode
dependsOn kotlin.targets.iOS.compilations.main.linkTaskName("FRAMEWORK", mode)
from { kotlin.targets.iOS.compilations.main.getBinary("FRAMEWORK", mode).parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bashnexport 'JAVA_HOME=${System.getProperty("java.home")}'ncd '${rootProject.rootDir}'n./gradlew $@n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode
The iOS framework will be available on the build/xcode-frameworks
directory of your library.
You'll have to configure also your Xcode project to use the framework. For further details you can read Setting up Framework Dependency in Xcode.
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
After addingpackForXCode
, are you running./gradlew :common:packForXCode
(assuming yourbuild.gradle
is in a directory calledcommon
). I'm able to get it working using the code posted here and running this command.
– Mark
Jan 17 at 14:34
add a comment |
Have you added the task to build the actual framework? If not, try adding this code at the end of your build.gradle
file:
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
inputs.property "mode", mode
dependsOn kotlin.targets.iOS.compilations.main.linkTaskName("FRAMEWORK", mode)
from { kotlin.targets.iOS.compilations.main.getBinary("FRAMEWORK", mode).parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bashnexport 'JAVA_HOME=${System.getProperty("java.home")}'ncd '${rootProject.rootDir}'n./gradlew $@n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode
The iOS framework will be available on the build/xcode-frameworks
directory of your library.
You'll have to configure also your Xcode project to use the framework. For further details you can read Setting up Framework Dependency in Xcode.
Have you added the task to build the actual framework? If not, try adding this code at the end of your build.gradle
file:
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
inputs.property "mode", mode
dependsOn kotlin.targets.iOS.compilations.main.linkTaskName("FRAMEWORK", mode)
from { kotlin.targets.iOS.compilations.main.getBinary("FRAMEWORK", mode).parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bashnexport 'JAVA_HOME=${System.getProperty("java.home")}'ncd '${rootProject.rootDir}'n./gradlew $@n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode
The iOS framework will be available on the build/xcode-frameworks
directory of your library.
You'll have to configure also your Xcode project to use the framework. For further details you can read Setting up Framework Dependency in Xcode.
answered Jan 2 at 12:11
Diego PalomarDiego Palomar
5,95912232
5,95912232
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
After addingpackForXCode
, are you running./gradlew :common:packForXCode
(assuming yourbuild.gradle
is in a directory calledcommon
). I'm able to get it working using the code posted here and running this command.
– Mark
Jan 17 at 14:34
add a comment |
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
After addingpackForXCode
, are you running./gradlew :common:packForXCode
(assuming yourbuild.gradle
is in a directory calledcommon
). I'm able to get it working using the code posted here and running this command.
– Mark
Jan 17 at 14:34
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
Thanks I added it but not work.
– Alireza Tarazani
Jan 2 at 18:53
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
@AlirezaTarazani what's the error message now?
– Diego Palomar
Jan 3 at 19:22
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
no error message for this. just don't any exports for iOS.
– Alireza Tarazani
Jan 4 at 8:08
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
@AlirezaTarazani. No error message? I doubt it but make sure the task is actually executed.
– Diego Palomar
Jan 4 at 11:18
After adding
packForXCode
, are you running ./gradlew :common:packForXCode
(assuming your build.gradle
is in a directory called common
). I'm able to get it working using the code posted here and running this command.– Mark
Jan 17 at 14:34
After adding
packForXCode
, are you running ./gradlew :common:packForXCode
(assuming your build.gradle
is in a directory called common
). I'm able to get it working using the code posted here and running this command.– Mark
Jan 17 at 14:34
add a comment |
What do you mean by "exporting a framework"? Are you going to use it from another Gradle project or from XCode or from something else?
P.S. Sorry for asking in answers: just have no enough reputation to leave a comment. So I think it would be more convenient to discuss you problem in issues at GitHub.
add a comment |
What do you mean by "exporting a framework"? Are you going to use it from another Gradle project or from XCode or from something else?
P.S. Sorry for asking in answers: just have no enough reputation to leave a comment. So I think it would be more convenient to discuss you problem in issues at GitHub.
add a comment |
What do you mean by "exporting a framework"? Are you going to use it from another Gradle project or from XCode or from something else?
P.S. Sorry for asking in answers: just have no enough reputation to leave a comment. So I think it would be more convenient to discuss you problem in issues at GitHub.
What do you mean by "exporting a framework"? Are you going to use it from another Gradle project or from XCode or from something else?
P.S. Sorry for asking in answers: just have no enough reputation to leave a comment. So I think it would be more convenient to discuss you problem in issues at GitHub.
answered Jan 3 at 5:49
Ilya MatveevIlya Matveev
612
612
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53985241%2fwhy-kotlin-multiplatform-dont-execute-and-export-ios-framework%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown